@magicblock-labs/ephemeral-rollups-sdk 0.14.2 → 0.14.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -15,26 +15,26 @@ export declare function deriveEphemeralAta(owner: PublicKey, mint: PublicKey): [
15
15
  export declare function deriveVault(mint: PublicKey): [PublicKey, number];
16
16
  export declare function deriveRentPda(): [PublicKey, number];
17
17
  export declare function deriveLamportsPda(payer: PublicKey, destination: PublicKey, salt: Uint8Array): [PublicKey, number];
18
- export declare function deriveVaultAta(mint: PublicKey, vault: PublicKey): PublicKey;
18
+ export declare function deriveVaultAta(mint: PublicKey, vault: PublicKey, tokenProgram?: PublicKey): PublicKey;
19
19
  export declare function deriveShuttleEphemeralAta(owner: PublicKey, mint: PublicKey, shuttleId: number): [PublicKey, number];
20
20
  export declare function deriveShuttleAta(shuttleEphemeralAta: PublicKey, mint: PublicKey): [PublicKey, number];
21
- export declare function deriveShuttleWalletAta(mint: PublicKey, shuttleEphemeralAta: PublicKey): PublicKey;
21
+ export declare function deriveShuttleWalletAta(mint: PublicKey, shuttleEphemeralAta: PublicKey, tokenProgram?: PublicKey): PublicKey;
22
22
  export declare function initEphemeralAtaIx(ephemeralAta: PublicKey, owner: PublicKey, mint: PublicKey, payer: PublicKey): TransactionInstruction;
23
- export declare function initVaultAtaIx(payer: PublicKey, vaultAta: PublicKey, vault: PublicKey, mint: PublicKey): TransactionInstruction;
24
- export declare function initVaultIx(vault: PublicKey, mint: PublicKey, payer: PublicKey): TransactionInstruction;
23
+ export declare function initVaultAtaIx(payer: PublicKey, vaultAta: PublicKey, vault: PublicKey, mint: PublicKey, tokenProgram?: PublicKey): TransactionInstruction;
24
+ export declare function initVaultIx(vault: PublicKey, mint: PublicKey, payer: PublicKey, tokenProgram?: PublicKey): TransactionInstruction;
25
25
  export declare function initRentPdaIx(payer: PublicKey, rentPda: PublicKey): TransactionInstruction;
26
- export declare function transferToVaultIx(ephemeralAta: PublicKey, vault: PublicKey, mint: PublicKey, sourceAta: PublicKey, vaultAta: PublicKey, owner: PublicKey, amount: bigint): TransactionInstruction;
27
- export declare function depositSplTokensIx(ephemeralAta: PublicKey, vault: PublicKey, mint: PublicKey, sourceAta: PublicKey, vaultAta: PublicKey, owner: PublicKey, amount: bigint): TransactionInstruction;
26
+ export declare function transferToVaultIx(ephemeralAta: PublicKey, vault: PublicKey, mint: PublicKey, sourceAta: PublicKey, vaultAta: PublicKey, owner: PublicKey, amount: bigint, tokenProgram?: PublicKey): TransactionInstruction;
27
+ export declare function depositSplTokensIx(ephemeralAta: PublicKey, vault: PublicKey, mint: PublicKey, sourceAta: PublicKey, vaultAta: PublicKey, owner: PublicKey, amount: bigint, tokenProgram?: PublicKey): TransactionInstruction;
28
28
  export declare function delegateEphemeralAtaIx(payer: PublicKey, ephemeralAta: PublicKey, validator?: PublicKey): TransactionInstruction;
29
- export declare function initShuttleEphemeralAtaIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, shuttleWalletAta: PublicKey, owner: PublicKey, mint: PublicKey, shuttleId: number): TransactionInstruction;
29
+ export declare function initShuttleEphemeralAtaIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, shuttleWalletAta: PublicKey, owner: PublicKey, mint: PublicKey, shuttleId: number, tokenProgram?: PublicKey): TransactionInstruction;
30
30
  export declare function delegateShuttleEphemeralAtaIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, validator?: PublicKey): TransactionInstruction;
31
- export declare function setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, owner: PublicKey, sourceAta: PublicKey, destinationAta: PublicKey, shuttleWalletAta: PublicKey, mint: PublicKey, shuttleId: number, amount: bigint, validator?: PublicKey): TransactionInstruction;
32
- export declare function depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, owner: PublicKey, sourceAta: PublicKey, destinationOwner: PublicKey, shuttleWalletAta: PublicKey, mint: PublicKey, shuttleId: number, amount: bigint, exactOut: boolean, minDelayMs: bigint, maxDelayMs: bigint, split: number, validator?: PublicKey, clientRefId?: bigint): TransactionInstruction;
33
- export declare function withdrawThroughDelegatedShuttleWithMergeIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, owner: PublicKey, ownerAta: PublicKey, shuttleWalletAta: PublicKey, mint: PublicKey, shuttleId: number, amount: bigint, validator?: PublicKey): TransactionInstruction;
31
+ export declare function setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, owner: PublicKey, sourceAta: PublicKey, destinationAta: PublicKey, shuttleWalletAta: PublicKey, mint: PublicKey, shuttleId: number, amount: bigint, validator?: PublicKey, tokenProgram?: PublicKey): TransactionInstruction;
32
+ export declare function depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, owner: PublicKey, sourceAta: PublicKey, destinationOwner: PublicKey, shuttleWalletAta: PublicKey, mint: PublicKey, shuttleId: number, amount: bigint, exactOut: boolean, minDelayMs: bigint, maxDelayMs: bigint, split: number, validator?: PublicKey, clientRefId?: bigint, tokenProgram?: PublicKey): TransactionInstruction;
33
+ export declare function withdrawThroughDelegatedShuttleWithMergeIx(payer: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, owner: PublicKey, ownerAta: PublicKey, shuttleWalletAta: PublicKey, mint: PublicKey, shuttleId: number, amount: bigint, validator?: PublicKey, tokenProgram?: PublicKey): TransactionInstruction;
34
34
  export declare function lamportsDelegatedTransferIx(payer: PublicKey, destination: PublicKey, amount: bigint, salt: Uint8Array): TransactionInstruction;
