@magicblock-labs/ephemeral-rollups-kit 0.8.8 → 0.10.0

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.
@@ -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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"}
@@ -10,6 +10,7 @@ exports.getGlobalVaultCodec = getGlobalVaultCodec;
10
10
  exports.decodeGlobalVault = decodeGlobalVault;
11
11
  exports.deriveEphemeralAta = deriveEphemeralAta;
12
12
  exports.deriveVault = deriveVault;
13
+ exports.deriveRentPda = deriveRentPda;
13
14
  exports.deriveVaultAta = deriveVaultAta;
14
15
  exports.deriveShuttleEphemeralAta = deriveShuttleEphemeralAta;
15
16
  exports.deriveShuttleAta = deriveShuttleAta;
@@ -17,10 +18,14 @@ exports.deriveShuttleWalletAta = deriveShuttleWalletAta;
17
18
  exports.initEphemeralAtaIx = initEphemeralAtaIx;
18
19
  exports.initVaultAtaIx = initVaultAtaIx;
19
20
  exports.initVaultIx = initVaultIx;
21
+ exports.initRentPdaIx = initRentPdaIx;
20
22
  exports.transferToVaultIx = transferToVaultIx;
21
23
  exports.delegateIx = delegateIx;
22
24
  exports.initShuttleEphemeralAtaIx = initShuttleEphemeralAtaIx;
23
25
  exports.delegateShuttleEphemeralAtaIx = delegateShuttleEphemeralAtaIx;
26
+ exports.setupAndDelegateShuttleEphemeralAtaWithMergeIx = setupAndDelegateShuttleEphemeralAtaWithMergeIx;
27
+ exports.depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx = depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx;
28
+ exports.withdrawThroughDelegatedShuttleWithMergeIx = withdrawThroughDelegatedShuttleWithMergeIx;
24
29
  exports.mergeShuttleIntoAtaIx = mergeShuttleIntoAtaIx;
25
30
  exports.undelegateAndCloseShuttleEphemeralAtaIx = undelegateAndCloseShuttleEphemeralAtaIx;
26
31
  exports.withdrawSplIx = withdrawSplIx;
@@ -30,13 +35,15 @@ exports.resetEataPermissionIx = resetEataPermissionIx;
30
35
  exports.delegateEataPermissionIx = delegateEataPermissionIx;
31
36
  exports.undelegateEataPermissionIx = undelegateEataPermissionIx;
32
37
  exports.delegateSpl = delegateSpl;
33
- exports.delegateSplIdempotent = delegateSplIdempotent;
34
- exports.delegatePrivateSpl = delegatePrivateSpl;
38
+ exports.delegateSplWithPrivateTransfer = delegateSplWithPrivateTransfer;
39
+ exports.transferSpl = transferSpl;
40
+ exports.withdrawSpl = withdrawSpl;
35
41
  const kit_1 = require("@solana/kit");
36
42
  const system_1 = require("@solana-program/system");
37
43
  const constants_1 = require("../../constants");
38
44
  const pda_1 = require("../../pda");
39
- const DEFAULT_PRIVATE_VALIDATOR = (0, kit_1.address)("FnE6VJT5QNZdedZPnCoLsARgBwoE6DeJNjBs2H1gySXA");
45
+ const transferQueue_1 = require("./transferQueue");
46
+ const U64_ENCODER = (0, kit_1.getU64Encoder)();
40
47
  const TOKEN_PROGRAM_ADDRESS = "TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA";
41
48
  const ASSOCIATED_TOKEN_PROGRAM_ADDRESS = "ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL";
42
49
  async function getAssociatedTokenAddressSync(mint, owner, allowOwnerOffCurve = false) {
@@ -51,6 +58,17 @@ async function getAssociatedTokenAddressSync(mint, owner, allowOwnerOffCurve = f
51
58
  });
52
59
  return ata;
53
60
  }
61
+ function createTransferInstruction(source, destination, owner, amount) {
62
+ return {
63
+ accounts: [
64
+ { address: source, role: kit_1.AccountRole.WRITABLE },
65
+ { address: destination, role: kit_1.AccountRole.WRITABLE },
66
+ { address: owner, role: kit_1.AccountRole.READONLY_SIGNER },
67
+ ],
68
+ data: encodeAmountInstructionData(3, amount),
69
+ programAddress: TOKEN_PROGRAM_ADDRESS,
70
+ };
71
+ }
54
72
  function getEphemeralAtaEncoder() {
55
73
  return (0, kit_1.getStructEncoder)([
56
74
  ["owner", (0, kit_1.getAddressEncoder)()],
@@ -101,6 +119,13 @@ async function deriveVault(mint) {
101
119
  });
102
120
  return [vault, bump];
103
121
  }
122
+ async function deriveRentPda() {
123
+ const [rentPda, bump] = await (0, kit_1.getProgramDerivedAddress)({
124
+ programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
125
+ seeds: [new Uint8Array([114, 101, 110, 116])],
126
+ });
127
+ return [rentPda, bump];
128
+ }
104
129
  async function deriveVaultAta(mint, vault) {
105
130
  return getAssociatedTokenAddressSync(mint, vault, true);
106
131
  }
@@ -164,12 +189,13 @@ function initVaultAtaIx(payer, vaultAta, vault, mint) {
164
189
  programAddress: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
165
190
  };
166
191
  }
