diff --git a/modules/sdk-core/src/bitgo/wallet/BuildParams.ts b/modules/sdk-core/src/bitgo/wallet/BuildParams.ts index cc90d7a98e..530ce8a976 100644 --- a/modules/sdk-core/src/bitgo/wallet/BuildParams.ts +++ b/modules/sdk-core/src/bitgo/wallet/BuildParams.ts @@ -26,6 +26,9 @@ export const BuildParamsUTXO = t.partial({ /* legacy or psbt */ txFormat: t.unknown, maxChangeOutputs: t.unknown, + /* rbf */ + rbfTxIds: t.array(t.string), + isReplaceableByFee: t.boolean, }); export const BuildParamsStacks = t.partial({ diff --git a/modules/sdk-core/test/unit/bitgo/wallet/BuildParams.ts b/modules/sdk-core/test/unit/bitgo/wallet/BuildParams.ts new file mode 100644 index 0000000000..926d2c5082 --- /dev/null +++ b/modules/sdk-core/test/unit/bitgo/wallet/BuildParams.ts @@ -0,0 +1,40 @@ +import * as assert from 'assert'; +import { BuildParams } from '../../../../src/bitgo/wallet/BuildParams'; + +describe('BuildParams', function () { + it('enforces codec', function () { + assert.deepStrictEqual( + BuildParams.encode({ + addressType: 'p2sh', + txFormat: 'psbt', + isReplaceableByFee: true, + recipients: [ + { + amount: '10000', + address: '2N9Ego9KidiZR8tMP82g6RaggQtcbR9zNzH', + }, + ], + } as any), + { + addressType: 'p2sh', + txFormat: 'psbt', + isReplaceableByFee: true, + recipients: [ + { + amount: '10000', + address: '2N9Ego9KidiZR8tMP82g6RaggQtcbR9zNzH', + }, + ], + } + ); + + assert.deepStrictEqual( + BuildParams.encode({ + rbfTxIds: ['tx1'], + } as any), + { + rbfTxIds: ['tx1'], + } + ); + }); +});