35
- export declare function mergeShuttleIntoAtaIx(owner: PublicKey, destinationAta: PublicKey, shuttleEphemeralAta: PublicKey, shuttleWalletAta: PublicKey, mint: PublicKey): TransactionInstruction;
36
- export declare function undelegateAndCloseShuttleEphemeralAtaIx(payer: PublicKey, rentReimbursement: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, shuttleWalletAta: PublicKey, destinationAta: PublicKey, escrowIndex?: number): TransactionInstruction;
37
- export declare function withdrawSplIx(owner: PublicKey, mint: PublicKey, amount: bigint): TransactionInstruction;
35
+ export declare function mergeShuttleIntoAtaIx(owner: PublicKey, destinationAta: PublicKey, shuttleEphemeralAta: PublicKey, shuttleWalletAta: PublicKey, mint: PublicKey, tokenProgram?: PublicKey): TransactionInstruction;
36
+ export declare function undelegateAndCloseShuttleEphemeralAtaIx(payer: PublicKey, rentReimbursement: PublicKey, shuttleEphemeralAta: PublicKey, shuttleAta: PublicKey, shuttleWalletAta: PublicKey, destinationAta: PublicKey, escrowIndex?: number, tokenProgram?: PublicKey): TransactionInstruction;
37
+ export declare function withdrawSplIx(owner: PublicKey, mint: PublicKey, amount: bigint, tokenProgram?: PublicKey): TransactionInstruction;
38
38
  export declare function undelegateIx(owner: PublicKey, mint: PublicKey): TransactionInstruction;
39
39
  export declare function createEataPermissionIx(ephemeralAta: PublicKey, payer: PublicKey, flags?: number): TransactionInstruction;
40
40
  export declare function resetEataPermissionIx(ephemeralAta: PublicKey, payer: PublicKey, flags?: number): TransactionInstruction;