167
- function initVaultIx(vault, mint, payer, bump, vaultAta) {
192
+ function initVaultIx(vault, mint, payer, bump, vaultEphemeralAta, vaultAta) {
168
193
  return {
169
194
  accounts: [
170
195
  { address: vault, role: kit_1.AccountRole.WRITABLE },
171
196
  { address: payer, role: kit_1.AccountRole.WRITABLE_SIGNER },
172
197
  { address: mint, role: kit_1.AccountRole.READONLY },
198
+ { address: vaultEphemeralAta, role: kit_1.AccountRole.WRITABLE },
173
199
  { address: vaultAta, role: kit_1.AccountRole.WRITABLE },
174
200
  { address: TOKEN_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
175
201
  {
@@ -182,6 +208,17 @@ function initVaultIx(vault, mint, payer, bump, vaultAta) {
182
208
  programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
183
209
  };
184
210
  }
211
+ function initRentPdaIx(payer, rentPda) {
212
+ return {
213
+ accounts: [
214
+ { address: payer, role: kit_1.AccountRole.WRITABLE_SIGNER },
215
+ { address: rentPda, role: kit_1.AccountRole.WRITABLE },
216
+ { address: system_1.SYSTEM_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
217
+ ],
218
+ data: new Uint8Array([23]),
219
+ programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
220
+ };
221
+ }
185
222
  function transferToVaultIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner, amount) {
186
223
  return {
187
224
  accounts: [
@@ -193,7 +230,7 @@ function transferToVaultIx(ephemeralAta, vault, mint, sourceAta, vaultAta, owner
193
230
  { address: owner, role: kit_1.AccountRole.READONLY_SIGNER },
194
231
  { address: TOKEN_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
195
232
  ],
196
- data: new Uint8Array([2, ...u64le(amount)]),
233
+ data: encodeAmountInstructionData(2, amount),
197
234
  programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
198
235
  };
199
236
  }
@@ -292,6 +329,174 @@ async function delegateShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttle
292
329
  programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
293
330
  };
294
331
  }
332
+ async function setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, sourceAta, destinationAta, shuttleWalletAta, mint, shuttleId, bump, amount, validator) {
333
+ if (!Number.isInteger(shuttleId) ||
334
+ shuttleId < 0 ||
335
+ shuttleId > 4294967295) {
336
+ throw new Error("shuttleId must fit in u32");
337
+ }
338
+ const [rentPda] = await deriveRentPda();
339
+ const [vault] = await deriveVault(mint);
340
+ const vaultAta = await deriveVaultAta(mint, vault);
341
+ const delegateBuffer = await (0, pda_1.delegateBufferPdaFromDelegatedAccountAndOwnerProgram)(shuttleAta, constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID);
342
+ const delegationRecord = await (0, pda_1.delegationRecordPdaFromDelegatedAccount)(shuttleAta);
343
+ const delegationMetadata = await (0, pda_1.delegationMetadataPdaFromDelegatedAccount)(shuttleAta);
344
+ const addressEncoder = (0, kit_1.getAddressEncoder)();
345
+ const data = new Uint8Array(validator ? 46 : 14);
346
+ const dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);
347
+ data[0] = 24;
348
+ dataView.setUint32(1, shuttleId, true);
349
+ data[5] = bump;
350
+ dataView.setBigUint64(6, amount, true);
351
+ if (validator) {
352
+ data.set(addressEncoder.encode(validator), 14);
353
+ }
354
+ return {
355
+ accounts: [
356
+ { address: payer, role: kit_1.AccountRole.WRITABLE_SIGNER },
357
+ { address: rentPda, role: kit_1.AccountRole.WRITABLE },
358
+ { address: shuttleEphemeralAta, role: kit_1.AccountRole.WRITABLE },
359
+ { address: shuttleAta, role: kit_1.AccountRole.WRITABLE },
360
+ { address: shuttleWalletAta, role: kit_1.AccountRole.WRITABLE },
361
+ { address: owner, role: kit_1.AccountRole.READONLY_SIGNER },
362
+ { address: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID, role: kit_1.AccountRole.READONLY },
363
+ { address: delegateBuffer, role: kit_1.AccountRole.WRITABLE },
364
+ { address: delegationRecord, role: kit_1.AccountRole.WRITABLE },
365
+ { address: delegationMetadata, role: kit_1.AccountRole.WRITABLE },
366
+ { address: constants_1.DELEGATION_PROGRAM_ID, role: kit_1.AccountRole.READONLY },
367
+ {
368
+ address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
369
+ role: kit_1.AccountRole.READONLY,
370
+ },
371
+ { address: system_1.SYSTEM_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
372
+ { address: destinationAta, role: kit_1.AccountRole.WRITABLE },
373
+ { address: mint, role: kit_1.AccountRole.READONLY },
374
+ { address: TOKEN_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
375
+ { address: vault, role: kit_1.AccountRole.READONLY },
376
+ { address: sourceAta, role: kit_1.AccountRole.WRITABLE },
377
+ { address: vaultAta, role: kit_1.AccountRole.WRITABLE },
378
+ ],
379
+ data,
380
+ programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
381
+ };
382
+ }
383
+ async function depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, owner, sourceAta, destinationAta, shuttleWalletAta, mint, shuttleId, bump, amount, minDelayMs, maxDelayMs, split, validator) {
384
+ if (!Number.isInteger(shuttleId) ||
385
+ shuttleId < 0 ||
386
+ shuttleId > 4294967295) {
387
+ throw new Error("shuttleId must fit in u32");
388
+ }
389
+ if (amount < 0n) {
390
+ throw new Error("amount must be non-negative");
391
+ }
392
+ if (minDelayMs < 0n || maxDelayMs < 0n) {
393
+ throw new Error("delay values must be non-negative");
394
+ }
395
+ if (maxDelayMs < minDelayMs) {
396
+ throw new Error("maxDelayMs must be greater than or equal to minDelayMs");
397
+ }
398
+ if (!Number.isInteger(split) || split <= 0 || split > 4294967295) {
399
+ throw new Error("split must fit in u32 and be positive");
400
+ }
401
+ const [rentPda] = await deriveRentPda();
402
+ const [vault] = await deriveVault(mint);
403
+ const vaultAta = await deriveVaultAta(mint, vault);
404
+ const [queue] = await (0, transferQueue_1.deriveTransferQueue)(mint);
405
+ const delegateBuffer = await (0, pda_1.delegateBufferPdaFromDelegatedAccountAndOwnerProgram)(shuttleAta, constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID);
406
+ const delegationRecord = await (0, pda_1.delegationRecordPdaFromDelegatedAccount)(shuttleAta);
407
+ const delegationMetadata = await (0, pda_1.delegationMetadataPdaFromDelegatedAccount)(shuttleAta);
408
+ const addressEncoder = (0, kit_1.getAddressEncoder)();
409
+ const data = new Uint8Array(validator ? 66 : 34);
410
+ const dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);
411
+ data[0] = 25;
412
+ dataView.setUint32(1, shuttleId, true);
413
+ data[5] = bump;
414
+ dataView.setBigUint64(6, amount, true);
415
+ dataView.setBigUint64(14, minDelayMs, true);
416
+ dataView.setBigUint64(22, maxDelayMs, true);
417
+ dataView.setUint32(30, split, true);
418
+ if (validator) {
419
+ data.set(addressEncoder.encode(validator), 34);
420
+ }
421
+ return {
422
+ accounts: [
423
+ { address: payer, role: kit_1.AccountRole.WRITABLE_SIGNER },
424
+ { address: rentPda, role: kit_1.AccountRole.WRITABLE },
425
+ { address: shuttleEphemeralAta, role: kit_1.AccountRole.WRITABLE },
426
+ { address: shuttleAta, role: kit_1.AccountRole.WRITABLE },
427
+ { address: shuttleWalletAta, role: kit_1.AccountRole.WRITABLE },
428
+ { address: owner, role: kit_1.AccountRole.READONLY_SIGNER },
429
+ { address: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID, role: kit_1.AccountRole.READONLY },
430
+ { address: delegateBuffer, role: kit_1.AccountRole.WRITABLE },
431
+ { address: delegationRecord, role: kit_1.AccountRole.WRITABLE },
432
+ { address: delegationMetadata, role: kit_1.AccountRole.WRITABLE },
433
+ { address: constants_1.DELEGATION_PROGRAM_ID, role: kit_1.AccountRole.READONLY },
434
+ {
435
+ address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
436
+ role: kit_1.AccountRole.READONLY,
437
+ },
438
+ { address: system_1.SYSTEM_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
439
+ { address: destinationAta, role: kit_1.AccountRole.WRITABLE },
440
+ { address: mint, role: kit_1.AccountRole.READONLY },
441
+ { address: TOKEN_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
442
+ { address: vault, role: kit_1.AccountRole.READONLY },
443
+ { address: sourceAta, role: kit_1.AccountRole.WRITABLE },
444
+ { address: vaultAta, role: kit_1.AccountRole.WRITABLE },
445
+ { address: queue, role: kit_1.AccountRole.WRITABLE },
446
+ ],
447
+ data,
448
+ programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
449
+ };
450
+ }
451
+ async function withdrawThroughDelegatedShuttleWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, shuttleWalletAta, mint, shuttleId, bump, amount, validator) {
452
+ if (!Number.isInteger(shuttleId) ||
453
+ shuttleId < 0 ||
454
+ shuttleId > 4294967295) {
455
+ throw new Error("shuttleId must fit in u32");
456
+ }
457
+ if (amount < 0n) {
458
+ throw new Error("amount must be non-negative");
459
+ }
460
+ const [rentPda] = await deriveRentPda();
461
+ const delegateBuffer = await (0, pda_1.delegateBufferPdaFromDelegatedAccountAndOwnerProgram)(shuttleAta, constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID);
462
+ const delegationRecord = await (0, pda_1.delegationRecordPdaFromDelegatedAccount)(shuttleAta);
463
+ const delegationMetadata = await (0, pda_1.delegationMetadataPdaFromDelegatedAccount)(shuttleAta);
464
+ const addressEncoder = (0, kit_1.getAddressEncoder)();
465
+ const data = new Uint8Array(validator ? 46 : 14);
466
+ const dataView = new DataView(data.buffer, data.byteOffset, data.byteLength);
467
+ data[0] = 26;
468
+ dataView.setUint32(1, shuttleId, true);
469
+ data[5] = bump;
470
+ dataView.setBigUint64(6, amount, true);
471
+ if (validator) {
472
+ data.set(addressEncoder.encode(validator), 14);
473
+ }
474
+ return {
475
+ accounts: [
476
+ { address: payer, role: kit_1.AccountRole.WRITABLE_SIGNER },
477
+ { address: rentPda, role: kit_1.AccountRole.WRITABLE },
478
+ { address: shuttleEphemeralAta, role: kit_1.AccountRole.WRITABLE },
479
+ { address: shuttleAta, role: kit_1.AccountRole.WRITABLE },
480
+ { address: shuttleWalletAta, role: kit_1.AccountRole.WRITABLE },
481
+ { address: owner, role: kit_1.AccountRole.READONLY_SIGNER },
482
+ { address: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID, role: kit_1.AccountRole.READONLY },
483
+ { address: delegateBuffer, role: kit_1.AccountRole.WRITABLE },
484
+ { address: delegationRecord, role: kit_1.AccountRole.WRITABLE },
485
+ { address: delegationMetadata, role: kit_1.AccountRole.WRITABLE },
486
+ { address: constants_1.DELEGATION_PROGRAM_ID, role: kit_1.AccountRole.READONLY },
487
+ {
488
+ address: ASSOCIATED_TOKEN_PROGRAM_ADDRESS,
489
+ role: kit_1.AccountRole.READONLY,
490
+ },
491
+ { address: system_1.SYSTEM_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
492
+ { address: ownerAta, role: kit_1.AccountRole.WRITABLE },
493
+ { address: mint, role: kit_1.AccountRole.READONLY },
494
+ { address: TOKEN_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
495
+ ],
496
+ data,
497
+ programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
498
+ };
499
+ }
295
500
  function mergeShuttleIntoAtaIx(owner, ownerAta, shuttleEphemeralAta, shuttleWalletAta, mint) {
296
501
  return {
297
502
  accounts: [
@@ -306,7 +511,14 @@ function mergeShuttleIntoAtaIx(owner, ownerAta, shuttleEphemeralAta, shuttleWall
306
511
  programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
307
512
  };
308
513
  }
309
- function undelegateAndCloseShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleWalletAta) {
514
+ function undelegateAndCloseShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, escrowIndex) {
515
+ if (escrowIndex !== undefined &&
516
+ (!Number.isInteger(escrowIndex) || escrowIndex < 0 || escrowIndex > 0xff)) {
517
+ throw new Error("escrowIndex must fit in u8");
518
+ }
519
+ const data = escrowIndex === undefined
520
+ ? new Uint8Array([14])
521
+ : new Uint8Array([14, escrowIndex]);
310
522
  return {
311
523
  accounts: [
312
524
  { address: payer, role: kit_1.AccountRole.WRITABLE_SIGNER },
@@ -317,7 +529,7 @@ function undelegateAndCloseShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shu
317
529
  { address: constants_1.MAGIC_CONTEXT_ID, role: kit_1.AccountRole.WRITABLE },
318
530
  { address: constants_1.MAGIC_PROGRAM_ID, role: kit_1.AccountRole.READONLY },
319
531
  ],
320
- data: new Uint8Array([14]),
532
+ data,
321
533
  programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
322
534
  };
323
535
  }
@@ -336,7 +548,7 @@ async function withdrawSplIx(owner, mint, amount) {
336
548
  { address: userDestAta, role: kit_1.AccountRole.WRITABLE },
337
549
  { address: TOKEN_PROGRAM_ADDRESS, role: kit_1.AccountRole.READONLY },
338
550
  ],
339
- data: new Uint8Array([3, ...u64le(amount), vaultBump]),
551
+ data: encodeAmountInstructionData(3, amount, vaultBump),
340
552
  programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
341
553
  };
342
554
  }
@@ -440,98 +652,245 @@ async function undelegateEataPermissionIx(owner, ephemeralAta) {
440
652
  programAddress: constants_1.EPHEMERAL_SPL_TOKEN_PROGRAM_ID,
441
653
  };
442
654
  }
443
- async function delegateSpl(owner, mint, amount, opts) {
655
+ function randomShuttleId() {
656
+ const cryptoObj = globalThis?.crypto;
657
+ if (cryptoObj?.getRandomValues !== undefined) {
658
+ const buf = new Uint32Array(1);
659
+ cryptoObj.getRandomValues(buf);
660
+ return buf[0];
661
+ }
662
+ return Math.floor(Math.random() * 4294967296);
663
+ }
664
+ async function buildDelegateSplInstructions(owner, mint, amount, opts) {
444
665
  const payer = opts?.payer ?? owner;
445
666
  const validator = opts?.validator;
446
667
  const initIfMissing = opts?.initIfMissing ?? true;
447
668
  const initVaultIfMissing = opts?.initVaultIfMissing ?? false;
669
+ const isPrivate = opts?.private ?? false;
448
670
  const instructions = [];
449
671
  const [ephemeralAta, eataBump] = await deriveEphemeralAta(owner, mint);
450
672
  const [vault, vaultBump] = await deriveVault(mint);
673
+ const [vaultEphemeralAta, vaultEataBump] = await deriveEphemeralAta(vault, mint);
451
674
  const vaultAta = await deriveVaultAta(mint, vault);
452
675
  const ownerAta = await getAssociatedTokenAddressSync(mint, owner);
453
676
  if (initIfMissing) {
454
677
  instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer, eataBump));
455
678
  }
456
679
  if (initVaultIfMissing) {
457
- instructions.push(initVaultIx(vault, mint, payer, vaultBump, vaultAta), initVaultAtaIx(payer, vaultAta, vault, mint));
680
+ instructions.push(initVaultIx(vault, mint, payer, vaultBump, vaultEphemeralAta, vaultAta), initVaultAtaIx(payer, vaultAta, vault, mint), await delegateIx(payer, vaultEphemeralAta, vaultEataBump, validator));
458
681
  }
459
682
  instructions.push(transferToVaultIx(ephemeralAta, vault, mint, ownerAta, vaultAta, owner, amount));
683
+ if (isPrivate) {
684
+ instructions.push(await createEataPermissionIx(ephemeralAta, payer, eataBump));
685
+ }
460
686
  instructions.push(await delegateIx(payer, ephemeralAta, eataBump, validator));
461
687
  return instructions;
462
688
  }
463
- async function delegateSplIdempotent(owner, mint, amount, opts) {
689
+ async function buildIdempotentDelegateSplInstructions(owner, mint, amount, opts) {
464
690
  const payer = opts?.payer ?? owner;
465
691
  const validator = opts?.validator;
692
+ const initIfMissing = opts?.initIfMissing ?? true;
466
693
  const initVaultIfMissing = opts?.initVaultIfMissing ?? false;
467
694
  const initAtasIfMissing = opts?.initAtasIfMissing ?? false;
468
- const randomShuttleId = () => {
469
- const cryptoObj = globalThis?.crypto;
470
- if (cryptoObj?.getRandomValues !== undefined) {
471
- const buf = new Uint32Array(1);
472
- cryptoObj.getRandomValues(buf);
473
- return buf[0];
474
- }
475
- return Math.floor(Math.random() * 4294967296);
476
- };
695
+ const isPrivate = opts?.private ?? false;
477
696
  const shuttleId = opts?.shuttleId ?? randomShuttleId();
478
697
  const instructions = [];
479
698
  const [ephemeralAta, eataBump] = await deriveEphemeralAta(owner, mint);
480
699
  const [vault, vaultBump] = await deriveVault(mint);
700
+ const [vaultEphemeralAta, vaultEataBump] = await deriveEphemeralAta(vault, mint);
481
701
  const vaultAta = await deriveVaultAta(mint, vault);
482
702
  const ownerAta = await getAssociatedTokenAddressSync(mint, owner);
483
703
  const [shuttleEphemeralAta, shuttleBump] = await deriveShuttleEphemeralAta(owner, mint, shuttleId);
484
704
  const [shuttleAta, shuttleAtaBump] = await deriveShuttleAta(shuttleEphemeralAta, mint);
485
705
  const shuttleWalletAta = await deriveShuttleWalletAta(mint, shuttleEphemeralAta);
486
706
  if (initVaultIfMissing) {
487
- instructions.push(initVaultIx(vault, mint, payer, vaultBump, vaultAta), initVaultAtaIx(payer, vaultAta, vault, mint));
707
+ instructions.push(initVaultIx(vault, mint, payer, vaultBump, vaultEphemeralAta, vaultAta), initVaultAtaIx(payer, vaultAta, vault, mint), await delegateIx(payer, vaultEphemeralAta, vaultEataBump, validator));
488
708
  }
489
709
  if (initAtasIfMissing) {
490
- instructions.push(initVaultAtaIx(payer, ownerAta, owner, mint), initVaultAtaIx(payer, shuttleWalletAta, shuttleEphemeralAta, mint));
710
+ instructions.push(initVaultAtaIx(payer, ownerAta, owner, mint));
711
+ }
712
+ if (initIfMissing) {
713
+ instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer, eataBump));
491
714
  }
492
- instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer, eataBump), await createEataPermissionIx(ephemeralAta, payer, eataBump), await delegateIx(payer, ephemeralAta, eataBump, validator), initShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, owner, mint, shuttleId, shuttleBump));
715
+ if (isPrivate) {
716
+ instructions.push(await createEataPermissionIx(ephemeralAta, payer, eataBump));
717
+ }
718
+ instructions.push(await delegateIx(payer, ephemeralAta, eataBump, validator));
493
719
  if (amount > 0n) {
494
- instructions.push(transferToVaultIx(shuttleAta, vault, mint, ownerAta, vaultAta, owner, amount));
720
+ instructions.push(await setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, ownerAta, shuttleWalletAta, mint, shuttleId, shuttleBump, amount, validator));
721
+ }
722
+ else {
723
+ instructions.push(initShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleWalletAta, owner, mint, shuttleId, shuttleBump), await delegateShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleAtaBump, validator));
495
724
  }
