Skip to content

Commit a6cd5ee

Browse files
feat(sdk-coin-sol): ignore zero value prio fee
Ticket: CR-1224
1 parent 98994d1 commit a6cd5ee

File tree

4 files changed

+15
-11
lines changed

4 files changed

+15
-11
lines changed

modules/sdk-coin-sol/src/lib/tokenTransferBuilder.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -147,7 +147,7 @@ export class TokenTransferBuilder extends TransactionBuilder {
147147
},
148148
};
149149

150-
if (!this._priorityFee) {
150+
if (!this._priorityFee || this._priorityFee === BigInt(0)) {
151151
this._instructionsData = [...createAtaInstructions, ...sendInstructions];
152152
} else {
153153
// order is important, createAtaInstructions must be before sendInstructions

modules/sdk-coin-sol/src/lib/transferBuilderV2.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ export class TransferBuilderV2 extends TransactionBuilder {
170170

171171
let addPriorityFeeInstruction: SetPriorityFee;
172172
// If there are createAtaInstructions, then token is involved and we need to add a priority fee instruction
173-
if (!this._priorityFee) {
173+
if (!this._priorityFee || this._priorityFee === BigInt(0)) {
174174
this._instructionsData = [...createAtaInstructions, ...sendInstructions];
175175
} else if (
176176
createAtaInstructions.length !== 0 ||

modules/sdk-coin-sol/test/resources/sol.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -339,7 +339,7 @@ export const MULTI_TOKEN_TRANSFER_SIGNED =
339339
export const MULTI_ASSET_TOKEN_TRANSFER_UNSIGNED =
340340
'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAUNCoMkjRrCRUK+mb1OrcYVsRHoGOkX5c9n9deT5Gq/d1YY19xOQg+B6cqXSn9ODw0NMlw+NO0os7hLyaFGBpYImBSE0DU4DP2SziCyqdIkA1dTOtESUHgIvbhAqzPE8m82TN7ajWa08Nplu4ugENukXhibq406iJdXhn9fMg/aoOKjj+uLLZZjiJkwlHU3Vn15l+FRIC5QMRowGMwKpBrxqakYG1L37ZDq6w2tS3G+tFODYWdhMXF+kwlYEF+3o4nVr5n/dIL/oi8hfjGlFSmwdz8RbwZtK1lLU9iyVjpUr1PEwOI2V24CciOMqaX5S23/oruLzNLutfWxG3ul8rGSsYH3TO/T+4RPYsp+1vFBiz+G+vCIZkfZgCWb8Kr753tsAwZGb+UhFzL/7K26csOb57yM5bvF9xJrLEObOkAAAAC0OvO6sgw/Oe88FIyFZAYUpBBD7rMG3lmWOA8Q7BBajtEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQUJAAkDgJaYAAAAAAAMBAELBQAKDOCTBAAAAAAACQwEAQsDAAoM4JMEAAAAAAAJDAQCCgQACgzgkwQAAAAAAAkMBAcIBgAKDOCTBAAAAAAACQ==';
341341
export const TOKEN_TRANSFER_UNSIGNED_WITH_CREATE_ATA_AND_MEMO_AND_DURABLE_NONCE =
342-
'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAgNAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAan1RcZLFxRIYzJTD1K8X9Y2u4Im6H9ROPb2YoAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQUFAwIKAAQEAAAABwAJA4CWmAAAAAAABgcAAQQIBQwLAAwEAwgEAAoM4JMEAAAAAAAJCQAJdGVzdCBtZW1v';
342+
'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAcMAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FnRA4n7zuUo8ghhHczHNLMQklQMsrjVjRAPLqos7bTaXgVKU1qZKSEGTSTocWDaOHx8NbXdvJK7geQfqEBBBUSNBqfVFxksVo7gioRfc9KXiM8DXDFFshqzRNgGLqlAAAAGp9UXGSxcUSGMyUw9SvF/WNruCJuh/UTj29mKAAAAAAbd9uHXZaGT2cvhRs7reawctIXtX1s3kTqM9YV+/wCp4zLa+S+r7Oi2P/ekQAXl/f2a+hWHVrYcWpX5BLO40IEEBQMCCQAEBAAAAAYHAAEEBwULCgALBAMHBAAKDOCTBAAAAAAACQgACXRlc3QgbWVtbw==';
343343

344344
export const MULTI_TOKEN_TRANSFER_UNSIGNED_WITH_UNIQUE_CREATE_ATA_AND_MEMO_AND_DURABLE_NONCE =
345345
'AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAgNAGymKVqOJEQemBHH67uu8ISJV4rtwTejLrjw7VSeW6dJP1r3FCCofxhWCBv6dIPMrDQrI7IXh1M2k+lzW80KTW/6Eon6nFlovAcYTKTZK+nk98ALlkSL/BgjW09MceFuldLxXAw5t3p9Od8IqufG/BDksWGKlVuIb5qJM0zV4WypGBtS9+2Q6usNrUtxvrRTg2FnYTFxfpMJWBBft6OJ1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjJclj04kifG7PRApFI4NgwtaE5na/xCEBI572Nvp+FkDBkZv5SEXMv/srbpyw5vnvIzlu8X3EmssQ5s6QAAAANEDifvO5SjyCGEdzMc0sxCSVAyyuNWNEA8uqizttNpeBUpTWpkpIQZNJOhxYNo4fHw1td28kruB5B+oQEEFRI0Gp9UXGSxWjuCKhF9z0peIzwNcMUWyGrNE2AYuqUAAAAan1RcZLFxRIYzJTD1K8X9Y2u4Im6H9ROPb2YoAAAAABt324ddloZPZy+FGzut5rBy0he1fWzeROoz1hX7/AKnjMtr5L6vs6LY/96RABeX9/Zr6FYdWthxalfkEs7jQgQcFAwIKAAQEAAAABwAJA4CWmAAAAAAABgcAAQQIBQwLAAwEAwgEAAoM4JMEAAAAAAAJDAQDCAQACgzgkwQAAAAAAAkMBAMIBAAKDOCTBAAAAAAACQkACXRlc3QgbWVtbw==';

modules/sdk-coin-sol/test/unit/transactionBuilder/tokenTransferBuilder.ts

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -356,6 +356,10 @@ describe('Sol Token Transfer Builder', () => {
356356
txBuilder.send({ address: otherAccount.pub, amount, tokenName: nameUSDC });
357357
txBuilder.memo(memo);
358358
txBuilder.createAssociatedTokenAccount({ ownerAddress: otherAccount.pub, tokenName: nameUSDC });
359+
const prioFeeMicroLamports = '0';
360+
const priorityFee: FeeOptions = {
361+
amount: prioFeeMicroLamports,
362+
};
359363
txBuilder.setPriorityFee(priorityFee);
360364
const tx = await txBuilder.build();
361365
tx.inputs.length.should.equal(1);
@@ -371,26 +375,26 @@ describe('Sol Token Transfer Builder', () => {
371375
coin: nameUSDC,
372376
});
373377
const txJson = tx.toJson();
374-
txJson.instructionsData.length.should.equal(4);
375-
txJson.instructionsData[0].type.should.equal('SetPriorityFee');
376-
txJson.instructionsData[1].type.should.equal('CreateAssociatedTokenAccount');
377-
txJson.instructionsData[1].params.should.deepEqual({
378+
// Since prio fee is 0, we are not adding compute unit price instruction
379+
txJson.instructionsData.length.should.equal(3);
380+
txJson.instructionsData[0].type.should.equal('CreateAssociatedTokenAccount');
381+
txJson.instructionsData[0].params.should.deepEqual({
378382
mintAddress: mintUSDC,
379383
ataAddress: ataAddress,
380384
ownerAddress: otherAccount.pub,
381385
payerAddress: walletPK,
382386
tokenName: nameUSDC,
383387
});
384-
txJson.instructionsData[2].type.should.equal('TokenTransfer');
385-
txJson.instructionsData[2].params.should.deepEqual({
388+
txJson.instructionsData[1].type.should.equal('TokenTransfer');
389+
txJson.instructionsData[1].params.should.deepEqual({
386390
fromAddress: walletPK,
387391
toAddress: otherAccount.pub,
388392
amount: amount,
389393
tokenName: nameUSDC,
390394
sourceAddress: 'B5rJjuVi7En63iK6o3ijKdJwAoTe2gwCYmJsVdHQ2aKV',
391395
});
392-
txJson.instructionsData[3].type.should.equal('Memo');
393-
txJson.instructionsData[3].params.memo.should.equal(memo);
396+
txJson.instructionsData[2].type.should.equal('Memo');
397+
txJson.instructionsData[2].params.memo.should.equal(memo);
394398

395399
const rawTx = tx.toBroadcastFormat();
396400
should.equal(Utils.isValidRawTransaction(rawTx), true);

0 commit comments

Comments
 (0)