diff --git a/modules/sdk-coin-polyx/src/lib/transactionBuilderFactory.ts b/modules/sdk-coin-polyx/src/lib/transactionBuilderFactory.ts index 370eece0ad..4199f844d7 100644 --- a/modules/sdk-coin-polyx/src/lib/transactionBuilderFactory.ts +++ b/modules/sdk-coin-polyx/src/lib/transactionBuilderFactory.ts @@ -1,4 +1,4 @@ -import { BaseTransactionBuilderFactory, NotImplementedError } from '@bitgo/sdk-core'; +import { BaseTransactionBuilderFactory } from '@bitgo/sdk-core'; import { BaseCoin as CoinConfig } from '@bitgo/statics'; import { decode } from '@substrate/txwrapper-polkadot'; import { TransferBuilder } from './transferBuilder'; @@ -153,8 +153,8 @@ export class TransactionBuilderFactory extends BaseTransactionBuilderFactory { return new V8NominateBuilder(this._coinConfig); } - getWalletInitializationBuilder(): void { - throw new NotImplementedError(`walletInitialization for ${this._coinConfig.name} not implemented`); + getWalletInitializationBuilder(): RegisterDidWithCDDBuilder { + return this.getRegisterDidWithCDDBuilder(); } from(rawTxn: string): TransactionBuilder { diff --git a/modules/sdk-coin-polyx/src/polyx.ts b/modules/sdk-coin-polyx/src/polyx.ts index c0d1f70b97..08ad90e2d3 100644 --- a/modules/sdk-coin-polyx/src/polyx.ts +++ b/modules/sdk-coin-polyx/src/polyx.ts @@ -367,4 +367,9 @@ export class Polyx extends SubstrateCoin { }, }; } + + /** @inheritDoc */ + requiresWalletInitializationTransaction(): boolean { + return true; + } } diff --git a/modules/sdk-coin-polyx/test/unit/polyx.ts b/modules/sdk-coin-polyx/test/unit/polyx.ts index 0db9b3eb46..0a5b3531d7 100644 --- a/modules/sdk-coin-polyx/test/unit/polyx.ts +++ b/modules/sdk-coin-polyx/test/unit/polyx.ts @@ -360,4 +360,15 @@ describe('Polyx:', function () { }); }); }); + + describe('requiresWalletInitializationTransaction', function () { + it('returns true for polyx', function () { + const polyxCoin = bitgo.coin('polyx') as Polyx; + polyxCoin.requiresWalletInitializationTransaction().should.be.true(); + }); + + it('returns true for tpolyx', function () { + baseCoin.requiresWalletInitializationTransaction().should.be.true(); + }); + }); }); diff --git a/modules/sdk-coin-polyx/test/unit/transactionBuilder/transactionBuilderFactory.ts b/modules/sdk-coin-polyx/test/unit/transactionBuilder/transactionBuilderFactory.ts index 12d6fcbb12..030ee56638 100644 --- a/modules/sdk-coin-polyx/test/unit/transactionBuilder/transactionBuilderFactory.ts +++ b/modules/sdk-coin-polyx/test/unit/transactionBuilder/transactionBuilderFactory.ts @@ -3,6 +3,7 @@ import should from 'should'; import { TransactionBuilderFactory, TransferBuilder, + RegisterDidWithCDDBuilder, V8TransferBuilder, V8HexTransferBuilder, V8TokenTransferBuilder, @@ -247,4 +248,24 @@ describe('Tao Transaction Builder Factory', function () { ); }); }); + + describe('getWalletInitializationBuilder', function () { + it('returns a RegisterDidWithCDDBuilder instance for tpolyx', function () { + const factory = new TransactionBuilderFactory(coins.get('tpolyx')); + const builder = factory.getWalletInitializationBuilder(); + should.ok( + builder instanceof RegisterDidWithCDDBuilder, + 'expected RegisterDidWithCDDBuilder from getWalletInitializationBuilder' + ); + }); + + it('returns a RegisterDidWithCDDBuilder instance for polyx', function () { + const factory = new TransactionBuilderFactory(coins.get('polyx')); + const builder = factory.getWalletInitializationBuilder(); + should.ok( + builder instanceof RegisterDidWithCDDBuilder, + 'expected RegisterDidWithCDDBuilder from getWalletInitializationBuilder' + ); + }); + }); });