496
- instructions.push(await delegateShuttleEphemeralAtaIx(payer, shuttleEphemeralAta, shuttleAta, shuttleAtaBump, validator));
497
725
  return instructions;
498
726
  }
499
- async function delegatePrivateSpl(owner, mint, amount, opts) {
727
+ async function delegateSpl(owner, mint, amount, opts) {
728
+ if (opts?.idempotent === false) {
729
+ return buildDelegateSplInstructions(owner, mint, amount, opts);
730
+ }
731
+ return buildIdempotentDelegateSplInstructions(owner, mint, amount, opts);
732
+ }
733
+ async function delegateSplWithPrivateTransfer(owner, mint, amount, opts) {
500
734
  const payer = opts?.payer ?? owner;
501
- const validator = opts?.validator ?? DEFAULT_PRIVATE_VALIDATOR;
735
+ const validator = opts?.validator;
502
736
  const initIfMissing = opts?.initIfMissing ?? true;
503
737
  const initVaultIfMissing = opts?.initVaultIfMissing ?? false;
504
- const permissionFlags = opts?.permissionFlags ?? 0;
505
- const delegatePermission = opts?.delegatePermission ?? false;
738
+ const initAtasIfMissing = opts?.initAtasIfMissing ?? false;
739
+ const initTransferQueueIfMissing = opts?.initTransferQueueIfMissing ?? false;
740
+ const shuttleId = opts?.shuttleId ?? randomShuttleId();
741
+ const minDelayMs = opts?.minDelayMs ?? 0n;
742
+ const maxDelayMs = opts?.maxDelayMs ?? minDelayMs;
743
+ const split = opts?.split ?? 1;
506
744
  const instructions = [];
507
745
  const [ephemeralAta, eataBump] = await deriveEphemeralAta(owner, mint);
508
746
  const [vault, vaultBump] = await deriveVault(mint);
747
+ const [vaultEphemeralAta, vaultEataBump] = await deriveEphemeralAta(vault, mint);
509
748
  const vaultAta = await deriveVaultAta(mint, vault);
749
+ const [queue] = await (0, transferQueue_1.deriveTransferQueue)(mint);
510
750
  const ownerAta = await getAssociatedTokenAddressSync(mint, owner);
751
+ const [shuttleEphemeralAta, shuttleBump] = await deriveShuttleEphemeralAta(owner, mint, shuttleId);
752
+ const [shuttleAta] = await deriveShuttleAta(shuttleEphemeralAta, mint);
753
+ const shuttleWalletAta = await deriveShuttleWalletAta(mint, shuttleEphemeralAta);
754
+ if (initVaultIfMissing) {
755
+ instructions.push(initVaultIx(vault, mint, payer, vaultBump, vaultEphemeralAta, vaultAta), initVaultAtaIx(payer, vaultAta, vault, mint), await delegateIx(payer, vaultEphemeralAta, vaultEataBump, validator));
756
+ }
757
+ if (initTransferQueueIfMissing) {
758
+ instructions.push((0, transferQueue_1.initTransferQueueIx)(payer, queue, mint));
759
+ }
760
+ if (initAtasIfMissing) {
761
+ instructions.push(initVaultAtaIx(payer, ownerAta, owner, mint));
762
+ }
511
763
  if (initIfMissing) {
512
764
  instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer, eataBump));
513
765
  }