@@ -43,6 +43,7 @@ export declare function undelegateEataPermissionIx(owner: PublicKey, ephemeralAt
43
43
  export interface DelegateSplOptions {
44
44
  payer?: PublicKey;
45
45
  validator?: PublicKey;
46
+ tokenProgram?: PublicKey;
46
47
  initIfMissing?: boolean;
47
48
  initVaultIfMissing?: boolean;
48
49
  initAtasIfMissing?: boolean;
@@ -76,6 +77,7 @@ export interface TransferSplOptions {
76
77
  toBalance: TransferBalance;
77
78
  payer?: PublicKey;
78
79
  validator?: PublicKey;
80
+ tokenProgram?: PublicKey;
79
81
  initIfMissing?: boolean;
80
82
  initAtasIfMissing?: boolean;
81
83
  initVaultIfMissing?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"ephemeralAta.d.ts","sourceRoot":"","sources":["../../../src/instructions/ephemeral-spl-token-program/ephemeralAta.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ephemeralAta.d.ts","sourceRoot":"","sources":["../../../src/instructions/ephemeral-spl-token-program/ephemeralAta.ts"],"names":[],"mappings":"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"}
@@ -165,8 +165,8 @@ function deriveLamportsPda(payer, destination, salt) {
165
165
  Buffer.from(salt),
166
166
  ], constants_js_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID);
167
167
  }
168
- function deriveVaultAta(mint, vault) {
169
- return getAssociatedTokenAddressSync(mint, vault, true);
168
+ function deriveVaultAta(mint, vault, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
169
+ return getAssociatedTokenAddressSync(mint, vault, true, tokenProgram);
170
170
  }
171
171
  function deriveShuttleEphemeralAta(owner, mint, shuttleId) {
172
172
  if (!Number.isInteger(shuttleId) ||
@@ -181,8 +181,8 @@ function deriveShuttleEphemeralAta(owner, mint, shuttleId) {
181
181
  function deriveShuttleAta(shuttleEphemeralAta, mint) {
182
182
  return web3_js_1.PublicKey.findProgramAddressSync([shuttleEphemeralAta.toBuffer(), mint.toBuffer()], constants_js_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID);
183
183
  }
184
- function deriveShuttleWalletAta(mint, shuttleEphemeralAta) {
185
- return getAssociatedTokenAddressSync(mint, shuttleEphemeralAta, true);
184
+ function deriveShuttleWalletAta(mint, shuttleEphemeralAta, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
185
+ return getAssociatedTokenAddressSync(mint, shuttleEphemeralAta, true, tokenProgram);
186
186
  }
187
187
  function initEphemeralAtaIx(ephemeralAta, owner, mint, payer) {
188
188
  return new web3_js_1.TransactionInstruction({
@@ -197,12 +197,12 @@ function initEphemeralAtaIx(ephemeralAta, owner, mint, payer) {
197
197
  data: Buffer.from([0]),
198
198
  });
199
199
  }
200
- function initVaultAtaIx(payer, vaultAta, vault, mint) {
201
- return createAssociatedTokenAccountIdempotentInstruction(payer, vaultAta, vault, mint);
200
+ function initVaultAtaIx(payer, vaultAta, vault, mint, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
201
+ return createAssociatedTokenAccountIdempotentInstruction(payer, vaultAta, vault, mint, tokenProgram);
202
202
  }
203
- function initVaultIx(vault, mint, payer) {
203
+ function initVaultIx(vault, mint, payer, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
204
204
  const [vaultEphemeralAta] = deriveEphemeralAta(vault, mint);
205
- const vaultAta = deriveVaultAta(mint, vault);
205
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
206
206
  return new web3_js_1.TransactionInstruction({
207
207
  programId: constants_js_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
208
208
  keys: [
@@ -211,7 +211,7 @@ function initVaultIx(vault, mint, payer) {
211
211
  { pubkey: mint, isSigner: false, isWritable: false },
212
212
  { pubkey: vaultEphemeralAta, isSigner: false, isWritable: true },
213
213
  { pubkey: vaultAta, isSigner: false, isWritable: true },
214
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
214
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
215
215
  {
216
216
  pubkey: constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID,
217
217
  isSigner: false,
@@ -233,7 +233,7 @@ function initRentPdaIx(payer, rentPda) {
233
233
  data: Buffer.from([23]),
234
234
  });
235
235
  }
236
- function transferToVaultIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner, amount) {
236
+ function transferToVaultIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner, amount, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
237
237
  return new web3_js_1.TransactionInstruction({
238
238
  programId: constants_js_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
239
239
  keys: [
@@ -243,13 +243,13 @@ function transferToVaultIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner
243
243
  { pubkey: sourceAta, isSigner: false, isWritable: true },
244
244
  { pubkey: vaultAta, isSigner: false, isWritable: true },
245
245
  { pubkey: owner, isSigner: true, isWritable: false },
246
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
246
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
247
247
  ],
248
248
  data: encodeAmountInstructionData(2, amount),
249
249
  });
250
250
  }
251
- function depositSplTokensIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner, amount) {
252
- return transferToVaultIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner, amount);
251
+ function depositSplTokensIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner, amount, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
252
+ return transferToVaultIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner, amount, tokenProgram);
253
253
  }
254
254
  function delegateEphemeralAtaIx(payer, ephemeralAta, validator) {
255
255
  const data = validator
@@ -286,7 +286,7 @@ function delegateEphemeralAtaIx(payer, ephemeralAta, validator) {
286
286
  data,
287
287
  });
288
288
  }
289
- function initShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, owner, mint, shuttleId) {
289
+ function initShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, owner, mint, shuttleId, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
290
290
  if (!Number.isInteger(shuttleId) ||
291
291
  shuttleId < 0 ||
292
292
  shuttleId > 4294967295) {
@@ -304,7 +304,7 @@ function initShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shutt
304
304
  { pubkey: shuttleWalletAta, isSigner: false, isWritable: true },
305
305
  { pubkey: owner, isSigner: false, isWritable: false },
306
306
  { pubkey: mint, isSigner: false, isWritable: false },
307
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
307
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
308
308
  {
309
309
  pubkey: constants_js_1.ASSOCIATED_TOKEN_PROGRAM_ID,
310
310
  isSigner: false,
@@ -351,7 +351,7 @@ function delegateShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, v
351
351
  data,
352
352
  });
353
353
  }
354
- function setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, sourceAta, destinationAta, shuttleWalletAta, mint, shuttleId, amount, validator) {
354
+ function setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, sourceAta, destinationAta, shuttleWalletAta, mint, shuttleId, amount, validator, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
355
355
  if (!Number.isInteger(shuttleId) ||
356
356
  shuttleId < 0 ||
357
357
  shuttleId > 4294967295) {
@@ -359,7 +359,7 @@ function setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralA
359
359
  }
360
360
  const [rentPda] = deriveRentPda();
361
361
  const [vault] = deriveVault(mint);
362
- const vaultAta = deriveVaultAta(mint, vault);
362
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
363
363
  const data = validator ? Buffer.alloc(45) : Buffer.alloc(13);
364
364
  data[0] = 24;
365
365
  data.writeUInt32LE(shuttleId, 1);
@@ -405,7 +405,7 @@ function setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralA
405
405
  { pubkey: web3_js_1.SystemProgram.programId, isSigner: false, isWritable: false },
406
406
  { pubkey: destinationAta, isSigner: false, isWritable: true },
407
407
  { pubkey: mint, isSigner: false, isWritable: false },
408
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
408
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
409
409
  { pubkey: vault, isSigner: false, isWritable: false },
410
410
  { pubkey: sourceAta, isSigner: false, isWritable: true },
411
411
  { pubkey: vaultAta, isSigner: false, isWritable: true },
@@ -413,7 +413,7 @@ function setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralA
413
413
  data,
414
414
  });
415
415
  }
416
- function depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, owner, sourceAta, destinationOwner, shuttleWalletAta, mint, shuttleId, amount, exactOut, minDelayMs, maxDelayMs, split, validator, clientRefId) {
416
+ function depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, owner, sourceAta, destinationOwner, shuttleWalletAta, mint, shuttleId, amount, exactOut, minDelayMs, maxDelayMs, split, validator, clientRefId, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
417
417
  if (!Number.isInteger(shuttleId) ||
418
418
  shuttleId < 0 ||
419
419
  shuttleId > 4294967295) {
@@ -436,7 +436,7 @@ function depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(paye
436
436
  }
437
437
  const [rentPda] = deriveRentPda();
438
438
  const [vault] = deriveVault(mint);
439
- const vaultAta = deriveVaultAta(mint, vault);
439
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
440
440
  const [queue] = (0, transferQueue_js_1.deriveTransferQueue)(mint, validator);
441
441
  const encryptedDestination = (0, crypto_js_1.encryptWithEd25519Recipient)(destinationOwner.toBytes(), validator);
442
442
  if (encryptedDestination.length !== 32 + crypto_js_1.ENCRYPTION_OVERHEAD) {
@@ -490,7 +490,7 @@ function depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(paye
490
490
  },
491
491
  { pubkey: web3_js_1.SystemProgram.programId, isSigner: false, isWritable: false },
492
492
  { pubkey: mint, isSigner: false, isWritable: false },
493
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
493
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
494
494
  { pubkey: vault, isSigner: false, isWritable: false },
495
495
  { pubkey: sourceAta, isSigner: false, isWritable: true },
496
496
  { pubkey: vaultAta, isSigner: false, isWritable: true },
@@ -499,7 +499,7 @@ function depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(paye
499
499
  data,
500
500
  });
501
501
  }
502
- function withdrawThroughDelegatedShuttleWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, shuttleWalletAta, mint, shuttleId, amount, validator) {
502
+ function withdrawThroughDelegatedShuttleWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, shuttleWalletAta, mint, shuttleId, amount, validator, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
503
503
  if (!Number.isInteger(shuttleId) ||
504
504
  shuttleId < 0 ||
505
505
  shuttleId > 4294967295) {
@@ -554,7 +554,7 @@ function withdrawThroughDelegatedShuttleWithMergeIx(payer, shuttleEphemeralAta,
554
554
  { pubkey: web3_js_1.SystemProgram.programId, isSigner: false, isWritable: false },
555
555
  { pubkey: ownerAta, isSigner: false, isWritable: true },
556
556
  { pubkey: mint, isSigner: false, isWritable: false },
557
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
557
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
558
558
  ],
559
559
  data,
560
560
  });
@@ -611,7 +611,7 @@ function lamportsDelegatedTransferIx(payer, destination, amount, salt) {
611
611
  data,
612
612
  });
613
613
  }
614
- function mergeShuttleIntoAtaIx(owner, destinationAta, shuttleEphemeralAta, shuttleWalletAta, mint) {
614
+ function mergeShuttleIntoAtaIx(owner, destinationAta, shuttleEphemeralAta, shuttleWalletAta, mint, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
615
615
  return new web3_js_1.TransactionInstruction({
616
616
  programId: constants_js_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
617
617
  keys: [
@@ -620,12 +620,12 @@ function mergeShuttleIntoAtaIx(owner, destinationAta, shuttleEphemeralAta, shutt
620
620
  { pubkey: shuttleEphemeralAta, isSigner: false, isWritable: false },
621
621
  { pubkey: shuttleWalletAta, isSigner: false, isWritable: true },
622
622
  { pubkey: mint, isSigner: false, isWritable: false },
623
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
623
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
624
624
  ],
625
625
  data: Buffer.from([15]),
626
626
  });
627
627
  }
628
- function undelegateAndCloseShuttleEphemeralAtaIx(payer, rentReimbursement, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, destinationAta, escrowIndex) {
628
+ function undelegateAndCloseShuttleEphemeralAtaIx(payer, rentReimbursement, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, destinationAta, escrowIndex, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
629
629
  const data = escrowIndex === undefined
630
630
  ? Buffer.from([14])
631
631
  : Buffer.from([14, escrowIndex]);
@@ -638,18 +638,18 @@ function undelegateAndCloseShuttleEphemeralAtaIx(payer, rentReimbursement, shutt
638
638
  { pubkey: shuttleAta, isSigner: false, isWritable: false },
639
639
  { pubkey: shuttleWalletAta, isSigner: false, isWritable: true },
640
640
  { pubkey: destinationAta, isSigner: false, isWritable: true },
641
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
641
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
642
642
  { pubkey: constants_js_1.MAGIC_CONTEXT_ID, isSigner: false, isWritable: true },
643
643
  { pubkey: constants_js_1.MAGIC_PROGRAM_ID, isSigner: false, isWritable: false },
644
644
  ],
645
645
  data,
646
646
  });
647
647
  }
648
- function withdrawSplIx(owner, mint, amount) {
648
+ function withdrawSplIx(owner, mint, amount, tokenProgram = constants_js_1.TOKEN_PROGRAM_ID) {
649
649
  const [ephemeralAta] = deriveEphemeralAta(owner, mint);
650
650
  const [vault] = deriveVault(mint);
651
- const vaultAta = deriveVaultAta(mint, vault);
652
- const userDestAta = getAssociatedTokenAddressSync(mint, owner);
651
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
652
+ const userDestAta = getAssociatedTokenAddressSync(mint, owner, false, tokenProgram);
653
653
  return new web3_js_1.TransactionInstruction({
654
654
  programId: constants_js_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
655
655
  keys: [
@@ -659,7 +659,7 @@ function withdrawSplIx(owner, mint, amount) {
659
659
  { pubkey: mint, isSigner: false, isWritable: false },
660
660
  { pubkey: vaultAta, isSigner: false, isWritable: true },
661
661
  { pubkey: userDestAta, isSigner: false, isWritable: true },
662
- { pubkey: constants_js_1.TOKEN_PROGRAM_ID, isSigner: false, isWritable: false },
662
+ { pubkey: tokenProgram, isSigner: false, isWritable: false },
663
663
  ],
664
664
  data: encodeAmountInstructionData(3, amount),
665
665
  });
@@ -784,6 +784,7 @@ function randomShuttleId() {
784
784
  async function buildDelegateSplInstructions(owner, mint, amount, opts) {
785
785
  const payer = opts?.payer ?? owner;
786
786
  const validator = opts?.validator;
787
+ const tokenProgram = opts?.tokenProgram ?? constants_js_1.TOKEN_PROGRAM_ID;
787
788
  const initIfMissing = opts?.initIfMissing ?? true;
788
789
  const initVaultIfMissing = opts?.initVaultIfMissing ?? initIfMissing;
789
790
  const isPrivate = opts?.private ?? false;
@@ -791,15 +792,15 @@ async function buildDelegateSplInstructions(owner, mint, amount, opts) {
791
792
  const [ephemeralAta] = deriveEphemeralAta(owner, mint);
792
793
  const [vault] = deriveVault(mint);
793
794
  const [vaultEphemeralAta] = deriveEphemeralAta(vault, mint);
794
- const vaultAta = deriveVaultAta(mint, vault);
795
- const ownerAta = getAssociatedTokenAddressSync(mint, owner);
795
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
796
+ const ownerAta = getAssociatedTokenAddressSync(mint, owner, false, tokenProgram);
796
797
  if (initIfMissing) {
797
798
  instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer));
798
799
  }
799
800
  if (initVaultIfMissing) {
800
- instructions.push(initVaultIx(vault, mint, payer), initVaultAtaIx(payer, vaultAta, vault, mint), delegateEphemeralAtaIx(payer, vaultEphemeralAta, validator));
801
+ instructions.push(initVaultIx(vault, mint, payer, tokenProgram), initVaultAtaIx(payer, vaultAta, vault, mint, tokenProgram), delegateEphemeralAtaIx(payer, vaultEphemeralAta, validator));
801
802
  }
802
- instructions.push(transferToVaultIx(ephemeralAta, vault, mint, ownerAta, vaultAta, owner, amount));
803
+ instructions.push(transferToVaultIx(ephemeralAta, vault, mint, ownerAta, vaultAta, owner, amount, tokenProgram));
803
804
  if (isPrivate) {
804
805
  instructions.push(createEataPermissionIx(ephemeralAta, payer));
805
806
  }
@@ -809,6 +810,7 @@ async function buildDelegateSplInstructions(owner, mint, amount, opts) {
809
810
  async function buildIdempotentDelegateSplInstructions(owner, mint, amount, opts) {
810
811
  const payer = opts?.payer ?? owner;
811
812
  const validator = opts?.validator;
813
+ const tokenProgram = opts?.tokenProgram ?? constants_js_1.TOKEN_PROGRAM_ID;
812
814
  const initIfMissing = opts?.initIfMissing ?? true;
813
815
  const initVaultIfMissing = opts?.initVaultIfMissing ?? false;
814
816
  const initAtasIfMissing = opts?.initAtasIfMissing ?? false;
@@ -818,16 +820,16 @@ async function buildIdempotentDelegateSplInstructions(owner, mint, amount, opts)
818
820
  const [ephemeralAta] = deriveEphemeralAta(owner, mint);
819
821
  const [vault] = deriveVault(mint);
820
822
  const [vaultEphemeralAta] = deriveEphemeralAta(vault, mint);
821
- const vaultAta = deriveVaultAta(mint, vault);
822
- const ownerAta = getAssociatedTokenAddressSync(mint, owner);
823
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
824
+ const ownerAta = getAssociatedTokenAddressSync(mint, owner, false, tokenProgram);
823
825
  const [shuttleEphemeralAta] = deriveShuttleEphemeralAta(owner, mint, shuttleId);
824
826
  const [shuttleAta] = deriveShuttleAta(shuttleEphemeralAta, mint);
825
- const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta);
827
+ const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta, tokenProgram);
826
828
  if (initVaultIfMissing) {
827
- instructions.push(initVaultIx(vault, mint, payer), initVaultAtaIx(payer, vaultAta, vault, mint), delegateEphemeralAtaIx(payer, vaultEphemeralAta, validator));
829
+ instructions.push(initVaultIx(vault, mint, payer, tokenProgram), initVaultAtaIx(payer, vaultAta, vault, mint, tokenProgram), delegateEphemeralAtaIx(payer, vaultEphemeralAta, validator));
828
830
  }
829
831
  if (initAtasIfMissing) {
830
- instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, ownerAta, owner, mint));
832
+ instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, ownerAta, owner, mint, tokenProgram));
831
833
  }
832
834
  if (initIfMissing) {
833
835
  instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer));
@@ -837,10 +839,10 @@ async function buildIdempotentDelegateSplInstructions(owner, mint, amount, opts)
837
839
  }
