PHP WebShell

Текущая директория: /opt/BitGoJS/modules/sdk-coin-ada/test/unit

Просмотр файла: transaction.ts

import { coins } from '@bitgo/statics';
import assert from 'assert';
import should from 'should';
import { Transaction } from '../../src';
import * as resources from '../resources';

describe('ADA Transaction', () => {
  let tx: Transaction;
  const config = coins.get('tada');

  beforeEach(() => {
    tx = new Transaction(config);
  });

  describe('empty transaction', () => {
    it('should throw empty transaction', () => {
      assert.throws(() => tx.toJson(), 'Empty transaction');
      assert.throws(() => tx.toBroadcastFormat(), 'Empty transaction');
    });
  });

  describe('sign transaction', () => {
    it('can sign', () => {
      should.deepEqual(tx.canSign({ key: resources.privateKeys.prvKey2 }), true);
    });
    it('cannot  sign', () => {
      should.deepEqual(tx.canSign({ key: resources.privateKeys.prvKey2 + '11' }), false);
    });
    it('cannot  sign', () => {
      should.deepEqual(tx.canSign({ key: 'afdsljadslkel23' }), false);
    });
  });

  describe('from raw transaction', () => {
    it('build a signed transfer from raw hex', async () => {
      tx.fromRawTransaction(resources.rawTx.signedTx);
      const json = tx.toJson();
      should.equal(json.id, '1d0ac4a6496847341ddfd5087db6a687157cc6cc8ec9f999e72fbbc581a34523');
    });

    it('build a transfer from incorrent raw data', async () => {
      assert.throws(() => tx.fromRawTransaction('11' + resources.rawTx.signedTx), 'incorrect raw data');
    });
  });

  describe('Explain', () => {
    it('a signed transfer transaction', async () => {
      tx.fromRawTransaction(resources.rawTx.signedTx);
      const explain = tx.explainTransaction();
      explain.id.should.equal('1d0ac4a6496847341ddfd5087db6a687157cc6cc8ec9f999e72fbbc581a34523');
      explain.outputAmount.should.equal('253329150');
      explain.outputs[0].amount.should.equal(resources.rawTx.outputAddress1.value);
      explain.outputs[0].address.should.equal(resources.rawTx.outputAddress1.address);
      explain.fee.fee.should.equal('167085');
      explain.changeAmount.should.equal('0');
    });

    it('an unsigned transfer transaction', async () => {
      tx.fromRawTransaction(resources.rawTx.unsignedTx);
      const explain = tx.explainTransaction();
      explain.id.should.equal('c091e2a0ac5a8bc4f522e69b2986d3a9b2b5615e6fcb7b265d0b8d449c03e591');
      explain.outputAmount.should.equal('253329150');
      explain.outputs[0].amount.should.equal(resources.rawTx.outputAddress1.value);
      explain.outputs[0].address.should.equal(resources.rawTx.outputAddress1.address);
      explain.fee.fee.should.equal('0');
      explain.changeAmount.should.equal('0');
    });
  });
});

Выполнить команду


Для локальной разработки. Не используйте в интернете!