766
+ instructions.push(await delegateIx(payer, ephemeralAta, eataBump, validator), await depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, ownerAta, shuttleWalletAta, mint, shuttleId, shuttleBump, amount, minDelayMs, maxDelayMs, split, validator));
767
+ return instructions;
768
+ }
769
+ async function transferSpl(from, to, mint, amount, opts) {
770
+ const payer = opts.payer ?? from;
771
+ const validator = opts.validator;
772
+ const initIfMissing = opts.initIfMissing ?? false;
773
+ const initAtasIfMissing = opts.initAtasIfMissing ?? false;
774
+ const initVaultIfMissing = opts.initVaultIfMissing ?? false;
775
+ const shuttleId = opts.shuttleId ?? randomShuttleId();
776
+ const minDelayMs = opts.privateTransfer?.minDelayMs ?? 0n;
777
+ const maxDelayMs = opts.privateTransfer?.maxDelayMs ?? minDelayMs;
778
+ const split = opts.privateTransfer?.split ?? 1;
779
+ const fromAta = await getAssociatedTokenAddressSync(mint, from);
780
+ const toAta = await getAssociatedTokenAddressSync(mint, to);
781
+ if (opts.fromBalance === "ephemeral") {
782
+ switch (opts.visibility) {
783
+ case "private":
784
+ if (opts.toBalance === "base") {
785
+ const [queue] = await (0, transferQueue_1.deriveTransferQueue)(mint);
786
+ const [vault] = await deriveVault(mint);
787
+ const vaultAta = await deriveVaultAta(mint, vault);
788
+ return [
789
+ (0, transferQueue_1.depositAndQueueTransferIx)(queue, vault, mint, fromAta, vaultAta, toAta, from, amount, minDelayMs, maxDelayMs, split),
790
+ ];
791
+ }
792
+ if (opts.toBalance === "ephemeral") {
793
+ return [createTransferInstruction(fromAta, toAta, from, amount)];
794
+ }
795
+ break;
796
+ case "public":
797
+ if (opts.toBalance === "ephemeral") {
798
+ return [createTransferInstruction(fromAta, toAta, from, amount)];
799
+ }
800
+ break;
801
+ }
802
+ }
803
+ const instructions = [];
514
804
  if (initVaultIfMissing) {
515
- instructions.push(initVaultIx(vault, mint, payer, vaultBump, vaultAta), initVaultAtaIx(payer, vaultAta, vault, mint));
805
+ const [vault, vaultBump] = await deriveVault(mint);
806
+ const [vaultEphemeralAta, vaultEataBump] = await deriveEphemeralAta(vault, mint);
807
+ const vaultAta = await deriveVaultAta(mint, vault);
808
+ instructions.push(initVaultIx(vault, mint, payer, vaultBump, vaultEphemeralAta, vaultAta), initVaultAtaIx(payer, vaultAta, vault, mint), await delegateIx(payer, vaultEphemeralAta, vaultEataBump, validator));
516
809
  }
517
- instructions.push(transferToVaultIx(ephemeralAta, vault, mint, ownerAta, vaultAta, owner, amount));
518
- instructions.push(await delegateIx(payer, ephemeralAta, eataBump, validator));
519
- instructions.push(await createEataPermissionIx(ephemeralAta, payer, eataBump, permissionFlags));
520
- if (delegatePermission) {
521
- instructions.push(await delegateEataPermissionIx(payer, ephemeralAta, eataBump, validator));
810
+ if (opts.fromBalance === "base" && initAtasIfMissing) {
811
+ instructions.push(initVaultAtaIx(payer, fromAta, from, mint));
812
+ }
813
+ switch (opts.visibility) {
814
+ case "private":
815
+ if (opts.fromBalance === "base" && opts.toBalance === "base") {
816
+ if (initIfMissing) {
817
+ instructions.push(initVaultAtaIx(payer, toAta, to, mint));
818
+ }
819
+ const [shuttleEphemeralAta, shuttleBump] = await deriveShuttleEphemeralAta(from, mint, shuttleId);
820
+ const [shuttleAta] = await deriveShuttleAta(shuttleEphemeralAta, mint);
821
+ const shuttleWalletAta = await deriveShuttleWalletAta(mint, shuttleEphemeralAta);
822
+ return [
823
+ ...instructions,
824
+ await depositAndDelegateShuttleEphemeralAtaWithMergeAndPrivateTransferIx(payer, shuttleEphemeralAta, shuttleAta, from, fromAta, toAta, shuttleWalletAta, mint, shuttleId, shuttleBump, amount, minDelayMs, maxDelayMs, split, validator),
825
+ ];
826
+ }
827
+ if (opts.fromBalance === "base" && opts.toBalance === "ephemeral") {
828
+ if (initIfMissing) {
829
+ const [toEphemeralAta, toEataBump] = await deriveEphemeralAta(to, mint);
830
+ instructions.push(initVaultAtaIx(payer, toAta, to, mint), initEphemeralAtaIx(toEphemeralAta, to, mint, payer, toEataBump), await delegateIx(payer, toEphemeralAta, toEataBump, validator));
831
+ }
832
+ const [shuttleEphemeralAta, shuttleBump] = await deriveShuttleEphemeralAta(from, mint, shuttleId);
833
+ const [shuttleAta] = await deriveShuttleAta(shuttleEphemeralAta, mint);
834
+ const shuttleWalletAta = await deriveShuttleWalletAta(mint, shuttleEphemeralAta);
835
+ return [
836
+ ...instructions,
837
+ await setupAndDelegateShuttleEphemeralAtaWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, from, fromAta, toAta, shuttleWalletAta, mint, shuttleId, shuttleBump, amount, validator),
838
+ ];
839
+ }
840
+ break;
841
+ case "public":
842
+ if (opts.fromBalance === "base" && opts.toBalance === "base") {
843
+ return [
844
+ ...instructions,
845
+ createTransferInstruction(fromAta, toAta, from, amount),
846
+ ];
847
+ }
848
+ break;
849
+ }
850
+ throw new Error(`transferSpl route not implemented: visibility=${opts.visibility}, fromBalance=${opts.fromBalance}, toBalance=${opts.toBalance}`);
851
+ }
852
+ async function buildIdempotentWithdrawSplInstructions(owner, mint, amount, opts) {
853
+ const payer = opts?.payer ?? owner;
854
+ const validator = opts?.validator;
855
+ const initIfMissing = opts?.initIfMissing ?? true;
856
+ const initAtasIfMissing = opts?.initAtasIfMissing ?? false;
857
+ const shuttleId = opts?.shuttleId ?? randomShuttleId();
858
+ const instructions = [];
859
+ const [ephemeralAta, eataBump] = await deriveEphemeralAta(owner, mint);
860
+ const ownerAta = await getAssociatedTokenAddressSync(mint, owner);
861
+ const [shuttleEphemeralAta, shuttleBump] = await deriveShuttleEphemeralAta(owner, mint, shuttleId);
862
+ const [shuttleAta] = await deriveShuttleAta(shuttleEphemeralAta, mint);
863
+ const shuttleWalletAta = await deriveShuttleWalletAta(mint, shuttleEphemeralAta);
864
+ if (initAtasIfMissing) {
865
+ instructions.push(initVaultAtaIx(payer, ownerAta, owner, mint));
866
+ }
867
+ if (initIfMissing) {
868
+ instructions.push(initEphemeralAtaIx(ephemeralAta, owner, mint, payer, eataBump));
522
869
  }
870
+ instructions.push(await delegateIx(payer, ephemeralAta, eataBump, validator), await withdrawThroughDelegatedShuttleWithMergeIx(payer, shuttleEphemeralAta, shuttleAta, owner, ownerAta, shuttleWalletAta, mint, shuttleId, shuttleBump, amount, validator));
523
871
  return instructions;
524
872
  }