838
840
  instructions.push(delegateEphemeralAtaIx(payer, ephemeralAta, validator));
839
841
  if (amount > 0n) {
840
- instructions.push(setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, ownerAta, shuttleWalletAta, mint, shuttleId, amount, validator));
842
+ instructions.push(setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, ownerAta, shuttleWalletAta, mint, shuttleId, amount, validator, tokenProgram));
841
843
  }
842
844
  else {
843
- instructions.push(initShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, owner, mint, shuttleId), delegateShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, validator));
845
+ instructions.push(initShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, owner, mint, shuttleId, tokenProgram), delegateShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, validator));
844
846
  }
845
847
  return instructions;
846
848
  }
@@ -853,6 +855,7 @@ async function delegateSpl(owner, mint, amount, opts) {
853
855
  async function delegateSplWithPrivateTransfer(owner, mint, amount, opts) {
854
856
  const payer = opts?.payer ?? owner;
855
857
  const validator = opts?.validator;
858
+ const tokenProgram = opts?.tokenProgram ?? constants_js_1.TOKEN_PROGRAM_ID;
856
859
  const initIfMissing = opts?.initIfMissing ?? true;
857
860
  const initVaultIfMissing = opts?.initVaultIfMissing ?? false;
858
861
  const initAtasIfMissing = opts?.initAtasIfMissing ?? false;
@@ -870,30 +873,31 @@ async function delegateSplWithPrivateTransfer(owner, mint, amount, opts) {
870
873
  const [ephemeralAta] = deriveEphemeralAta(owner, mint);
871
874
  const [vault] = deriveVault(mint);
872
875
  const [vaultEphemeralAta] = deriveEphemeralAta(vault, mint);
873
- const vaultAta = deriveVaultAta(mint, vault);
876
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
874
877
  const [queue] = (0, transferQueue_js_1.deriveTransferQueue)(mint, validator);
875
- const ownerAta = getAssociatedTokenAddressSync(mint, owner);
878
+ const ownerAta = getAssociatedTokenAddressSync(mint, owner, false, tokenProgram);
876
879
  const [shuttleEphemeralAta] = deriveShuttleEphemeralAta(owner, mint, shuttleId);
877
880
  const [shuttleAta] = deriveShuttleAta(shuttleEphemeralAta, mint);
878
- const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta);
881
+ const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta, tokenProgram);
879
882
  if (initVaultIfMissing) {
880
- instructions.push(initVaultIx(vault, mint, payer), initVaultAtaIx(payer, vaultAta, vault, mint), delegateEphemeralAtaIx(payer, vaultEphemeralAta, validator));
883
+ instructions.push(initVaultIx(vault, mint, payer, tokenProgram), initVaultAtaIx(payer, vaultAta, vault, mint, tokenProgram), delegateEphemeralAtaIx(payer, vaultEphemeralAta, validator));
881
884
  }
882
885
  if (initTransferQueueIfMissing) {
883
886
  instructions.push((0, transferQueue_js_1.toTransactionInstruction)((0, transferQueue_js_1.initTransferQueueIx)(payer, queue, mint, validator)));
884
887
  }
885
888
  if (initAtasIfMissing) {
886
- instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, ownerAta, owner, mint));
889
+ instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, ownerAta, owner, mint, tokenProgram));
887
890
  }
