PHP WebShell

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

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

import should from 'should';
import { TransactionType } from '@bitgo/sdk-core';
import { getBuilder } from '../getBuilder';
import { TransactionBuilder } from '../../../src';
import * as testData from '../../resources/celo';

describe('An address initialization', () => {
  describe('Should sign and build', () => {
    it('an address initialization transaction', async () => {
      const txBuilder = getBuilder('tcelo') as TransactionBuilder;
      txBuilder.fee({
        fee: '1000000000',
        gasLimit: '12100000',
      });
      txBuilder.counter(2);
      txBuilder.type(TransactionType.AddressInitialization);
      txBuilder.contractCounter(1);
      txBuilder.contract(testData.CONTRACT_ADDRESS);
      txBuilder.sign({ key: testData.KEYPAIR_PRV.getKeys().prv });
      const tx = await txBuilder.build();
      tx.type.should.equal(TransactionType.AddressInitialization);
      const txJson = tx.toJson();
      txJson.gasLimit.should.equal('12100000');
      txJson.gasPrice.should.equal('1000000000');
      should.equal(txJson.nonce, 2);
      should.equal(txJson.chainId, 44787);
      should.equal(txJson.from, testData.KEYPAIR_PRV.getAddress());
      should.equal(tx.toBroadcastFormat(), testData.TX_ADDRESS_INIT);
      should.equal(txJson.deployedAddress, '0x016e4eee27f3f355bbb78d0e5eb813c4761822c9');
    });
  });

  describe('Should build without sign', () => {
    it('an address initialization transaction without from', async () => {
      const txBuilder = getBuilder('celo') as TransactionBuilder;
      txBuilder.fee({
        fee: '1000000000',
        gasLimit: '12100000',
      });
      txBuilder.counter(2);
      txBuilder.type(TransactionType.AddressInitialization);
      txBuilder.contractCounter(1);
      txBuilder.contract(testData.CONTRACT_ADDRESS);
      const tx = await txBuilder.build();
      const txJson = tx.toJson();
      should.equal(txJson.from, undefined);
    });

    it('an address initialization transaction without contract counter', async () => {
      const txBuilder = getBuilder('tcelo') as TransactionBuilder;
      txBuilder.type(TransactionType.AddressInitialization);
      txBuilder.fee({
        fee: '10000000000',
        gasLimit: '2000000',
      });
      txBuilder.counter(1);
      txBuilder.contract(testData.CONTRACT_ADDRESS);
      const tx = await txBuilder.build();
      const txJson = tx.toJson();
      should.equal(txJson.from, undefined);
    });
  });

  describe('Should fail to build', () => {
    it('an address initialization transaction without fee', async () => {
      const txBuilder = getBuilder('tcelo') as TransactionBuilder;
      txBuilder.type(TransactionType.AddressInitialization);
      txBuilder.counter(1);
      txBuilder.contract(testData.CONTRACT_ADDRESS);
      await txBuilder.build().should.be.rejectedWith('Invalid transaction: missing fee');
    });
  });
});

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


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