Skip to content

Commit dad647a

Browse files
fix(sdk-coin-sol): allow off curve address as well for solana 2022 token
TICKET: WIN-6951
1 parent 2782706 commit dad647a

File tree

3 files changed

+26
-1
lines changed

3 files changed

+26
-1
lines changed

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

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -591,7 +591,12 @@ export async function getAssociatedTokenAccountAddress(
591591

592592
let ataAddress: PublicKey;
593593
if (programId === TOKEN_2022_PROGRAM_ID.toString()) {
594-
ataAddress = await getAssociatedTokenAddress(mintPublicKey, ownerPublicKey, false, TOKEN_2022_PROGRAM_ID);
594+
ataAddress = await getAssociatedTokenAddress(
595+
mintPublicKey,
596+
ownerPublicKey,
597+
allowOwnerOffCurve,
598+
TOKEN_2022_PROGRAM_ID
599+
);
595600
} else {
596601
ataAddress = await getAssociatedTokenAddress(mintPublicKey, ownerPublicKey, allowOwnerOffCurve);
597602
}

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -394,6 +394,11 @@ export const sol2022TokenTransfers = {
394394
source: 'GQEPA5QK43RDD9xE1wN52aVgnH5acoPr4mMrEoob7KWq',
395395
};
396396

397+
export const sol2022PumpTransfers = {
398+
owner: 'DwMJ5DFsG77zGBjwdV99FEokQFWYCzjwRt3L1RLU5qVb',
399+
mint: 'pumpCmXqMfrsAkQ5r49WcJnRayYRqmXz6ae8H7H9Dfn',
400+
};
401+
397402
export const TOKEN_TRANSFER_TO_NATIVE_UNSIGNED_TX_HEX =
398403
'0100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010002052fe1aa39950c065cedb380ffbd710ad66cf8029ac349b1803f4867c78069952d63b0bbb8476e7a39a463cccc4c3d6d3be5a9eb683cdf9b0e3a7c408e657aebf0619d87c29fcae057cbbb0bec48e6bc6afb95bfbda13189af77f561ffcd93951ed10389fbcee528f208611dccc734b31092540cb2b8d58d100f2eaa2cedb4da5e06ddf6e1d765a193d9cbe146ceeb79ac1cb485ed5f5b37913a8cf5857eff00a9fc112c1d986ab5f98b5bfc458083c826fc85c247930b2a4c338f0d297ad5519c010404010302000a0c010000000000000009';
399404
export const TOKEN_TRANSFER_UNSIGNED_TX_WITH_MEMO =

modules/sdk-coin-sol/test/unit/utils.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -338,6 +338,21 @@ describe('SOL util library', function () {
338338
});
339339
});
340340

341+
describe('getAssociatedTokenAccountAddress for sol 2022 token off curve address', function () {
342+
const mintAddress = testData.sol2022PumpTransfers.mint;
343+
const tokenAddress = '6fxrV8zFVo7Q7U9RzgfNiZGHFygdCzXaFZHyiFhNZjNF';
344+
it('should succeed for native address as owner address', async function () {
345+
const ownerAddress = testData.sol2022PumpTransfers.owner;
346+
const result = await Utils.getAssociatedTokenAccountAddress(
347+
mintAddress,
348+
ownerAddress,
349+
true,
350+
TOKEN_2022_PROGRAM_ID.toString()
351+
);
352+
result.should.be.equal(tokenAddress);
353+
});
354+
});
355+
341356
describe('matchTransactionTypeByInstructionsOrder', function () {
342357
describe('Activate stake instructions', function () {
343358
it('should match staking activate instructions', function () {

0 commit comments

Comments
 (0)