888
891
  if (initIfMissing) {
889
892
  instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer));
890
893
  }
891
- instructions.push(delegateEphemeralAtaIx(payer, ephemeralAta, validator), depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, owner, shuttleWalletAta, mint, shuttleId, amount, exactOut, minDelayMs, maxDelayMs, split, validator, clientRefId));
894
+ instructions.push(delegateEphemeralAtaIx(payer, ephemeralAta, validator), depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, owner, shuttleWalletAta, mint, shuttleId, amount, exactOut, minDelayMs, maxDelayMs, split, validator, clientRefId, tokenProgram));
892
895
  return instructions;
893
896
  }
894
897
  async function transferSpl(from, to, mint, amount, opts) {
895
898
  const payer = opts.payer ?? from;
896
899
  const validator = opts.validator;
900
+ const tokenProgram = opts.tokenProgram ?? constants_js_1.TOKEN_PROGRAM_ID;
897
901
  const initIfMissing = opts.initIfMissing ?? false;
898
902
  const initAtasIfMissing = opts.initAtasIfMissing ?? false;
899
903
  const initVaultIfMissing = opts.initVaultIfMissing ?? false;
@@ -904,8 +908,8 @@ async function transferSpl(from, to, mint, amount, opts) {
904
908
  const exactOut = opts.privateTransfer?.exactOut ?? true;
905
909
  const clientRefId = opts.privateTransfer?.clientRefId;
906
910
  console.log("opts: ", opts);
907
- const fromAta = getAssociatedTokenAddressSync(mint, from);
908
- const toAta = getAssociatedTokenAddressSync(mint, to);
911
+ const fromAta = getAssociatedTokenAddressSync(mint, from, false, tokenProgram);
912
+ const toAta = getAssociatedTokenAddressSync(mint, to, false, tokenProgram);
909
913
  if (opts.fromBalance === "ephemeral") {
910
914
  switch (opts.visibility) {
911
915
  case "private":
@@ -915,18 +919,22 @@ async function transferSpl(from, to, mint, amount, opts) {
915
919
  }
916
920
  const [queue] = (0, transferQueue_js_1.deriveTransferQueue)(mint, validator);
917
921
  const [vault] = deriveVault(mint);
918
- const vaultAta = deriveVaultAta(mint, vault);
922
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
919
923
  return [
920
- (0, transferQueue_js_1.toTransactionInstruction)((0, transferQueue_js_1.depositAndQueueTransferIx)(queue, vault, mint, fromAta, vaultAta, to, from, amount, minDelayMs, maxDelayMs, split, undefined, clientRefId)),
924
+ (0, transferQueue_js_1.toTransactionInstruction)((0, transferQueue_js_1.depositAndQueueTransferIx)(queue, vault, mint, fromAta, vaultAta, to, from, amount, minDelayMs, maxDelayMs, split, undefined, clientRefId, tokenProgram)),
921
925
  ];
922
926
  }
923
927
  if (opts.toBalance === "ephemeral") {
924
- return [createTransferInstruction(fromAta, toAta, from, amount)];
928
+ return [
929
+ createTransferInstruction(fromAta, toAta, from, amount, [], tokenProgram),
930
+ ];
925
931
  }
926
932
  break;
927
933
  case "public":
928
934
  if (opts.toBalance === "ephemeral") {
929
- return [createTransferInstruction(fromAta, toAta, from, amount)];
935
+ return [
936
+ createTransferInstruction(fromAta, toAta, from, amount, [], tokenProgram),
937
+ ];
930
938
  }
931
939
  break;
932
940
  }
@@ -935,42 +943,37 @@ async function transferSpl(from, to, mint, amount, opts) {
935
943
  if (initVaultIfMissing) {
936
944
  const [vault] = deriveVault(mint);
937
945
  const [vaultEphemeralAta] = deriveEphemeralAta(vault, mint);
938
- const vaultAta = deriveVaultAta(mint, vault);
939
- instructions.push(initVaultIx(vault, mint, payer), initVaultAtaIx(payer, vaultAta, vault, mint), delegateEphemeralAtaIx(payer, vaultEphemeralAta, validator));
946
+ const vaultAta = deriveVaultAta(mint, vault, tokenProgram);
947
+ instructions.push(initVaultIx(vault, mint, payer, tokenProgram), initVaultAtaIx(payer, vaultAta, vault, mint, tokenProgram), delegateEphemeralAtaIx(payer, vaultEphemeralAta, validator));
940
948
  }
941
949
  if (opts.fromBalance === "base" && initAtasIfMissing) {
942
- instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, fromAta, from, mint));
950
+ instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, fromAta, from, mint, tokenProgram));
943
951
  }
