@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.
- package/lib/__test__/instructions.test.js +87 -10
- package/lib/__test__/instructions.test.js.map +1 -1
- package/lib/__test__/resolver.test.d.ts +2 -0
- package/lib/__test__/resolver.test.d.ts.map +1 -0
- package/lib/__test__/resolver.test.js +68 -0
- package/lib/__test__/resolver.test.js.map +1 -0
- package/lib/constants.d.ts +1 -0
- package/lib/constants.d.ts.map +1 -1
- package/lib/constants.js +2 -1
- package/lib/constants.js.map +1 -1
- package/lib/instructions/ephemeral-spl-token-program/ephemeralAta.d.ts +15 -13
- package/lib/instructions/ephemeral-spl-token-program/ephemeralAta.d.ts.map +1 -1
- package/lib/instructions/ephemeral-spl-token-program/ephemeralAta.js +83 -78
- package/lib/instructions/ephemeral-spl-token-program/ephemeralAta.js.map +1 -1
- package/lib/instructions/ephemeral-spl-token-program/transferQueue.d.ts +1 -1
- package/lib/instructions/ephemeral-spl-token-program/transferQueue.d.ts.map +1 -1
- package/lib/instructions/ephemeral-spl-token-program/transferQueue.js +2 -2
- package/lib/instructions/ephemeral-spl-token-program/transferQueue.js.map +1 -1
- package/lib/resolver.d.ts +5 -4
- package/lib/resolver.d.ts.map +1 -1
- package/lib/resolver.js +21 -11
- package/lib/resolver.js.map +1 -1
- package/package.json +1 -1
|
@@ -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":"AAAA,OAAO,EACL,SAAS,EACT,sBAAsB,EAEtB,WAAW,EACZ,MAAM,iBAAiB,CAAC;
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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:
|
|
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 [
|
|
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 [
|
|
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
|
-
|
|
960
|
-
|
|
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);
|