@chainlink/ccip-cli 0.91.0 → 0.92.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.
Files changed (65) hide show
  1. package/README.md +60 -55
  2. package/dist/commands/manual-exec.d.ts +7 -1
  3. package/dist/commands/manual-exec.d.ts.map +1 -1
  4. package/dist/commands/manual-exec.js +16 -7
  5. package/dist/commands/manual-exec.js.map +1 -1
  6. package/dist/commands/parse.d.ts.map +1 -1
  7. package/dist/commands/parse.js +6 -5
  8. package/dist/commands/parse.js.map +1 -1
  9. package/dist/commands/send.d.ts +6 -1
  10. package/dist/commands/send.d.ts.map +1 -1
  11. package/dist/commands/send.js +27 -22
  12. package/dist/commands/send.js.map +1 -1
  13. package/dist/commands/show.d.ts +10 -1
  14. package/dist/commands/show.d.ts.map +1 -1
  15. package/dist/commands/show.js +85 -27
  16. package/dist/commands/show.js.map +1 -1
  17. package/dist/commands/supported-tokens.d.ts.map +1 -1
  18. package/dist/commands/supported-tokens.js +6 -6
  19. package/dist/commands/supported-tokens.js.map +1 -1
  20. package/dist/commands/types.d.ts +3 -2
  21. package/dist/commands/types.d.ts.map +1 -1
  22. package/dist/commands/utils.d.ts +27 -7
  23. package/dist/commands/utils.d.ts.map +1 -1
  24. package/dist/commands/utils.js +97 -35
  25. package/dist/commands/utils.js.map +1 -1
  26. package/dist/index.d.ts +4 -4
  27. package/dist/index.d.ts.map +1 -1
  28. package/dist/index.js +10 -3
  29. package/dist/index.js.map +1 -1
  30. package/dist/providers/aptos.d.ts.map +1 -1
  31. package/dist/providers/aptos.js +3 -5
  32. package/dist/providers/aptos.js.map +1 -1
  33. package/dist/providers/evm.d.ts.map +1 -1
  34. package/dist/providers/evm.js +2 -4
  35. package/dist/providers/evm.js.map +1 -1
  36. package/dist/providers/index.d.ts +6 -5
  37. package/dist/providers/index.d.ts.map +1 -1
  38. package/dist/providers/index.js +104 -71
  39. package/dist/providers/index.js.map +1 -1
  40. package/dist/providers/solana.d.ts.map +1 -1
  41. package/dist/providers/solana.js +5 -4
  42. package/dist/providers/solana.js.map +1 -1
  43. package/dist/providers/sui.d.ts +10 -0
  44. package/dist/providers/sui.d.ts.map +1 -0
  45. package/dist/providers/sui.js +15 -0
  46. package/dist/providers/sui.js.map +1 -0
  47. package/dist/providers/ton.d.ts +10 -0
  48. package/dist/providers/ton.d.ts.map +1 -0
  49. package/dist/providers/ton.js +55 -0
  50. package/dist/providers/ton.js.map +1 -0
  51. package/package.json +13 -13
  52. package/src/commands/manual-exec.ts +18 -6
  53. package/src/commands/parse.ts +9 -5
  54. package/src/commands/send.ts +36 -28
  55. package/src/commands/show.ts +94 -31
  56. package/src/commands/supported-tokens.ts +6 -9
  57. package/src/commands/types.ts +3 -2
  58. package/src/commands/utils.ts +118 -43
  59. package/src/index.ts +13 -5
  60. package/src/providers/aptos.ts +3 -5
  61. package/src/providers/evm.ts +2 -4
  62. package/src/providers/index.ts +120 -94
  63. package/src/providers/solana.ts +5 -6
  64. package/src/providers/sui.ts +15 -0
  65. package/src/providers/ton.ts +68 -0
@@ -1,29 +1,22 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
1
2
  import { readFile } from 'node:fs/promises';
2
- import { ChainFamily, networkInfo, supportedChains, } from '@chainlink/ccip-sdk';
3
+ import { CCIPChainFamilyUnsupportedError, CCIPNetworkFamilyUnsupportedError, CCIPRpcNotFoundError, CCIPTransactionNotFoundError, ChainFamily, networkInfo, supportedChains, } from '@chainlink/ccip-sdk';
3
4
  import { loadAptosWallet } from "./aptos.js";
4
5
  import { loadEvmWallet } from "./evm.js";
5
6
  import { loadSolanaWallet } from "./solana.js";