944
- const maybeRefillInstructions = () => {
945
- if (opts.fromBalance !== "base" || validator == null) {
946
- return [];
947
- }
948
- const [queue] = (0, transferQueue_js_1.deriveTransferQueue)(mint, validator);
949
- return [(0, transferQueue_js_1.processPendingTransferQueueRefillIx)(queue)];
950
- };
951
952
  switch (opts.visibility) {
952
953
  case "private":
953
954
  if (opts.fromBalance === "base" && opts.toBalance === "base") {
955
+ const [fromEphemeralAta] = deriveEphemeralAta(from, mint);
954
956
  const [shuttleEphemeralAta] = deriveShuttleEphemeralAta(from, mint, shuttleId);
955
957
  const [shuttleAta] = deriveShuttleAta(shuttleEphemeralAta, mint);
956
- const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta);
958
+ const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta, tokenProgram);
957
959
  return [
958
960
  ...instructions,
959
- ...maybeRefillInstructions(),
960
- depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, from, fromAta, to, shuttleWalletAta, mint, shuttleId, amount, exactOut, minDelayMs, maxDelayMs, split, validator, clientRefId),
961
+ initEphemeralAtaIx(fromEphemeralAta, from, mint, payer),
962
+ delegateEphemeralAtaIx(payer, fromEphemeralAta, validator),
963
+ depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, from, fromAta, to, shuttleWalletAta, mint, shuttleId, amount, exactOut, minDelayMs, maxDelayMs, split, validator, clientRefId, tokenProgram),
961
964
  ];
