diff --git a/modules/sdk-core/src/bitgo/wallet/iWallet.ts b/modules/sdk-core/src/bitgo/wallet/iWallet.ts index 653a2d8f83..bfeadbbcd2 100644 --- a/modules/sdk-core/src/bitgo/wallet/iWallet.ts +++ b/modules/sdk-core/src/bitgo/wallet/iWallet.ts @@ -990,6 +990,7 @@ export interface IWallet { buildTokenEnablements(params?: BuildTokenEnablementOptions): Promise; sendTokenEnablement(params?: PrebuildAndSignTransactionOptions): Promise; sendTokenEnablements(params?: BuildTokenEnablementOptions): Promise; + buildWalletInitialization(params?: PrebuildTransactionOptions): Promise; sendWalletInitialization(params?: PrebuildTransactionOptions): Promise; signMessage(params: WalletSignMessageOptions): Promise; buildSignMessageRequest(params: WalletSignMessageOptions): Promise; diff --git a/modules/sdk-core/src/bitgo/wallet/wallet.ts b/modules/sdk-core/src/bitgo/wallet/wallet.ts index 8c3332be7a..ea37e77339 100644 --- a/modules/sdk-core/src/bitgo/wallet/wallet.ts +++ b/modules/sdk-core/src/bitgo/wallet/wallet.ts @@ -3243,6 +3243,28 @@ export class Wallet implements IWallet { } } + /** + * Builds wallet initialization + * @param {PrebuildTransactionOptions} params + * @returns {Promise} + */ + public async buildWalletInitialization(params: PrebuildTransactionOptions): Promise { + if (!this.baseCoin.requiresWalletInitializationTransaction()) { + throw new Error(`Wallet initialization is not required for ${this.baseCoin.getFullName()}`); + } + if (this._wallet.multisigType !== 'tss') { + throw new Error('Wallet initialization transaction is only supported for TSS wallets'); + } + if (params.reqId) { + this.bitgo.setRequestTracer(params.reqId); + } + const buildParams: PrebuildTransactionOptions = _.pick(params, this.prebuildWhitelistedParams()); + if (!buildParams.type) { + buildParams.type = 'createAccount'; + } + return await this.prebuildTransaction(buildParams); + } + /** * Signs and sends a single unsigned token enablement transaction * @param params @@ -3327,20 +3349,7 @@ export class Wallet implements IWallet { * @param params */ public async sendWalletInitialization(params: PrebuildTransactionOptions = {}): Promise { - if (!this.baseCoin.requiresWalletInitializationTransaction()) { - throw new Error(`Wallet initialization is not required for ${this.baseCoin.getFullName()}`); - } - if (this._wallet.multisigType !== 'tss') { - throw new Error('Wallet initialization transaction is only supported for TSS wallets'); - } - if (params.reqId) { - this.bitgo.setRequestTracer(params.reqId); - } - const buildParams: PrebuildTransactionOptions = _.pick(params, this.prebuildWhitelistedParams()); - if (!buildParams.type) { - buildParams.type = 'createAccount'; - } - const prebuildTx = await this.prebuildTransaction(buildParams); + const prebuildTx = await this.buildWalletInitialization(params); const unsignedBuildWithOptions: PrebuildAndSignTransactionOptions = { ...params, prebuildTx,