Skip to content

Commit aba332c

Browse files
authored
Merge pull request #5774 from BitGo/COIN-3289-fix
fix(sdk-coin-stx): function arguments order fix
2 parents 72b5279 + 419ba84 commit aba332c

File tree

6 files changed

+19
-19
lines changed

6 files changed

+19
-19
lines changed

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

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -247,15 +247,15 @@ export class Transaction extends BaseTransaction {
247247
} else if (txJson.payload.functionName === FUNCTION_NAME_TRANSFER && txJson.payload.functionArgs.length >= 3) {
248248
this._outputs = [
249249
{
250-
address: cvToString(txJson.payload.functionArgs[1]),
251-
value: cvToValue(txJson.payload.functionArgs[2]).toString(),
250+
address: cvToString(txJson.payload.functionArgs[2]),
251+
value: cvToValue(txJson.payload.functionArgs[0]).toString(),
252252
coin: this._coinConfig.name,
253253
},
254254
];
255255
this._inputs = [
256256
{
257-
address: cvToString(txJson.payload.functionArgs[0]),
258-
value: cvToValue(txJson.payload.functionArgs[2]).toString(),
257+
address: cvToString(txJson.payload.functionArgs[1]),
258+
value: cvToValue(txJson.payload.functionArgs[0]).toString(),
259259
coin: this._coinConfig.name,
260260
},
261261
];

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

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -473,16 +473,16 @@ export function functionArgsToTokenTransferParams(args: ClarityValue[]): TokenTr
473473
throw new InvalidTransactionError("function args don't match token transfer declaration");
474474
}
475475
if (
476-
args[0].type !== ClarityType.PrincipalStandard ||
476+
args[0].type !== ClarityType.UInt ||
477477
args[1].type !== ClarityType.PrincipalStandard ||
478-
args[2].type !== ClarityType.UInt
478+
args[2].type !== ClarityType.PrincipalStandard
479479
) {
480480
throw new InvalidTransactionError("function args don't match token transfer declaration");
481481
}
482482
const tokenTransferParams = {
483-
sender: cvToString(args[0]),
484-
recipient: cvToString(args[1]),
485-
amount: cvToValue(args[2], true),
483+
amount: cvToValue(args[0], true),
484+
sender: cvToString(args[1]),
485+
recipient: cvToString(args[2]),
486486
};
487487
if (args.length === 4 && args[3].type === ClarityType.Buffer) {
488488
tokenTransferParams['memo'] = args[3].buffer.toString('ascii');

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

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -196,9 +196,9 @@ export class Stx extends BaseCoin {
196196
let outputAmount: string;
197197
let memo: string | undefined;
198198
if (txJson.payload.contractAddress && txJson.payload.functionArgs.length >= 3) {
199-
outputAmount = cvToValue(txJson.payload.functionArgs[2]).toString();
199+
outputAmount = cvToValue(txJson.payload.functionArgs[0]).toString();
200200
transactionRecipient = {
201-
address: cvToString(txJson.payload.functionArgs[1]),
201+
address: cvToString(txJson.payload.functionArgs[2]),
202202
amount: outputAmount,
203203
tokenName: findTokenNameByContract(txJson.payload.contractAddress, txJson.payload.contractName),
204204
};

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-
'808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b4000000030200ffa41419c088011baffa87d0113257dbf2033e19ffd5098e9c3e1d8bc606f5e97519688630d57154fcad34967ea04246fe5127203c9971e0b1426cdbd6c132d502004fed6b5699e3211629ad182bf53392374a72e692eb4afe770ffa1fd715661c5706ec16854d14028c49d54806b34b89f108f76d39f2a7675589a94a179bba0ed100038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d0002030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e7366657200000004051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece0100000000000000000000000000002710020000000131';
37+
'808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b400000003020000f2872c232e1747af46070c191947fa2503ac364d111c30c17a7d0307c7c6792140250743d22d37f0df813d48493bf58bdc455d9d71fce8a57245d8cd17335102018627c757a1216e33c6cd06a33a48ae072b8b28f50df772aaaa57cc067fc2220f646a068ea54847638e03c0782063bd4931674cf80be805bc458e27a0d042a24700038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d0002030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131';
3838

3939
export const fungibleTokenTransferTx = {
40-
id: 'f2ea2261c3d66b87ffe67dedbf36e8ab00762bd6fa8d8fafdf6299c56deb1ebf',
40+
id: '992f26de0f8ebb56bcd2a3d41eefe3552c98d524b4f4ff1fea1a908891ec1e54',
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-
'80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e7366657200000004051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece0100000000000000000000000000002710020000000131',
187+
'80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131',
188188
UNSIGNED_SINGLE_SIG_TX_WITHOUT_MEMO:
189-
'80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e7366657200000003051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece0100000000000000000000000000002710',
189+
'80800000000400164247d6f2b425ac5771423ae6c80c754f7172b0000000000000000000000000000000b4000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000030100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece',
190190
SIGNED_MULTI_SIG_TX:
191-
'808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b4000000030200ffa41419c088011baffa87d0113257dbf2033e19ffd5098e9c3e1d8bc606f5e97519688630d57154fcad34967ea04246fe5127203c9971e0b1426cdbd6c132d502004fed6b5699e3211629ad182bf53392374a72e692eb4afe770ffa1fd715661c5706ec16854d14028c49d54806b34b89f108f76d39f2a7675589a94a179bba0ed100038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d0002030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e7366657200000004051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece0100000000000000000000000000002710020000000131',
191+
'808000000004012fe507c09dbb23c3b7e5d166c81fc4b87692510b000000000000000000000000000000b400000003020000f2872c232e1747af46070c191947fa2503ac364d111c30c17a7d0307c7c6792140250743d22d37f0df813d48493bf58bdc455d9d71fce8a57245d8cd17335102018627c757a1216e33c6cd06a33a48ae072b8b28f50df772aaaa57cc067fc2220f646a068ea54847638e03c0782063bd4931674cf80be805bc458e27a0d042a24700038e3c4529395611be9abf6fa3b6987e81d402385e3d605a073f42f407565a4a3d0002030200000000021a1500a1c42f0c11bfe3893f479af18904677685be0d747369703664702d746f6b656e087472616e73666572000000040100000000000000000000000000002710051a1500a1c42f0c11bfe3893f479af18904677685be0515ab50cac953ac55edc14e2b236854b1ead863fece020000000131',
192192
};

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

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -55,9 +55,9 @@ describe('Stacks: Fungible Token Transfer Builder', () => {
5555
it('an unsigned fungible token transfer transaction', async () => {
5656
const builder = initTxBuilder();
5757
builder.functionArgs([
58+
uintCV('10000'),
5859
standardPrincipalCV(testData.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS.SENDER_ADDRESS),
5960
standardPrincipalCV(testData.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS.RECEIVER_ADDRESS),
60-
uintCV('10000'),
6161
bufferCVFromString('1'),
6262
]);
6363
builder.fromPubKey(testData.TX_SENDER.pub);
@@ -84,9 +84,9 @@ describe('Stacks: Fungible Token Transfer Builder', () => {
8484
it('an unsigned fungible token transfer transaction without memo', async () => {
8585
const builder = initTxBuilder();
8686
builder.functionArgs([
87+
uintCV('10000'),
8788
standardPrincipalCV(testData.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS.SENDER_ADDRESS),
8889
standardPrincipalCV(testData.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS.RECEIVER_ADDRESS),
89-
uintCV('10000'),
9090
]);
9191
builder.fromPubKey(testData.TX_SENDER.pub);
9292
builder.numberSignatures(1);
@@ -115,9 +115,9 @@ describe('Stacks: Fungible Token Transfer Builder', () => {
115115
it('a multisig fungible token transfer transaction', async () => {
116116
const builder = initTxBuilder();
117117
builder.functionArgs([
118+
uintCV('10000'),
118119
standardPrincipalCV(testData.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS.SENDER_ADDRESS),
119120
standardPrincipalCV(testData.FUNGIBLE_TOKEN_TRANSFER_CONSTANTS.RECEIVER_ADDRESS),
120-
uintCV('10000'),
121121
bufferCVFromString('1'),
122122
]);
123123

0 commit comments

Comments
 (0)