962
965
  }
963
966
  if (opts.fromBalance === "base" && opts.toBalance === "ephemeral") {
964
967
  if (initIfMissing) {
965
968
  const [toEphemeralAta] = deriveEphemeralAta(to, mint);
966
- instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, toAta, to, mint), initEphemeralAtaIx(toEphemeralAta, to, mint, payer), delegateEphemeralAtaIx(payer, toEphemeralAta, validator));
969
+ instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, toAta, to, mint, tokenProgram), initEphemeralAtaIx(toEphemeralAta, to, mint, payer), delegateEphemeralAtaIx(payer, toEphemeralAta, validator));
967
970
  }
968
971
  const [shuttleEphemeralAta] = deriveShuttleEphemeralAta(from, mint, shuttleId);
969
972
  const [shuttleAta] = deriveShuttleAta(shuttleEphemeralAta, mint);
970
- const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta);
973
+ const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta, tokenProgram);
971
974
  return [
972
975
  ...instructions,
973
- setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, from, fromAta, toAta, shuttleWalletAta, mint, shuttleId, amount, validator),
976
+ setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, from, fromAta, toAta, shuttleWalletAta, mint, shuttleId, amount, validator, tokenProgram),
974
977
  ];
975
978
  }
976
979
  break;
@@ -978,7 +981,7 @@ async function transferSpl(from, to, mint, amount, opts) {
978
981
  if (opts.fromBalance === "base" && opts.toBalance === "base") {
979
982
  return [
980
983
  ...instructions,
981
- createTransferInstruction(fromAta, toAta, from, amount),
984
+ createTransferInstruction(fromAta, toAta, from, amount, [], tokenProgram),
982
985
  ];
983
986
  }
984
987
  break;
@@ -988,33 +991,35 @@ async function transferSpl(from, to, mint, amount, opts) {
988
991
  async function buildIdempotentWithdrawSplInstructions(owner, mint, amount, opts) {
989
992
  const payer = opts?.payer ?? owner;
990
993
  const validator = opts?.validator;
994
+ const tokenProgram = opts?.tokenProgram ?? constants_js_1.TOKEN_PROGRAM_ID;
991
995
  const initIfMissing = opts?.initIfMissing ?? true;
992
996
  const initAtasIfMissing = opts?.initAtasIfMissing ?? false;
993
997
  const shuttleId = opts?.shuttleId ?? randomShuttleId();
994
998
  const instructions = [];
995
999
  const [ephemeralAta] = deriveEphemeralAta(owner, mint);
996
- const ownerAta = getAssociatedTokenAddressSync(mint, owner);
1000
+ const ownerAta = getAssociatedTokenAddressSync(mint, owner, false, tokenProgram);
997
1001
  const [shuttleEphemeralAta] = deriveShuttleEphemeralAta(owner, mint, shuttleId);
998
1002
  const [shuttleAta] = deriveShuttleAta(shuttleEphemeralAta, mint);
999
- const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta);
1003
+ const shuttleWalletAta = deriveShuttleWalletAta(mint, shuttleEphemeralAta, tokenProgram);
1000
1004
  if (initAtasIfMissing) {
1001
- instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, ownerAta, owner, mint));
1005
+ instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, ownerAta, owner, mint, tokenProgram));
1002
1006
  }