7
+ import { loadSuiWallet } from "./sui.js";
8
+ import { loadTonWallet } from "./ton.js";
6
9
  const RPCS_RE = /\b(?:http|ws)s?:\/\/[\w/\\@&?%~#.,;:=+-]+/;
7
- const signalToPromiseMap = new WeakMap();
8
- function signalToPromise(signal) {
9
- let promise = signalToPromiseMap.get(signal);
10
- if (!promise) {
11
- signalToPromiseMap.set(signal, (promise = new Promise((_, reject) => {
12
- signal.throwIfAborted();
13
- signal.addEventListener('abort', () => reject(signal.reason instanceof Error
14
- ? signal.reason
15
- : new Error(`Aborted: ${signal.reason}`)), { once: true });
16
- })));
17
- }
18
- return promise;
19
- }
20
- async function collectEndpoints({ rpcs, 'rpcs-file': rpcsFile, }) {
21
- const endpoints = new Set(rpcs || []);
10
+ async function collectEndpoints({ rpcs, rpcsFile }) {
11
+ const endpoints = new Set(rpcs
12
+ ?.map((s) => s.split(','))
13
+ .flat()
14
+ .map((s) => s.trim()) || []);
22
15
  for (const [env, val] of Object.entries(process.env)) {
23
16
  if (env.startsWith('RPC_') && val && RPCS_RE.test(val))
24
17
  endpoints.add(val);
25
18
  }
26
- if (rpcsFile) {
19
+ if (rpcsFile && existsSync(rpcsFile)) {
27
20
  try {
28
21
  const fileContent = await readFile(rpcsFile, 'utf8');
29
22
  for (const line of fileContent.toString().split(/(?:\r\n|\r|\n)/g)) {
@@ -33,108 +26,148 @@ async function collectEndpoints({ rpcs, 'rpcs-file': rpcsFile, }) {
33
26
  }
34
27
  }
35
28
  catch (error) {
36
- console.debug('Error reading RPCs file', error);
29
+ this.logger.debug('Error reading RPCs file', error);
37
30
  }
38
31
  }
39
32
  return endpoints;
40
33
  }
41
34
  /**
42
- * Receives a list of rpcs and/or rpcs file, and loads them all concurrently
43
- * Returns a ChainGetter function and optinoally a ChainTransaction promise
35
+ * Receives a list of rpcs and/or rpcs file, and loads them concurrently for each chain family
36
+ * If txHash is provided, fetches matching families first and returns [chainGetter, txPromise];
37
+ * Otherwise, spawns racing URLs for each family asked by `getChain` getter
44
38
  * @param ctx - Context object containing destroy$ promise and logger properties
45
39
  * @param argv - Options containing rpcs (list) and/or rpcs file
46
40
  * @param txHash - Optional txHash to fetch concurrently; causes the function to return a [ChainGetter, Promise<ChainTransaction>]
47
- * @returns a ChainGetter (alone if no txHash was provided), or a tuple of [ChainGetter, Promise<ChainTransaction>]
41
+ * @returns a ChainGetter (if txHash was provided), or a tuple of [ChainGetter, Promise<ChainTransaction>]
48
42
  */
49
43
  export function fetchChainsFromRpcs(ctx, argv, txHash) {
50
- const { destroy$ } = ctx;
51
44
  const chains = {};
52
45
  const chainsCbs = {};
53
- let finished = false;
54
- const txs = [];
55
- const init$ = collectEndpoints(argv).then((endpoints) => {
56
- const pendingPromises = [];
46
+ const finished = {};
47
+ const initFamily$ = {};
48
+ let endpoints$;
49
+ let txResolve, txReject;
50
+ const txResult = new Promise((resolve, reject) => {
51
+ txResolve = resolve;
52
+ txReject = reject;
53
+ });
54
+ const loadChainFamily = (F, txHash) => (initFamily$[F] ??= (endpoints$ ??= collectEndpoints.call(ctx, argv)).then((endpoints) => {
55
+ const C = supportedChains[F];
56
+ if (!C)
57
+ throw new CCIPNetworkFamilyUnsupportedError(F);
58
+ ctx.logger.debug('Racing', endpoints.size, 'RPC endpoints for', F);
59
+ const chains$ = [];
60
+ const txs$ = [];
57
61
  let txFound = false;
58
- for (const C of Object.values(supportedChains)) {
59
- for (const url of endpoints) {
60
- const chain$ = C.fromUrl(url, ctx);
61
- if (txHash) {
62
- const tx$ = chain$.then((chain) => chain.getTransaction(txHash).then((tx) => [chain, tx]));
63
- void tx$.then(([chain]) => {
64
- if (txFound)
65
- return;
62
+ for (const url of endpoints) {
63
+ const chain$ = C.fromUrl(url, ctx);
64
+ chains$.push(chain$);
65
+ void chain$.then((chain) => {
66
+ endpoints.delete(url); // when resolved, remove from set so it isn't tried for future families
67
+ // on chain detected for url
68
+ if (chain.network.name in chains && !(chain.network.name in chainsCbs))
69
+ return chain.destroy?.(); // but lost race, cleanup right away
70
+ // keep and schedule cleanup on shutdown
71
+ if (chain.destroy)
72
+ void ctx.destroy$.finally(chain.destroy.bind(chain));
73
+ if (!(chain.network.name in chains)) {
74
+ // chain won for this network, but was not "asked" by getChain (yet?): save
75
+ chains[chain.network.name] = Promise.resolve(chain);
76
+ }
77
+ else if (chain.network.name in chainsCbs) {
78
+ // chain detected, and there's a "pending request" by getChain: resolve
79
+ const [resolve] = chainsCbs[chain.network.name];
80
+ resolve(chain);
81
+ }
82
+ return chain;
83
+ }, () => { });
84
+ if (txHash) {
85
+ txs$.push(chain$.then(async (chain) => {
86
+ const tx = await chain.getTransaction(txHash);
87
+ if (!txFound) {
66
88
  txFound = true;
67
- // in case tx is found, prefer it over any previously found chain
89
+ // in case tx is first found, prefer it over any previously found chain for this network
68
90
  chains[chain.network.name] = chain$;
69
91
  delete chainsCbs[chain.network.name];
70
- }, () => { });
71
- txs.push(tx$);
72
- }
73
- pendingPromises.push(chain$.then((chain) => {
74
- if (chain.network.name in chains && !(chain.network.name in chainsCbs))
75
- return chain.destroy?.(); // lost race
76
- destroy$.addEventListener('abort', () => {
77
- void chain.destroy?.(); // cleanup
78
- });
79
- if (!(chain.network.name in chains)) {
80
- chains[chain.network.name] = Promise.resolve(chain);
81
- }
82
- else if (chain.network.name in chainsCbs) {
83
- const [resolve] = chainsCbs[chain.network.name];
84
- resolve(chain);
85
92
  }
93
+ txResolve([chain, tx]);
86
94
  }));
87
95
  }
88
96
  }
89
- const res = Promise.allSettled(pendingPromises);
90
- void (destroy$ ? Promise.race([res, signalToPromise(destroy$)]) : res).finally(() => {
91
- finished = true;
92
- Object.entries(chainsCbs).forEach(([name, [_, reject]]) => reject(new Error(`No provider/chain found for network=${name}`)));
97
+ void Promise.race([Promise.allSettled(chains$), ctx.destroy$]).finally(() => {
98
+ if (finished[F])
99
+ return;
100
+ finished[F] = true;
101
+ Object.entries(chainsCbs)
102
+ .filter(([name]) => networkInfo(name).family === F)
103
+ .forEach(([name, [_, reject]]) => reject(new CCIPRpcNotFoundError(name)));
93
104
  });
94
- return Promise.any(txs);
95
- });
105
+ return Promise.any(txHash ? txs$ : chains$);
106
+ }));
96
107
  const chainGetter = async (idOrSelectorOrName) => {
97
108
  const network = networkInfo(idOrSelectorOrName);
98
109
  if (network.name in chains)
99
110
  return chains[network.name];
100
- if (finished)
101
- throw new Error(`No provider/chain found for network=${network.name}`);
111
+ if (finished[network.family])
112
+ throw new CCIPRpcNotFoundError(network.name);
102
113
  chains[network.name] = new Promise((resolve, reject) => {
103
114
  chainsCbs[network.name] = [resolve, reject];
104
115
  });
105
116
  void chains[network.name].finally(() => {
106
- delete chainsCbs[network.name];
117
+ delete chainsCbs[network.name]; // when chain is settled, delete the callbacks
107
118
  });
119
+ void loadChainFamily(network.family);
108
120
  return chains[network.name];
109
121
  };
110
- if (txHash) {
111
- return [chainGetter, init$];
112
- }
113
- else {
114
- void init$.catch(() => { });
122
+ if (!txHash)
115
123
  return chainGetter;
116
- }
124
+ void Promise.allSettled(Object.values(supportedChains)
125
+ .filter((C) => C.isTxHash(txHash))
126
+ .map((C) => loadChainFamily(C.family, txHash))).finally(() => txReject(new CCIPTransactionNotFoundError(txHash))); // noop if txResolved
127
+ return [chainGetter, txResult];
117
128
  }
118
129
  /**
119
130
  * Load chain-specific wallet for given chain
120
131
  * @param chain - Chain instance to load wallet for
121
- * @param opts - Wallet options (as passed from yargs argv)
132
+ * @param argv - Wallet options (as passed from yargs argv)
122
133
  * @returns Promise to chain-specific wallet instance
123
134
  */
124
- export async function loadChainWallet(chain, opts) {
135
+ export async function loadChainWallet(chain, argv) {
136
+ // Centralized wallet resolution: check env vars first, then rpcsFile
137
+ if (!argv.wallet) {
138
+ argv.wallet = process.env['PRIVATE_KEY'] || process.env['USER_KEY'] || process.env['OWNER_KEY'];
139
+ }
140
+ if (!argv.wallet && argv.rpcsFile && existsSync(argv.rpcsFile)) {
141
+ try {
142
+ const file = readFileSync(argv.rpcsFile, 'utf8');
143
+ const match = file.match(/^\s*(PRIVATE_KEY|USER_KEY|OWNER_KEY)=(\S+)/m);
144
+ if (match)
145
+ argv.wallet = match[2];
146
+ }
147
+ catch (_) {
148
+ // pass
149
+ }
150
+ }
125
151
  let wallet;
126
152
  switch (chain.network.family) {
127
153
  case ChainFamily.EVM:
128
- wallet = await loadEvmWallet(chain.provider, opts);
154
+ wallet = await loadEvmWallet(chain.provider, argv);
129
155
  return [await wallet.getAddress(), wallet];
130
156
  case ChainFamily.Solana:
131
- wallet = await loadSolanaWallet(opts);
157
+ wallet = await loadSolanaWallet(argv);
132
158
  return [wallet.publicKey.toBase58(), wallet];
133
159
  case ChainFamily.Aptos:
134
- wallet = await loadAptosWallet(opts);
160
+ wallet = await loadAptosWallet(argv);
135
161
  return [wallet.accountAddress.toString(), wallet];
162
+ case ChainFamily.Sui:
163
+ wallet = loadSuiWallet(argv);
164
+ return [wallet.toSuiAddress(), wallet];
165
+ case ChainFamily.TON:
166
+ wallet = await loadTonWallet(argv);
167
+ return [wallet.contract.address.toString(), wallet];
136
168
  default:
137
- throw new Error(`Unsupported chain family: ${chain.network.family}`);
169
+ // TypeScript exhaustiveness check - this should never be reached
170
+ throw new CCIPChainFamilyUnsupportedError(chain.network.family);
138
171
  }
139
172
  }
140
173
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAClD,OAAO,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAA;AAE3C,OAAO,EAKL,+BAA+B,EAC/B,iCAAiC,EACjC,oBAAoB,EACpB,4BAA4B,EAC5B,WAAW,EACX,WAAW,EACX,eAAe,GAChB,MAAM,kCAAkC,CAAA;AAEzC,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AAGxC,MAAM,OAAO,GAAG,2CAA2C,CAAA;AAE3D,KAAK,UAAU,gBAAgB,CAE7B,EAAE,IAAI,EAAE,QAAQ,EAA0C;IAE1D,MAAM,SAAS,GAAG,IAAI,GAAG,CACvB,IAAI;QACF,EAAE,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;SACzB,IAAI,EAAE;SACN,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,IAAI,EAAE,CAC9B,CAAA;IACD,KAAK,MAAM,CAAC,GAAG,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC;QACrD,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5E,CAAC;IACD,IAAI,QAAQ,IAAI,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,MAAM,WAAW,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YACpD,KAAK,MAAM,IAAI,IAAI,WAAW,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;gBACnE,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAA;gBACjC,IAAI,KAAK;oBAAE,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;YACpC,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,yBAAyB,EAAE,KAAK,CAAC,CAAA;QACrD,CAAC;IACH,CAAC;IACD,OAAO,SAAS,CAAA;AAClB,CAAC;AAYD;;;;;;;;GAQG;AACH,MAAM,UAAU,mBAAmB,CACjC,GAAQ,EACR,IAA4C,EAC5C,MAAe;IAEf,MAAM,MAAM,GAAmC,EAAE,CAAA;IACjD,MAAM,SAAS,GAGX,EAAE,CAAA;IACN,MAAM,QAAQ,GAA0C,EAAE,CAAA;IAC1D,MAAM,WAAW,GAAmD,EAAE,CAAA;IACtE,IAAI,UAAgC,CAAA;IAEpC,IAAI,SAAqD,EAAE,QAAoC,CAAA;IAC/F,MAAM,QAAQ,GAAG,IAAI,OAAO,CAA4B,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;QAC1E,SAAS,GAAG,OAAO,CAAA;QACnB,QAAQ,GAAG,MAAM,CAAA;IACnB,CAAC,CAAC,CAAA;IAEF,MAAM,eAAe,GAAG,CAAC,CAAc,EAAE,MAAe,EAAE,EAAE,CAC1D,CAAC,WAAW,CAAC,CAAC,CAAC,KAAK,CAAC,UAAU,KAAK,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,SAAS,EAAE,EAAE;QACvF,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;QAC5B,IAAI,CAAC,CAAC;YAAE,MAAM,IAAI,iCAAiC,CAAC,CAAC,CAAC,CAAA;QACtD,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC,IAAI,EAAE,mBAAmB,EAAE,CAAC,CAAC,CAAA;QAElE,MAAM,OAAO,GAAqB,EAAE,CAAA;QACpC,MAAM,IAAI,GAAuB,EAAE,CAAA;QACnC,IAAI,OAAO,GAAG,KAAK,CAAA;QACnB,KAAK,MAAM,GAAG,IAAI,SAAS,EAAE,CAAC;YAC5B,MAAM,MAAM,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE,GAAG,CAAC,CAAA;YAClC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YAEpB,KAAK,MAAM,CAAC,IAAI,CACd,CAAC,KAAK,EAAE,EAAE;gBACR,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA,CAAC,uEAAuE;gBAC7F,4BAA4B;gBAC5B,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,CAAC;oBACpE,OAAO,KAAK,CAAC,OAAO,EAAE,EAAE,CAAA,CAAC,oCAAoC;gBAC/D,wCAAwC;gBACxC,IAAI,KAAK,CAAC,OAAO;oBAAE,KAAK,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAA;gBACvE,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,MAAM,CAAC,EAAE,CAAC;oBACpC,2EAA2E;oBAC3E,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;gBACrD,CAAC;qBAAM,IAAI,KAAK,CAAC,OAAO,CAAC,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC3C,uEAAuE;oBACvE,MAAM,CAAC,OAAO,CAAC,GAAG,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oBAC/C,OAAO,CAAC,KAAK,CAAC,CAAA;gBAChB,CAAC;gBACD,OAAO,KAAK,CAAA;YACd,CAAC,EACD,GAAG,EAAE,GAAE,CAAC,CACT,CAAA;YAED,IAAI,MAAM,EAAE,CAAC;gBACX,IAAI,CAAC,IAAI,CACP,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;oBAC1B,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,CAAA;oBAC7C,IAAI,CAAC,OAAO,EAAE,CAAC;wBACb,OAAO,GAAG,IAAI,CAAA;wBACd,wFAAwF;wBACxF,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,MAAM,CAAA;wBACnC,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;oBACtC,CAAC;oBACD,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAA;gBACxB,CAAC,CAAC,CACH,CAAA;YACH,CAAC;QACH,CAAC;QAED,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YAC1E,IAAI,QAAQ,CAAC,CAAC,CAAC;gBAAE,OAAM;YACvB,QAAQ,CAAC,CAAC,CAAC,GAAG,IAAI,CAAA;YAClB,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC;iBACtB,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;iBAClD,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,oBAAoB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QAC7E,CAAC,CAAC,CAAA;QACF,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAA;IAC7C,CAAC,CAAC,CAAC,CAAA;IAEL,MAAM,WAAW,GAAG,KAAK,EAAE,kBAA4C,EAAkB,EAAE;QACzF,MAAM,OAAO,GAAG,WAAW,CAAC,kBAAkB,CAAC,CAAA;QAC/C,IAAI,OAAO,CAAC,IAAI,IAAI,MAAM;YAAE,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QACvD,IAAI,QAAQ,CAAC,OAAO,CAAC,MAAM,CAAC;YAAE,MAAM,IAAI,oBAAoB,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;QAC1E,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACrD,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAA;QAC7C,CAAC,CAAC,CAAA;QACF,KAAK,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACrC,OAAO,SAAS,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA,CAAC,8CAA8C;QAC/E,CAAC,CAAC,CAAA;QACF,KAAK,eAAe,CAAC,OAAO,CAAC,MAAM,CAAC,CAAA;QACpC,OAAO,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IAC7B,CAAC,CAAA;IAED,IAAI,CAAC,MAAM;QAAE,OAAO,WAAW,CAAA;IAE/B,KAAK,OAAO,CAAC,UAAU,CACrB,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC;SAC3B,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;SACjC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,eAAe,CAAC,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CACjD,CAAC,OAAO,CAAC,GAAG,EAAE,CAAC,QAAQ,CAAC,IAAI,4BAA4B,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA,CAAC,qBAAqB;IACzF,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAA;AAChC,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAY,EAAE,IAA6C;IAC/F,qEAAqE;IACrE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;QACjB,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,CAAC,CAAA;IACjG,CAAC;IACD,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,QAAQ,IAAI,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/D,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAA;YAChD,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,6CAA6C,CAAC,CAAA;YACvE,IAAI,KAAK;gBAAE,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,CAAC,CAAC,CAAA;QACnC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC;IAED,IAAI,MAAM,CAAA;IACV,QAAQ,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;QAC7B,KAAK,WAAW,CAAC,GAAG;YAClB,MAAM,GAAG,MAAM,aAAa,CAAE,KAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAA;YAChE,OAAO,CAAC,MAAM,MAAM,CAAC,UAAU,EAAE,EAAE,MAAM,CAAU,CAAA;QACrD,KAAK,WAAW,CAAC,MAAM;YACrB,MAAM,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,CAAA;YACrC,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAU,CAAA;QACvD,KAAK,WAAW,CAAC,KAAK;YACpB,MAAM,GAAG,MAAM,eAAe,CAAC,IAAI,CAAC,CAAA;YACpC,OAAO,CAAC,MAAM,CAAC,cAAc,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAU,CAAA;QAC5D,KAAK,WAAW,CAAC,GAAG;YAClB,MAAM,GAAG,aAAa,CAAC,IAAI,CAAC,CAAA;YAC5B,OAAO,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,MAAM,CAAU,CAAA;QACjD,KAAK,WAAW,CAAC,GAAG;YAClB,MAAM,GAAG,MAAM,aAAa,CAAC,IAAI,CAAC,CAAA;YAClC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE,MAAM,CAAU,CAAA;QAC9D;YACE,iEAAiE;YACjE,MAAM,IAAI,+BAA+B,CAAE,KAAK,CAAC,OAA8B,CAAC,MAAM,CAAC,CAAA;IAC3F,CAAC;AACH,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/providers/solana.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,YAAY,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAGL,KAAK,oBAAoB,EACzB,OAAO,EACP,SAAS,EACT,WAAW,EACZ,MAAM,iBAAiB,CAAA;AAIxB,gDAAgD;AAChD,qBAAa,kBAAkB;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,YAAY,CAAC,OAAO,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,OAAO;IAMP;;;;OAIG;WACU,MAAM,CAAC,IAAI,EAAE,MAAM;IAchC;;;;OAIG;IACG,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAAE,EAAE,CAAC;IAezE;;;;OAIG;IACG,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE;IAShF,gDAAgD;IAChD,IAAI,KAAK,IAAI,OAAO,CAEnB;CACF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EAAE,SAAS,GAClB,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAkBnD"}
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../src/providers/solana.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,YAAY,MAAM,yBAAyB,CAAA;AAElD,OAAO,EAGL,KAAK,oBAAoB,EACzB,OAAO,EACP,SAAS,EACT,WAAW,EACZ,MAAM,iBAAiB,CAAA;AAIxB,gDAAgD;AAChD,qBAAa,kBAAkB;IAC7B,SAAS,EAAE,SAAS,CAAA;IACpB,MAAM,EAAE,YAAY,CAAC,OAAO,CAAA;IAC5B,IAAI,EAAE,MAAM,CAAA;IAEZ;;;OAGG;IACH,OAAO;IAMP;;;;OAIG;WACU,MAAM,CAAC,IAAI,EAAE,MAAM;IAchC;;;;OAIG;IACG,eAAe,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,EAAE,EAAE,CAAC;IAezE;;;;OAIG;IACG,mBAAmB,CAAC,CAAC,SAAS,WAAW,GAAG,oBAAoB,EAAE,GAAG,EAAE,CAAC,EAAE;IAShF,gDAAgD;IAChD,IAAI,KAAK,IAAI,OAAO,CAEnB;CACF;AAED;;;;GAIG;AACH,wBAAsB,gBAAgB,CAAC,EACrC,MAAM,EAAE,SAAS,GAClB,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,YAAY,CAAC,CAiBnD"}
@@ -1,5 +1,5 @@
1
1
  import { existsSync, readFileSync } from 'node:fs';
2
- import util from 'node:util';
2
+ import { CCIPArgumentInvalidError, CCIPNotImplementedError } from '@chainlink/ccip-sdk';
3
3
  import { Wallet as AnchorWallet } from '@coral-xyz/anchor';
4
4
  import SolanaLedger from '@ledgerhq/hw-app-solana';
5
5
  import HIDTransport from '@ledgerhq/hw-transport-node-hid';
@@ -73,7 +73,7 @@ export class LedgerSolanaWallet {
73
73
  }
74
74
  /** Payer property - not available on Ledger. */
75
75
  get payer() {
76
- throw new Error('Payer method not available on Ledger');
76
+ throw new CCIPNotImplementedError('payer for Ledger');
77
77
  }
78
78
  }
79
79
  /**
@@ -82,11 +82,12 @@ export class LedgerSolanaWallet {
82
82
  * @returns Promise to Anchor Wallet instance
83
83
  */
84
84
  export async function loadSolanaWallet({ wallet: walletOpt, } = {}) {
85
+ // Default to Solana's standard keypair location if no wallet provided
85
86
  if (!walletOpt)
86
- walletOpt = process.env['USER_KEY'] || process.env['OWNER_KEY'] || '~/.config/solana/id.json';
87
+ walletOpt = '~/.config/solana/id.json';
87
88
  let wallet;
88
89
  if (typeof walletOpt !== 'string')
89
- throw new Error(`Invalid wallet option: ${util.inspect(walletOpt)}`);
90
+ throw new CCIPArgumentInvalidError('wallet', String(walletOpt));
90
91
  wallet = walletOpt;
91
92
  if (walletOpt === 'ledger' || walletOpt.startsWith('ledger:')) {
92
93
  let derivationPath = walletOpt.split(':')[1];
@@ -1 +1 @@
1
- {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/providers/solana.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"solana.js","sourceRoot":"","sources":["../../src/providers/solana.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
2
+ /**
3
+ * Loads a Sui wallet from the provided options.
4
+ * @param wallet - wallet options (as passed from yargs argv)
5
+ * @returns Sui Keypair instance
6
+ */
7
+ export declare function loadSuiWallet({ wallet: walletOpt }: {
8
+ wallet?: unknown;
9
+ }): Ed25519Keypair;
10
+ //# sourceMappingURL=sui.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sui.d.ts","sourceRoot":"","sources":["../../src/providers/sui.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAE,kBAKxE"}
@@ -0,0 +1,15 @@
1
+ import { CCIPArgumentInvalidError } from '@chainlink/ccip-sdk';
2
+ import { bytesToBuffer } from '@chainlink/ccip-sdk';
3
+ import { Ed25519Keypair } from '@mysten/sui/keypairs/ed25519';
4
+ /**
5
+ * Loads a Sui wallet from the provided options.
6
+ * @param wallet - wallet options (as passed from yargs argv)
7
+ * @returns Sui Keypair instance
8
+ */
9
+ export function loadSuiWallet({ wallet: walletOpt }) {
10
+ if (typeof walletOpt !== 'string')
11
+ throw new CCIPArgumentInvalidError('wallet', String(walletOpt));
12
+ const keyBytes = bytesToBuffer(walletOpt);
13
+ return Ed25519Keypair.fromSecretKey(keyBytes);
14
+ }
15
+ //# sourceMappingURL=sui.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sui.js","sourceRoot":"","sources":["../../src/providers/sui.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAA;AAC3E,OAAO,EAAE,aAAa,EAAE,MAAM,kCAAkC,CAAA;AAChE,OAAO,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAA;AAE7D;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,EAAE,MAAM,EAAE,SAAS,EAAwB;IACvE,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC,CAAA;IAElG,MAAM,QAAQ,GAAG,aAAa,CAAC,SAAS,CAAC,CAAA;IACzC,OAAO,cAAc,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAA;AAC/C,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { TONWallet } from '@chainlink/ccip-sdk/src/ton/types.ts';
2
+ /**
3
+ * Loads a TON wallet from the provided options.
4
+ * @param wallet - wallet options (as passed from yargs argv)
5
+ * @returns Promise to TONWallet instance
6
+ */
7
+ export declare function loadTonWallet({ wallet: walletOpt, }?: {
8
+ wallet?: unknown;
9
+ }): Promise<TONWallet>;
10
+ //# sourceMappingURL=ton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton.d.ts","sourceRoot":"","sources":["../../src/providers/ton.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sCAAsC,CAAA;AAIrE;;;;GAIG;AACH,wBAAsB,aAAa,CAAC,EAClC,MAAM,EAAE,SAAS,GAClB,GAAE;IAAE,MAAM,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAkDhD"}
@@ -0,0 +1,55 @@
1
+ import { existsSync, readFileSync } from 'node:fs';
2
+ import { CCIPArgumentInvalidError, CCIPWalletInvalidError, } from '@chainlink/ccip-sdk';
3
+ import { keyPairFromSecretKey, mnemonicToPrivateKey } from '@ton/crypto';
4
+ import { WalletContractV4 } from '@ton/ton';
5
+ /**
6
+ * Loads a TON wallet from the provided options.
7
+ * @param wallet - wallet options (as passed from yargs argv)
8
+ * @returns Promise to TONWallet instance
9
+ */
10
+ export async function loadTonWallet({ wallet: walletOpt, } = {}) {
11
+ if (typeof walletOpt !== 'string')
12
+ throw new CCIPWalletInvalidError(walletOpt);
13
+ // Handle mnemonic phrase
14
+ if (walletOpt.includes(' ')) {
15
+ const mnemonic = walletOpt.trim().split(' ');
16
+ const keyPair = await mnemonicToPrivateKey(mnemonic);
17
+ const contract = WalletContractV4.create({
18
+ workchain: 0,
19
+ publicKey: keyPair.publicKey,
20
+ });
21
+ return { contract, keyPair };
22
+ }
23
+ // Handle hex private key
24
+ if (walletOpt.startsWith('0x')) {
25
+ const secretKey = Buffer.from(walletOpt.slice(2), 'hex');
26
+ if (secretKey.length === 32) {
27
+ throw new CCIPArgumentInvalidError('wallet', '32-byte seeds not supported. Use 64-byte secret key or mnemonic.');
28
+ }
29
+ if (secretKey.length !== 64) {
30
+ throw new CCIPArgumentInvalidError('wallet', 'must be 64 bytes (or use mnemonic)');
31
+ }
32
+ const keyPair = keyPairFromSecretKey(secretKey);
33
+ const contract = WalletContractV4.create({
34
+ workchain: 0,
35
+ publicKey: keyPair.publicKey,
36
+ });
37
+ return { contract, keyPair };
38
+ }
39
+ // Handle file path
40
+ if (existsSync(walletOpt)) {
41
+ const content = readFileSync(walletOpt, 'utf8').trim();
42
+ const secretKey = Buffer.from(content.startsWith('0x') ? content.slice(2) : content, 'hex');
43
+ if (secretKey.length !== 64) {
44
+ throw new CCIPArgumentInvalidError('wallet', 'Invalid private key in file: must be 64 bytes');
45
+ }
46
+ const keyPair = keyPairFromSecretKey(secretKey);
47
+ const contract = WalletContractV4.create({
48
+ workchain: 0,
49
+ publicKey: keyPair.publicKey,
50
+ });
51
+ return { contract, keyPair };
52
+ }
53
+ throw new CCIPArgumentInvalidError('wallet', 'Wallet not specified');
54
+ }
55
+ //# sourceMappingURL=ton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ton.js","sourceRoot":"","sources":["../../src/providers/ton.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,SAAS,CAAA;AAElD,OAAO,EACL,wBAAwB,EACxB,sBAAsB,GACvB,MAAM,+CAA+C,CAAA;AAEtD,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAE3C;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,EAClC,MAAM,EAAE,SAAS,MACO,EAAE;IAC1B,IAAI,OAAO,SAAS,KAAK,QAAQ;QAAE,MAAM,IAAI,sBAAsB,CAAC,SAAS,CAAC,CAAA;IAE9E,yBAAyB;IACzB,IAAI,SAAS,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5B,MAAM,QAAQ,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;QAC5C,MAAM,OAAO,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAA;QACpD,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACvC,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAA;QACF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC9B,CAAC;IAED,yBAAyB;IACzB,IAAI,SAAS,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACxD,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,wBAAwB,CAChC,QAAQ,EACR,kEAAkE,CACnE,CAAA;QACH,CAAC;QACD,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE,oCAAoC,CAAC,CAAA;QACpF,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACvC,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAA;QACF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC9B,CAAC;IAED,mBAAmB;IACnB,IAAI,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC1B,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAA;QACtD,MAAM,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,KAAK,CAAC,CAAA;QAC3F,IAAI,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YAC5B,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE,+CAA+C,CAAC,CAAA;QAC/F,CAAC;QACD,MAAM,OAAO,GAAG,oBAAoB,CAAC,SAAS,CAAC,CAAA;QAC/C,MAAM,QAAQ,GAAG,gBAAgB,CAAC,MAAM,CAAC;YACvC,SAAS,EAAE,CAAC;YACZ,SAAS,EAAE,OAAO,CAAC,SAAS;SAC7B,CAAC,CAAA;QACF,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IAC9B,CAAC;IAED,MAAM,IAAI,wBAAwB,CAAC,QAAQ,EAAE,sBAAsB,CAAC,CAAA;AACtE,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chainlink/ccip-cli",
3
- "version": "0.91.0",
3
+ "version": "0.92.0",
4
4
  "description": "CCIP Command Line Interface, based on @chainlink/ccip-sdk",
5
5
  "author": "Chainlink devs",
6
6
  "license": "MIT",
@@ -28,34 +28,34 @@
28
28
  "!**/__mocks__"
29
29
  ],
30
30
  "devDependencies": {
31
- "@eslint/js": "^9.39.1",
32
- "@types/node": "24.10.1",
31
+ "@eslint/js": "^9.39.2",
32
+ "@types/node": "25.0.3",
33
33
  "@types/yargs": "17.0.35",
34
- "eslint": "^9.39.1",
34
+ "eslint": "^9.39.2",
35
35
  "eslint-config-prettier": "10.1.8",
36
36
  "eslint-import-resolver-typescript": "4.4.4",
37
37
  "eslint-plugin-import": "^2.32.0",
38
- "eslint-plugin-jsdoc": "^61.4.2",
38
+ "eslint-plugin-jsdoc": "^61.5.0",
39
39
  "eslint-plugin-prettier": "^5.5.4",
40
40
  "eslint-plugin-tsdoc": "^0.5.0",
41
41
  "prettier": "^3.7.4",
42
42
  "tsx": "4.21.0",
43
43
  "typescript": "5.9.3",
44
- "typescript-eslint": "8.48.1"
44
+ "typescript-eslint": "8.50.0"
45
45
  },
46
46
  "dependencies": {
47
- "@aptos-labs/ts-sdk": "^5.1.6",
48
- "@chainlink/ccip-sdk": "^0.91.0",
47
+ "@aptos-labs/ts-sdk": "^5.2.0",
48
+ "@chainlink/ccip-sdk": "^0.92.0",
49
49
  "@coral-xyz/anchor": "^0.29.0",
50
50
  "@ethers-ext/signer-ledger": "^6.0.0-beta.1",
51
- "@inquirer/prompts": "8.0.2",
52
- "@ledgerhq/hw-app-aptos": "^6.34.9",
53
- "@ledgerhq/hw-app-solana": "^7.6.0",
54
- "@ledgerhq/hw-transport-node-hid": "^6.29.14",
51
+ "@inquirer/prompts": "8.1.0",
52
+ "@ledgerhq/hw-app-aptos": "^6.34.10",
53
+ "@ledgerhq/hw-app-solana": "^7.6.1",
54
+ "@ledgerhq/hw-transport-node-hid": "^6.29.15",
55
55
  "@solana/web3.js": "^1.98.4",
56
56
  "bs58": "^6.0.0",
57
57
  "ethers": "6.16.0",
58
- "type-fest": "^5.3.0",
58
+ "type-fest": "^5.3.1",
59
59
  "yargs": "18.0.0"
60
60
  }
61
61
  }
@@ -4,11 +4,14 @@ import {
4
4
  type ChainStatic,
5
5
  type EVMChain,
6
6
  type ExecutionReport,
7
+ CCIPChainFamilyUnsupportedError,
8
+ CCIPReceiptNotFoundError,
7
9
  ChainFamily,
8
10
  bigIntReplacer,
9
11
  calculateManualExecProof,
10
12
  discoverOffRamp,
11
13
  estimateExecGasForRequest,
14
+ isSupportedTxHash,
12
15
  } from '@chainlink/ccip-sdk/src/index.ts'
13
16
  import type { Argv } from 'yargs'
14
17
 
@@ -44,6 +47,7 @@ export const builder = (yargs: Argv) =>
44
47
  demandOption: true,
45
48
  describe: 'transaction hash of the request (source) message',
46
49
  })
50
+ .check(({ txHash }) => isSupportedTxHash(txHash))
47
51
  .options({
48
52
  'log-index': {
49
53
  type: 'number',
@@ -84,6 +88,12 @@ export const builder = (yargs: Argv) =>
84
88
  describe:
85
89
  'Clears buffers (if a previous attempt was aborted) or any ALT owned by this sender.',
86
90
  },
91
+ 'receiver-object-ids': {
92
+ type: 'array',
93
+ describe: 'Receiver object IDs for Sui execution (if executing on Sui destination)',
94
+ string: true,
95
+ example: '--receiver-object-ids 0xabc... 0xdef...',
96
+ },
87
97
  'sender-queue': {
88
98
  type: 'boolean',
89
99
  describe: 'Execute all messages in sender queue, starting with the provided tx',
@@ -102,7 +112,7 @@ export const builder = (yargs: Argv) =>
102
112
  * @param argv - Command line arguments.
103
113
  */
104
114
  export async function handler(argv: Awaited<ReturnType<typeof builder>['argv']> & GlobalOpts) {
105
- const [controller, ctx] = getCtx(argv)
115
+ const [ctx, destroy] = getCtx(argv)
106
116
  // argv.senderQueue
107
117
  // ? manualExecSenderQueue(providers, argv.tx_hash, argv)
108
118
  // : manualExec(argv, destroy$)
@@ -111,7 +121,7 @@ export async function handler(argv: Awaited<ReturnType<typeof builder>['argv']>
111
121
  process.exitCode = 1
112
122
  if (!logParsedError.call(ctx, err)) ctx.logger.error(err)
113
123
  })
114
- .finally(() => controller.abort('Exited'))
124
+ .finally(destroy)
115
125
  }
116
126
 
117
127
  async function manualExec(
@@ -159,7 +169,7 @@ async function manualExec(
159
169
  const execReportProof = calculateManualExecProof(
160
170
  messagesInBatch,
161
171
  request.lane,
162
- request.message.header.messageId,
172
+ request.message.messageId,
163
173
  commit.report.merkleRoot,
164
174
  dest,
165
175
  )
@@ -168,7 +178,7 @@ async function manualExec(
168
178
  const execReport: ExecutionReport = {
169
179
  ...execReportProof,
170
180
  message: request.message,
171
- offchainTokenData: offchainTokenData,
181
+ offchainTokenData,
172
182
  }
173
183
 
174
184
  if (
@@ -177,7 +187,9 @@ async function manualExec(
177
187
  'extraArgs' in request.message
178
188
  ) {
179
189
  if (dest.network.family !== ChainFamily.EVM)
180
- throw new Error('Gas estimation is only supported for EVM networks for now')
190
+ throw new CCIPChainFamilyUnsupportedError(dest.network.family, {
191
+ context: { feature: 'gas estimation' },
192
+ })
181
193
 
182
194
  let estimated = await estimateExecGasForRequest(
183
195
  source,
@@ -232,7 +244,7 @@ async function manualExec(
232
244
  }
233
245
  found = true
234
246
  }
235
- if (!found) throw new Error(`Could not find receipt in tx logs`)
247
+ if (!found) throw new CCIPReceiptNotFoundError(manualExecTx.hash)
236
248
  }
237
249
 
238
250
  /*