525
- function u64le(n) {
526
- if (n < 0n || n > 0xffffffffffffffffn) {
527
- throw new Error("amount out of range for u64");
873
+ async function withdrawSpl(owner, mint, amount, opts) {
874
+ if (opts?.idempotent === false) {
875
+ const instructions = [];
876
+ if (opts?.initAtasIfMissing === true) {
877
+ const payer = opts.payer ?? owner;
878
+ const ownerAta = await getAssociatedTokenAddressSync(mint, owner);
879
+ instructions.push(initVaultAtaIx(payer, ownerAta, owner, mint));
880
+ }
881
+ instructions.push(await withdrawSplIx(owner, mint, amount));
882
+ return instructions;
528
883
  }
529
- const bytes = new Array(8).fill(0);
530
- let x = n;
531
- for (let i = 0; i < 8; i++) {
532
- bytes[i] = Number(x & 0xffn);
533
- x >>= 8n;
884
+ return buildIdempotentWithdrawSplInstructions(owner, mint, amount, opts);
885
+ }
886
+ function encodeAmountInstructionData(discriminator, amount, ...suffix) {
887
+ const amountBytes = U64_ENCODER.encode(amount);
888
+ const data = new Uint8Array(1 + amountBytes.length + suffix.length);
889
+ data[0] = discriminator;
890
+ data.set(amountBytes, 1);
891
+ if (suffix.length > 0) {
892
+ data.set(suffix, 1 + amountBytes.length);
534
893
  }
535
- return bytes;
894
+ return data;
536
895
  }
537
896
  //# sourceMappingURL=ephemeralAta.js.map