Skip to content

Commit 6a4b3e3

Browse files
authored
Merge pull request #5776 from BitGo/COIN-3439
fix(sdk-coin-stx): fix post condition issue in fungible token transfer builder
2 parents aba332c + be2dbc7 commit 6a4b3e3

File tree

4 files changed

+11
-7
lines changed

4 files changed

+11
-7
lines changed

modules/sdk-coin-stx/src/lib/fungibleTokenTransferBuilder.ts

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,12 +39,12 @@ export class FungibleTokenTransferBuilder extends AbstractContractBuilder {
3939
this.contractName(this._contractName);
4040
this.functionName(this._functionName);
4141
this.functionArgs(this._functionArgs);
42-
this._postConditionMode = PostConditionMode.Deny;
43-
this._postConditions = this.tokenTransferParamsToPostCondition(this._fungibleTokenTransferParams);
4442
}
4543

4644
/** @inheritdoc */
4745
protected async buildImplementation(): Promise<Transaction> {
46+
this._postConditionMode = PostConditionMode.Deny;
47+
this._postConditions = this.tokenTransferParamsToPostCondition(this._fungibleTokenTransferParams);
4848
await super.buildImplementation();
4949
this.transaction.setTransactionType(TransactionType.Send);
5050
return this.transaction;
@@ -127,6 +127,7 @@ export class FungibleTokenTransferBuilder extends AbstractContractBuilder {
127127
throw new InvalidParameterValueError('Invalid number of arguments');
128128
}
129129
this._functionArgs = args;
130+
this._fungibleTokenTransferParams = functionArgsToTokenTransferParams(this._functionArgs);
130131
return this;
131132
}
132133

modules/sdk-coin-stx/test/fixtures.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,10 +34,10 @@ export const unsignedTxExplainedTransfer = {
3434
};
3535

3636
export const txForExplainFungibleTokenTransfer =
37-
'808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b400000003020000f2872c232e1747af46070c191947fa2503ac364d111c30c17a7d0307c7c6792140250743d22d37f0df813d48493bf58bdc455d9d71fce8a57245d8cd17335102018627c757a1216e33c6cd06a33a48ae072b8b28f50df772aaaa57cc067fc2220f646a068ea54847638e03c0782063bd4931674cf80be805bc458e27a0d042a24700038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d0002030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131';
37+
'808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b40000000302004f1813139aad38ac90ba905885ad4822bf33b7a56fff9127780c52359edee495587008204b0a7eaf39a0ba467b54a3e1896f863559349e5142f929cc4c706cd20201ae3fa80f2900c950667d827ed3b843afc94c63179dca70e6205f7d629a5f511a0ed45137c2baa16e33753c8e672dc61182869b6304fdea7daee42d8896f1a3fd00038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d00020302000000010102152fe507c09dbb23c3b7e5d166c81fc4b87692510b1a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e0d747369703664702d746f6b656e010000000000002710021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131';
3838

3939
export const fungibleTokenTransferTx = {
40-
id: '992f26de0f8ebb56bcd2a3d41eefe3552c98d524b4f4ff1fea1a908891ec1e54',
40+
id: 'b09ba559258dce27bf42526f7169969e70d694d4c8ecef2ce1abcdb3fb5f713c',
4141
fee: '180',
4242
contractAddress: 'STAG18E45W613FZ3H4ZMF6QHH426EXM5QTSAVWYH',
4343
contractName: 'tsip6dp-token',

modules/sdk-coin-stx/test/unit/resources.ts

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -184,9 +184,9 @@ export const FUNGIBLE_TOKEN_TRANSFER_CONSTANTS = {
184184
RECEIVER_ADDRESS: 'SN2NN1JP9AEP5BVE19RNJ6T2MP7NDGRZYST1VDF3M',
185185
TOKEN_NAME: 'tsip6dp-token',
186186
UNSIGNED_SINGLE_SIG_TX:
187-
'80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131',
187+
'80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030200000001010215164247d6f2b425ac5771423ae6c80c754f7172b01a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e0d747369703664702d746f6b656e010000000000002710021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131',
188188
UNSIGNED_SINGLE_SIG_TX_WITHOUT_MEMO:
189-
'80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000030100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece',
189+
'80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030200000001010215164247d6f2b425ac5771423ae6c80c754f7172b01a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e0d747369703664702d746f6b656e010000000000002710021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000030100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece',
190190
SIGNED_MULTI_SIG_TX:
191-
'808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b400000003020000f2872c232e1747af46070c191947fa2503ac364d111c30c17a7d0307c7c6792140250743d22d37f0df813d48493bf58bdc455d9d71fce8a57245d8cd17335102018627c757a1216e33c6cd06a33a48ae072b8b28f50df772aaaa57cc067fc2220f646a068ea54847638e03c0782063bd4931674cf80be805bc458e27a0d042a24700038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d0002030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131',
191+
'808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b40000000302004f1813139aad38ac90ba905885ad4822bf33b7a56fff9127780c52359edee495587008204b0a7eaf39a0ba467b54a3e1896f863559349e5142f929cc4c706cd20201ae3fa80f2900c950667d827ed3b843afc94c63179dca70e6205f7d629a5f511a0ed45137c2baa16e33753c8e672dc61182869b6304fdea7daee42d8896f1a3fd00038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d00020302000000010102152fe507c09dbb23c3b7e5d166c81fc4b87692510b1a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e0d747369703664702d746f6b656e010000000000002710021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131',
192192
};

modules/sdk-coin-stx/test/unit/transactionBuilder/fungibleTokenTransferBuilder.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { TransactionType } from '@bitgo/sdk-core';
88
import assert from 'assert';
99

1010
import { Sip10Token, StxLib } from '../../../src';
11+
import { Transaction } from '../../../src/lib';
1112
import * as testData from '../resources';
1213

1314
describe('Stacks: Fungible Token Transfer Builder', () => {
@@ -63,6 +64,8 @@ describe('Stacks: Fungible Token Transfer Builder', () => {
6364
builder.fromPubKey(testData.TX_SENDER.pub);
6465
builder.numberSignatures(1);
6566
const tx = await builder.build();
67+
const stacksTxn = tx as Transaction;
68+
should.deepEqual(stacksTxn.stxTransaction.postConditions.values.length, 1);
6669

6770
const txJson = tx.toJson();
6871
should.deepEqual(txJson.payload.contractAddress, testData.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS.CONTRACT_ADDRESS);

0 commit comments

Comments
 (0)