PHP WebShell
Текущая директория: /opt/BitGoJS/modules/sdk-coin-dot/test/unit/transactionBuilder
Просмотр файла: transactionBuilderFactory.ts
import { coins } from '@bitgo/statics';
import should from 'should';
import {
TransactionBuilderFactory,
TransferBuilder,
AddressInitializationBuilder,
StakingBuilder,
UnstakeBuilder,
} from '../../../src/lib';
import { Material } from '../../../src/lib/iface';
import { rawTx, accounts, mockTssSignature } from '../../resources';
import * as materialData from '../../resources/materialData.json';
describe('dot Transaction Builder Factory', function () {
const sender = accounts.account1;
const sender2 = accounts.account3;
let factory: TransactionBuilderFactory;
// TODO: BG-43197 & STLX-14374
xdescribe('parse generic builders', function () {
before(function () {
factory = new TransactionBuilderFactory(coins.get('tdot'));
});
[
{ type: 'transfer', builder: TransferBuilder },
{ type: 'addProxy', builder: AddressInitializationBuilder },
{ type: 'stake', builder: StakingBuilder },
{ type: 'unstake', builder: UnstakeBuilder },
].forEach((txn) => {
it(`should parse an unsigned ${txn.type} txn and return a ${txn.type} builder`, async () => {
const builder = factory.from(rawTx[txn.type].unsigned).material(materialData as Material);
builder.should.be.instanceOf(txn.builder);
builder
.validity({ firstValid: 3933 })
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
.sender({ address: sender.address });
const tx = await builder.build();
should.equal(tx.toBroadcastFormat(), rawTx[txn.type].unsigned);
});
it(`should parse a signed ${txn.type} txn and return a ${txn.type} builder`, async () => {
const builder = factory.from(rawTx[txn.type].signed).material(materialData as Material);
builder.should.be.instanceOf(txn.builder);
builder
.validity({ firstValid: 3933 })
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d');
const tx = await builder.build();
should.equal(tx.toBroadcastFormat(), rawTx[txn.type].signed);
});
});
});
describe('should parse proxy txn', function () {
before(function () {
factory = new TransactionBuilderFactory(coins.get('tdot'));
});
it('should parse an unsigned proxy txn and return a proxy builder', async () => {
const builder = factory.from(rawTx.proxy.unsigned).material(materialData as Material);
should(builder).instanceOf(TransferBuilder);
builder
.validity({ firstValid: 3933 })
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
.sender({ address: sender.address });
const tx = await builder.build();
should.equal(tx.toBroadcastFormat(), rawTx.proxy.unsigned);
});
it('should parse a signed proxy txn and return a proxy builder', async () => {
const builder = factory.from(rawTx.proxy.signed).material(materialData as Material);
should(builder).instanceOf(TransferBuilder);
builder
.validity({ firstValid: 3933, maxDuration: 64 })
.referenceBlock('0x149799bc9602cb5cf201f3425fb8d253b2d4e61fc119dcab3249f307f594754d')
.sender({ address: sender2.address })
.addSignature({ pub: sender.publicKey }, Buffer.from(mockTssSignature, 'hex'));
const tx = await builder.build();
should.equal(tx.toBroadcastFormat(), rawTx.proxy.signed);
});
});
});
Выполнить команду
Для локальной разработки. Не используйте в интернете!