1003
1007
  if (initIfMissing) {
1004
1008
  instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer));
1005
1009
  }
1006
- instructions.push(delegateEphemeralAtaIx(payer, ephemeralAta, validator), withdrawThroughDelegatedShuttleWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, shuttleWalletAta, mint, shuttleId, amount, validator));
1010
+ instructions.push(delegateEphemeralAtaIx(payer, ephemeralAta, validator), withdrawThroughDelegatedShuttleWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, shuttleWalletAta, mint, shuttleId, amount, validator, tokenProgram));
1007
1011
  return instructions;
1008
1012
  }
1009
1013
  async function withdrawSpl(owner, mint, amount, opts) {
1014
+ const tokenProgram = opts?.tokenProgram ?? constants_js_1.TOKEN_PROGRAM_ID;
1010
1015
  if (opts?.idempotent === false) {
1011
1016
  const instructions = [];
1012
1017
  if (opts?.initAtasIfMissing === true) {
1013
1018
  const payer = opts.payer ?? owner;
1014
- const ownerAta = getAssociatedTokenAddressSync(mint, owner);
1015
- instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, ownerAta, owner, mint));
1019
+ const ownerAta = getAssociatedTokenAddressSync(mint, owner, false, tokenProgram);
1020
+ instructions.push(createAssociatedTokenAccountIdempotentInstruction(payer, ownerAta, owner, mint, tokenProgram));
1016
1021
  }
1017
- instructions.push(withdrawSplIx(owner, mint, amount));
1022
+ instructions.push(withdrawSplIx(owner, mint, amount, tokenProgram));
1018
1023
  return instructions;
1019
1024
  }
1020
1025
  return buildIdempotentWithdrawSplInstructions(owner, mint, amount, opts);