@chainlink/ccip-cli 0.94.0 → 0.96.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.
- package/README.md +148 -42
- package/dist/commands/manual-exec.d.ts +1 -1
- package/dist/commands/manual-exec.d.ts.map +1 -1
- package/dist/commands/manual-exec.js +12 -12
- package/dist/commands/manual-exec.js.map +1 -1
- package/dist/commands/parse.d.ts.map +1 -1
- package/dist/commands/parse.js +8 -2
- package/dist/commands/parse.js.map +1 -1
- package/dist/commands/send.d.ts +5 -9
- package/dist/commands/send.d.ts.map +1 -1
- package/dist/commands/send.js +72 -52
- package/dist/commands/send.js.map +1 -1
- package/dist/commands/show.d.ts.map +1 -1
- package/dist/commands/show.js +2 -4
- package/dist/commands/show.js.map +1 -1
- package/dist/commands/supported-tokens.d.ts +3 -1
- package/dist/commands/supported-tokens.d.ts.map +1 -1
- package/dist/commands/supported-tokens.js +36 -15
- package/dist/commands/supported-tokens.js.map +1 -1
- package/dist/commands/token.d.ts +26 -0
- package/dist/commands/token.d.ts.map +1 -0
- package/dist/commands/token.js +105 -0
- package/dist/commands/token.js.map +1 -0
- package/dist/commands/utils.d.ts.map +1 -1
- package/dist/commands/utils.js +21 -7
- package/dist/commands/utils.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +3 -3
- package/dist/providers/index.js.map +1 -1
- package/package.json +10 -13
- package/src/commands/manual-exec.ts +14 -24
- package/src/commands/parse.ts +8 -2
- package/src/commands/send.ts +80 -66
- package/src/commands/show.ts +1 -4
- package/src/commands/supported-tokens.ts +35 -15
- package/src/commands/token.ts +132 -0
- package/src/commands/utils.ts +23 -6
- package/src/index.ts +2 -2
- package/src/providers/index.ts +7 -3
package/dist/commands/send.js
CHANGED
|
@@ -1,107 +1,114 @@
|
|
|
1
|
-
import { CCIPArgumentInvalidError,
|
|
1
|
+
import { CCIPArgumentInvalidError, CCIPInsufficientBalanceError, CCIPTokenNotFoundError, ChainFamily, estimateReceiveExecution, getDataBytes, networkInfo, } from '@chainlink/ccip-sdk';
|
|
2
2
|
import { formatUnits, toUtf8Bytes } from 'ethers';
|
|
3
3
|
import { showRequests } from "./show.js";
|
|
4
4
|
import { getCtx, logParsedError, parseTokenAmounts } from "./utils.js";
|
|
5
5
|
import { fetchChainsFromRpcs, loadChainWallet } from "../providers/index.js";
|
|
6
|
-
export const command = 'send
|
|
7
|
-
export const describe = 'Send a CCIP message from
|
|
6
|
+
export const command = 'send';
|
|
7
|
+
export const describe = 'Send a CCIP message from source to destination chain';
|
|
8
8
|
/**
|
|
9
9
|
* Yargs builder for the send command.
|
|
10
10
|
* @param yargs - Yargs instance.
|
|
11
11
|
* @returns Configured yargs instance with command options.
|
|
12
12
|
*/
|
|
13
13
|
export const builder = (yargs) => yargs
|
|
14
|
-
.
|
|
14
|
+
.option('source', {
|
|
15
|
+
alias: 's',
|
|
15
16
|
type: 'string',
|
|
16
17
|
demandOption: true,
|
|
17
|
-
describe: '
|
|
18
|
-
example: 'ethereum-testnet-sepolia',
|
|
18
|
+
describe: 'Source chain: chainId, selector, or name',
|
|
19
19
|
})
|
|
20
|
-
.
|
|
20
|
+
.option('dest', {
|
|
21
|
+
alias: 'd',
|
|
21
22
|
type: 'string',
|
|
22
23
|
demandOption: true,
|
|
23
|
-
describe: '
|
|
24
|
+
describe: 'Destination chain: chainId, selector, or name',
|
|
24
25
|
})
|
|
25
|
-
.
|
|
26
|
+
.option('router', {
|
|
27
|
+
alias: 'r',
|
|
26
28
|
type: 'string',
|
|
27
29
|
demandOption: true,
|
|
28
|
-
describe: '
|
|
29
|
-
example: 'ethereum-testnet-sepolia-arbitrum-1',
|
|
30
|
+
describe: 'Router contract address on source',
|
|
30
31
|
})
|
|
31
32
|
.options({
|
|
32
33
|
receiver: {
|
|
33
|
-
alias: '
|
|
34
|
+
alias: 'to',
|
|
34
35
|
type: 'string',
|
|
35
|
-
describe: 'Receiver
|
|
36
|
+
describe: 'Receiver address on destination; defaults to sender if same chain family',
|
|
36
37
|
},
|
|
37
38
|
data: {
|
|
38
|
-
alias: 'd',
|
|
39
39
|
type: 'string',
|
|
40
|
-
describe: 'Data to send
|
|
41
|
-
example: '0x1234',
|
|
40
|
+
describe: 'Data payload to send (non-hex will be UTF-8 encoded)',
|
|
42
41
|
},
|
|
43
42
|
'gas-limit': {
|
|
44
43
|
alias: ['L', 'compute-units'],
|
|
45
44
|
type: 'number',
|
|
46
|
-
describe: 'Gas limit for receiver callback
|
|
45
|
+
describe: 'Gas limit for receiver callback; defaults to ramp config',
|
|
47
46
|
},
|
|
48
47
|
'estimate-gas-limit': {
|
|
49
48
|
type: 'number',
|
|
50
|
-
describe: 'Estimate gas limit
|
|
51
|
-
example: '10',
|
|
49
|
+
describe: 'Estimate gas limit with % margin (e.g., 10 for +10%)',
|
|
52
50
|
conflicts: 'gas-limit',
|
|
53
51
|
},
|
|
54
52
|
'allow-out-of-order-exec': {
|
|
55
53
|
alias: 'ooo',
|
|
56
54
|
type: 'boolean',
|
|
57
|
-
describe: 'Allow
|
|
55
|
+
describe: 'Allow out-of-order execution (v1.5+ lanes)',
|
|
58
56
|
},
|
|
59
57
|
'fee-token': {
|
|
60
58
|
type: 'string',
|
|
61
|
-
describe: '
|
|
59
|
+
describe: 'Fee token address or symbol (default: native)',
|
|
62
60
|
},
|
|
63
61
|
'transfer-tokens': {
|
|
64
62
|
alias: 't',
|
|
65
63
|
type: 'array',
|
|
66
64
|
string: true,
|
|
67
|
-
describe: '
|
|
68
|
-
example: '0xtoken=0.1',
|
|
65
|
+
describe: 'Token amounts to transfer: token=amount',
|
|
69
66
|
},
|
|
70
67
|
wallet: {
|
|
71
68
|
alias: 'w',
|
|
72
69
|
type: 'string',
|
|
73
|
-
describe: 'Wallet
|
|
70
|
+
describe: 'Wallet: ledger[:index] or private key',
|
|
74
71
|
},
|
|
75
72
|
'token-receiver': {
|
|
76
73
|
type: 'string',
|
|
77
|
-
describe:
|
|
74
|
+
describe: 'Solana token receiver (if different from program receiver)',
|
|
78
75
|
},
|
|
79
76
|
account: {
|
|
80
77
|
alias: 'receiver-object-id',
|
|
81
78
|
type: 'array',
|
|
82
79
|
string: true,
|
|
83
|
-
describe: '
|
|
84
|
-
example: 'requiredPdaAddress=rw',
|
|
80
|
+
describe: 'Solana accounts (append =rw for writable) or Sui object IDs',
|
|
85
81
|
},
|
|
86
82
|
'only-get-fee': {
|
|
87
83
|
type: 'boolean',
|
|
88
|
-
describe: '
|
|
84
|
+
describe: 'Print fee and exit',
|
|
89
85
|
},
|
|
90
86
|
'only-estimate': {
|
|
91
87
|
type: 'boolean',
|
|
92
|
-
describe: '
|
|
88
|
+
describe: 'Print gas estimate and exit',
|
|
89
|
+
implies: 'estimate-gas-limit',
|
|
93
90
|
},
|
|
94
91
|
'approve-max': {
|
|
95
92
|
type: 'boolean',
|
|
96
|
-
describe:
|
|
93
|
+
describe: 'Approve max token amount instead of exact',
|
|
97
94
|
},
|
|
98
95
|
wait: {
|
|
99
96
|
type: 'boolean',
|
|
100
97
|
default: false,
|
|
101
|
-
describe: 'Wait for execution',
|
|
98
|
+
describe: 'Wait for execution on destination',
|
|
102
99
|
},
|
|
103
100
|
})
|
|
104
|
-
.check(({ 'transfer-tokens': transferTokens }) => !transferTokens || transferTokens.every((t) => /^[^=]+=\d+(\.\d+)?$/.test(t)))
|
|
101
|
+
.check(({ 'transfer-tokens': transferTokens }) => !transferTokens || transferTokens.every((t) => /^[^=]+=\d+(\.\d+)?$/.test(t)))
|
|
102
|
+
.example([
|
|
103
|
+
[
|
|
104
|
+
'ccip-cli send -s ethereum-testnet-sepolia -d arbitrum-sepolia -r 0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59 --only-get-fee',
|
|
105
|
+
'Get fee estimate',
|
|
106
|
+
],
|
|
107
|
+
[
|
|
108
|
+
'ccip-cli send -s ethereum-testnet-sepolia -d arbitrum-sepolia -r 0x0BF3... --to 0xABC... --data "Hello"',
|
|
109
|
+
'Send message with data',
|
|
110
|
+
],
|
|
111
|
+
]);
|
|
105
112
|
/**
|
|
106
113
|
* Handler for the send command.
|
|
107
114
|
* @param argv - Command line arguments.
|
|
@@ -157,32 +164,29 @@ async function sendMessage(ctx, argv) {
|
|
|
157
164
|
}
|
|
158
165
|
if (argv.estimateGasLimit != null || argv.onlyEstimate) {
|
|
159
166
|
// TODO: implement for all chain families
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
[walletAddress, wallet] = await loadChainWallet(source, argv);
|
|
175
|
-
const estimated = await estimateExecGasForRequest(source, dest, {
|
|
176
|
-
lane,
|
|
167
|
+
const dest = await getChain(destNetwork.chainSelector);
|
|
168
|
+
if (!walletAddress) {
|
|
169
|
+
try {
|
|
170
|
+
;
|
|
171
|
+
[walletAddress, wallet] = await loadChainWallet(source, argv);
|
|
172
|
+
}
|
|
173
|
+
catch {
|
|
174
|
+
// pass undefined sender for default
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
const estimated = await estimateReceiveExecution({
|
|
178
|
+
source,
|
|
179
|
+
dest,
|
|
180
|
+
routerOrRamp: argv.router,
|
|
177
181
|
message: {
|
|
178
182
|
sender: walletAddress,
|
|
179
183
|
receiver,
|
|
180
|
-
data
|
|
181
|
-
tokenAmounts
|
|
184
|
+
data,
|
|
185
|
+
tokenAmounts,
|
|
182
186
|
},
|
|
183
187
|
});
|
|
184
|
-
logger.log('Estimated gasLimit:', estimated);
|
|
185
188
|
argv.gasLimit = Math.ceil(estimated * (1 + (argv.estimateGasLimit ?? 0) / 100));
|
|
189
|
+
logger.log('Estimated gasLimit for sender =', walletAddress, ':', estimated, ...(argv.estimateGasLimit ? ['+', argv.estimateGasLimit, '% =', argv.gasLimit] : []));
|
|
186
190
|
if (argv.onlyEstimate)
|
|
187
191
|
return;
|
|
188
192
|
}
|
|
@@ -244,6 +248,22 @@ async function sendMessage(ctx, argv) {
|
|
|
244
248
|
return;
|
|
245
249
|
if (!walletAddress)
|
|
246
250
|
[walletAddress, wallet] = await loadChainWallet(source, argv);
|
|
251
|
+
// Check sender has sufficient balance for fee
|
|
252
|
+
try {
|
|
253
|
+
const balance = await source.getBalance({ holder: walletAddress, token: feeToken });
|
|
254
|
+
if (balance < fee) {
|
|
255
|
+
const symbol = feeTokenInfo.symbol.startsWith('W') && !feeToken
|
|
256
|
+
? feeTokenInfo.symbol.substring(1)
|
|
257
|
+
: feeTokenInfo.symbol;
|
|
258
|
+
throw new CCIPInsufficientBalanceError(formatUnits(balance, feeTokenInfo.decimals), formatUnits(fee, feeTokenInfo.decimals), symbol);
|
|
259
|
+
}
|
|
260
|
+
}
|
|
261
|
+
catch (e) {
|
|
262
|
+
// may fail for chains that don't implement getBalance yet; log and continue
|
|
263
|
+
if (e instanceof CCIPInsufficientBalanceError)
|
|
264
|
+
throw e;
|
|
265
|
+
logger.debug('Balance check skipped:', e);
|
|
266
|
+
}
|
|
247
267
|
const request = await source.sendMessage({
|
|
248
268
|
...argv,
|
|
249
269
|
destChainSelector: destNetwork.chainSelector,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"send.js","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAAA,OAAO,EAIL,wBAAwB,EACxB,4BAA4B,EAC5B,sBAAsB,EACtB,WAAW,EACX,wBAAwB,EACxB,YAAY,EACZ,WAAW,GACZ,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAkB,WAAW,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAIjE,OAAO,EAAE,YAAY,EAAE,MAAM,WAAW,CAAA;AAExC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAA;AACtE,OAAO,EAAE,mBAAmB,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAA;AAE5E,MAAM,CAAC,MAAM,OAAO,GAAG,MAAM,CAAA;AAC7B,MAAM,CAAC,MAAM,QAAQ,GAAG,sDAAsD,CAAA;AAE9E;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAW,EAAE,EAAE,CACrC,KAAK;KACF,MAAM,CAAC,QAAQ,EAAE;IAChB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,0CAA0C;CACrD,CAAC;KACD,MAAM,CAAC,MAAM,EAAE;IACd,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,+CAA+C;CAC1D,CAAC;KACD,MAAM,CAAC,QAAQ,EAAE;IAChB,KAAK,EAAE,GAAG;IACV,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,mCAAmC;CAC9C,CAAC;KACD,OAAO,CAAC;IACP,QAAQ,EAAE;QACR,KAAK,EAAE,IAAI;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,0EAA0E;KACrF;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,sDAAsD;KACjE;IACD,WAAW,EAAE;QACX,KAAK,EAAE,CAAC,GAAG,EAAE,eAAe,CAAC;QAC7B,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,0DAA0D;KACrE;IACD,oBAAoB,EAAE;QACpB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,sDAAsD;QAChE,SAAS,EAAE,WAAW;KACvB;IACD,yBAAyB,EAAE;QACzB,KAAK,EAAE,KAAK;QACZ,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,4CAA4C;KACvD;IACD,WAAW,EAAE;QACX,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,+CAA+C;KAC1D;IACD,iBAAiB,EAAE;QACjB,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,yCAAyC;KACpD;IACD,MAAM,EAAE;QACN,KAAK,EAAE,GAAG;QACV,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,uCAAuC;KAClD;IACD,gBAAgB,EAAE;QAChB,IAAI,EAAE,QAAQ;QACd,QAAQ,EAAE,4DAA4D;KACvE;IACD,OAAO,EAAE;QACP,KAAK,EAAE,oBAAoB;QAC3B,IAAI,EAAE,OAAO;QACb,MAAM,EAAE,IAAI;QACZ,QAAQ,EAAE,6DAA6D;KACxE;IACD,cAAc,EAAE;QACd,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,oBAAoB;KAC/B;IACD,eAAe,EAAE;QACf,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,6BAA6B;QACvC,OAAO,EAAE,oBAAoB;KAC9B;IACD,aAAa,EAAE;QACb,IAAI,EAAE,SAAS;QACf,QAAQ,EAAE,2CAA2C;KACtD;IACD,IAAI,EAAE;QACJ,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,KAAK;QACd,QAAQ,EAAE,mCAAmC;KAC9C;CACF,CAAC;KACD,KAAK,CACJ,CAAC,EAAE,iBAAiB,EAAE,cAAc,EAAE,EAAE,EAAE,CACxC,CAAC,cAAc,IAAI,cAAc,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,qBAAqB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAChF;KACA,OAAO,CAAC;IACP;QACE,4HAA4H;QAC5H,kBAAkB;KACnB;IACD;QACE,yGAAyG;QACzG,wBAAwB;KACzB;CACF,CAAC,CAAA;AAEN;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,OAAO,CAAC,IAA8D;IAC1F,MAAM,CAAC,GAAG,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IACnC,OAAO,WAAW,CAAC,GAAG,EAAE,IAAI,CAAC;SAC1B,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,QAAQ,GAAG,CAAC,CAAA;QACpB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC;YAAE,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAA;IAC3D,CAAC,CAAC;SACD,OAAO,CAAC,OAAO,CAAC,CAAA;AACrB,CAAC;AAED,KAAK,UAAU,WAAW,CACxB,GAAQ,EACR,IAA8D;IAE9D,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IACtB,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;IAC9C,MAAM,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC1C,MAAM,QAAQ,GAAG,mBAAmB,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IAC/C,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,CAAA;IAEjD,IAAI,IAA2B,CAAA;IAC/B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;QACd,IAAI,CAAC;YACH,IAAI,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAChC,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;QAC/B,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAwC,IAAI,CAAC,cAAc,EAAE,MAAM;QACnF,CAAC,CAAC,MAAM,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC;QACtD,CAAC,CAAC,EAAE,CAAA;IAEN,IAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAA;IAC5B,IAAI,QAAQ,EACV,uBAAuB,GAAG,EAAE,CAAA;IAC9B,IAAI,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM,EAAE,CAAC;QAC9C,8CAA8C;QAC9C,IAAI,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,CAAC;YACzB,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,EAAE,EAAE;gBACzC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;oBAC5B,uBAAuB,IAAI,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,CAAA;oBAC1C,OAAO,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAA;gBACpD,CAAC;gBACD,OAAO,OAAO,CAAA;YAChB,CAAC,CAAC,CAAA;QACJ,CAAC;IACH,CAAC;IAED,IAAI,aAAa,EAAE,MAAM,CAAA;IACzB,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,IAAI,aAAa,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;YAC7C,MAAM,IAAI,wBAAwB,CAAC,UAAU,EAAE,qCAAqC,CAAC,CACtF;QAAA,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QAC9D,QAAQ,GAAG,aAAa,CAAA,CAAC,8BAA8B;IACzD,CAAC;IAED,IAAI,IAAI,CAAC,gBAAgB,IAAI,IAAI,IAAI,IAAI,CAAC,YAAY,EAAE,CAAC;QACvD,yCAAyC;QACzC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,WAAW,CAAC,aAAa,CAAC,CAAA;QAEtD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,CAAC;gBAAA,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;YAChE,CAAC;YAAC,MAAM,CAAC;gBACP,oCAAoC;YACtC,CAAC;QACH,CAAC;QACD,MAAM,SAAS,GAAG,MAAM,wBAAwB,CAAC;YAC/C,MAAM;YACN,IAAI;YACJ,YAAY,EAAE,IAAI,CAAC,MAAM;YACzB,OAAO,EAAE;gBACP,MAAM,EAAE,aAAa;gBACrB,QAAQ;gBACR,IAAI;gBACJ,YAAY;aACb;SACF,CAAC,CAAA;QACF,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,GAAG,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAA;QAC/E,MAAM,CAAC,GAAG,CACR,iCAAiC,EACjC,aAAa,EACb,GAAG,EACH,SAAS,EACT,GAAG,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,CAAC,gBAAgB,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CACrF,CAAA;QACD,IAAI,IAAI,CAAC,YAAY;YAAE,OAAM;IAC/B,CAAC;IAED,gEAAgE;IAChE,qFAAqF;IACrF,MAAM,SAAS,GAAG;QAChB,GAAG,CAAC,IAAI,CAAC,mBAAmB,IAAI,IAAI,IAAI;YACtC,wBAAwB,EAAE,CAAC,CAAC,IAAI,CAAC,mBAAmB;SACrD,CAAC;QACF,GAAG,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI;YACvB,CAAC,CAAC,EAAE;YACJ,CAAC,CAAC,WAAW,CAAC,MAAM,KAAK,WAAW,CAAC,MAAM;gBACzC,CAAC,CAAC,EAAE,YAAY,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE;gBACzC,CAAC,CAAC,EAAE,QAAQ,EAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC1C,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;QAClE,GAAG,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,EAAE,8CAA8C;KACzG,CAAA;IAED,IAAI,QAAQ,EAAE,YAAY,CAAA;IAC1B,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,QAAQ,GAAI,MAAM,CAAC,WAA2B,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;YACxE,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAA;QACpD,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;YACxD,MAAM,CAAC,KAAK,CAAC,sBAAsB,EAAE,SAAS,CAAC,CAAA;YAC/C,KAAK,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;gBACtD,IAAI,IAAI,CAAC,MAAM,KAAK,SAAS,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,QAAQ;oBAAE,SAAQ;gBACxE,QAAQ,GAAG,KAAK,CAAA;gBAChB,YAAY,GAAG,IAAI,CAAA;gBACnB,MAAK;YACP,CAAC;YACD,IAAI,CAAC,YAAY;gBAAE,MAAM,IAAI,sBAAsB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;QACpE,CAAC;IACH,CAAC;SAAM,CAAC;QACN,MAAM,WAAW,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;QACrE,YAAY,GAAG,MAAM,MAAM,CAAC,YAAY,CAAC,WAAW,CAAC,CAAA;IACvD,CAAC;IAED,MAAM,OAAO,GAAiB;QAC5B,QAAQ;QACR,IAAI;QACJ,SAAS,EAAE,SAAsB;QACjC,QAAQ,EAAE,qCAAqC;QAC/C,YAAY;KACb,CAAA;IAED,gBAAgB;IAChB,MAAM,GAAG,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC;QAC9B,GAAG,IAAI;QACP,iBAAiB,EAAE,WAAW,CAAC,aAAa;QAC5C,OAAO;KACR,CAAC,CAAA;IAEF,MAAM,CAAC,IAAI,CACT,MAAM,EACN,GAAG,EACH,GAAG,EACH,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,EACvC,CAAC,IAAI,CAAC,QAAQ,IAAI,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC;QACnD,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,YAAY,CAAC,MAAM,CACxB,CAAA;IACD,IAAI,IAAI,CAAC,UAAU;QAAE,OAAM;IAE3B,IAAI,CAAC,aAAa;QAAE,CAAC,aAAa,EAAE,MAAM,CAAC,GAAG,MAAM,eAAe,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;IAEjF,8CAA8C;IAC9C,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,UAAU,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAA;QACnF,IAAI,OAAO,GAAG,GAAG,EAAE,CAAC;YAClB,MAAM,MAAM,GACV,YAAY,CAAC,MAAM,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ;gBAC9C,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,CAAC;gBAClC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAA;YACzB,MAAM,IAAI,4BAA4B,CACpC,WAAW,CAAC,OAAO,EAAE,YAAY,CAAC,QAAQ,CAAC,EAC3C,WAAW,CAAC,GAAG,EAAE,YAAY,CAAC,QAAQ,CAAC,EACvC,MAAM,CACP,CAAA;QACH,CAAC;IACH,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,4EAA4E;QAC5E,IAAI,CAAC,YAAY,4BAA4B;YAAE,MAAM,CAAC,CAAA;QACtD,MAAM,CAAC,KAAK,CAAC,wBAAwB,EAAE,CAAC,CAAC,CAAA;IAC3C,CAAC;IAED,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,WAAW,CAAC;QACvC,GAAG,IAAI;QACP,iBAAiB,EAAE,WAAW,CAAC,aAAa;QAC5C,OAAO,EAAE,EAAE,GAAG,OAAO,EAAE,GAAG,EAAE;QAC5B,MAAM;KACP,CAAC,CAAA;IACF,MAAM,CAAC,IAAI,CACT,uBAAuB,EACvB,QAAQ,EACR,GAAG,EACH,WAAW,CAAC,IAAI,EAChB,SAAS,EACT,OAAO,CAAC,EAAE,CAAC,IAAI,EACf,gBAAgB,EAChB,OAAO,CAAC,OAAO,CAAC,SAAS,CAC1B,CAAA;IACD,MAAM,YAAY,CAAC,GAAG,EAAE;QACtB,GAAG,IAAI;QACP,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI;QACvB,SAAS,EAAE,OAAO,CAAC,EAAE,CAAC,IAAI;QAC1B,gBAAgB,EAAE,SAAS;QAC3B,YAAY,EAAE,SAAS;QACvB,WAAW,EAAE,SAAS;QACtB,QAAQ,EAAE,SAAS;KACpB,CAAC,CAAA;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"show.d.ts","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAC7C,OAAO,EAAE,KAAK,GAAG,EAAU,MAAM,YAAY,CAAA;AAa7C,eAAO,MAAM,OAAO,UAAoC,CAAA;AACxD,eAAO,MAAM,QAAQ,mCAAmC,CAAA;AAExD;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,IAAI;;;;;;;;;;;;;;;GAuB7B,CAAA;AAEN;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,iBAQ3F;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,iBAsJ/E"}
|
package/dist/commands/show.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { CCIPExecTxRevertedError,
|
|
1
|
+
import { CCIPExecTxRevertedError, ExecutionState, MessageStatus, bigIntReplacer, discoverOffRamp, isSupportedTxHash, networkInfo, } from '@chainlink/ccip-sdk';
|
|
2
2
|
import { Format } from "./types.js";
|
|
3
3
|
import { getCtx, logParsedError, prettyCommit, prettyReceipt, prettyRequest, prettyTable, selectRequest, withDateTimestamp, } from "./utils.js";
|
|
4
4
|
import { fetchChainsFromRpcs } from "../providers/index.js";
|
|
@@ -62,9 +62,7 @@ export async function showRequests(ctx, argv) {
|
|
|
62
62
|
idFromSource = argv.idFromSource;
|
|
63
63
|
const sourceNetwork = networkInfo(idFromSource);
|
|
64
64
|
source = await getChain(sourceNetwork.chainId);
|
|
65
|
-
|
|
66
|
-
throw new CCIPNotImplementedError(`getMessageById for ${source.constructor.name}`);
|
|
67
|
-
request = await source.getMessageById(argv.txHash, onRamp, argv);
|
|
65
|
+
request = await source.getMessageById(argv.txHash, { ...argv, onRamp });
|
|
68
66
|
}
|
|
69
67
|
else {
|
|
70
68
|
const [getChain_, tx$] = fetchChainsFromRpcs(ctx, argv, argv.txHash);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"AAAA,OAAO,EAGL,uBAAuB,EACvB,
|
|
1
|
+
{"version":3,"file":"show.js","sourceRoot":"","sources":["../../src/commands/show.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,11 +30,13 @@ export declare const describe = "List supported tokens in a given Router/OnRamp/
|
|
|
30
30
|
* @returns Configured yargs instance with command options.
|
|
31
31
|
*/
|
|
32
32
|
export declare const builder: (yargs: Argv) => Argv<{
|
|
33
|
-
|
|
33
|
+
network: string;
|
|
34
34
|
} & {
|
|
35
35
|
address: string;
|
|
36
36
|
} & {
|
|
37
37
|
token: string | undefined;
|
|
38
|
+
} & {
|
|
39
|
+
"fee-tokens": boolean;
|
|
38
40
|
}>;
|
|
39
41
|
/**
|
|
40
42
|
* Handler for the supported-tokens command.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supported-tokens.d.ts","sourceRoot":"","sources":["../../src/commands/supported-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAIjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"supported-tokens.d.ts","sourceRoot":"","sources":["../../src/commands/supported-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAWH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAIjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C,eAAO,MAAM,OAAO,UAAiD,CAAA;AACrE,eAAO,MAAM,QAAQ,yGACmF,CAAA;AAExG;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,IAAI;;;;;;;;EAkC7B,CAAA;AAEN;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,iBAQ3F"}
|
|
@@ -26,7 +26,7 @@ import { formatUnits } from 'ethers';
|
|
|
26
26
|
import { Format } from "./types.js";
|
|
27
27
|
import { formatDuration, getCtx, logParsedError, prettyTable } from "./utils.js";
|
|
28
28
|
import { fetchChainsFromRpcs } from "../providers/index.js";
|
|
29
|
-
export const command = ['getSupportedTokens
|
|
29
|
+
export const command = ['getSupportedTokens', 'get-supported-tokens'];
|
|
30
30
|
export const describe = 'List supported tokens in a given Router/OnRamp/TokenAdminRegistry, and/or show info about token/pool';
|
|
31
31
|
/**
|
|
32
32
|
* Yargs builder for the supported-tokens command.
|
|
@@ -34,22 +34,39 @@ export const describe = 'List supported tokens in a given Router/OnRamp/TokenAdm
|
|
|
34
34
|
* @returns Configured yargs instance with command options.
|
|
35
35
|
*/
|
|
36
36
|
export const builder = (yargs) => yargs
|
|
37
|
-
.
|
|
37
|
+
.option('network', {
|
|
38
|
+
alias: 'n',
|
|
38
39
|
type: 'string',
|
|
39
40
|
demandOption: true,
|
|
40
|
-
describe: '
|
|
41
|
-
example: 'ethereum-testnet-sepolia',
|
|
41
|
+
describe: 'Source network: chainId or name (e.g., ethereum-mainnet)',
|
|
42
42
|
})
|
|
43
|
-
.
|
|
43
|
+
.option('address', {
|
|
44
|
+
alias: 'a',
|
|
44
45
|
type: 'string',
|
|
45
46
|
demandOption: true,
|
|
46
|
-
describe: '
|
|
47
|
+
describe: 'Router/OnRamp/TokenAdminRegistry/TokenPool contract address',
|
|
47
48
|
})
|
|
48
|
-
.
|
|
49
|
+
.option('token', {
|
|
50
|
+
alias: 't',
|
|
49
51
|
type: 'string',
|
|
50
52
|
demandOption: false,
|
|
51
|
-
describe: '
|
|
52
|
-
})
|
|
53
|
+
describe: 'Token address to query (pre-selects from list if address is a registry)',
|
|
54
|
+
})
|
|
55
|
+
.option('fee-tokens', {
|
|
56
|
+
type: 'boolean',
|
|
57
|
+
default: false,
|
|
58
|
+
describe: 'List fee tokens instead of transferable tokens',
|
|
59
|
+
})
|
|
60
|
+
.example([
|
|
61
|
+
[
|
|
62
|
+
'ccip-cli getSupportedTokens -n ethereum-mainnet -a 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D',
|
|
63
|
+
'List all supported tokens from router',
|
|
64
|
+
],
|
|
65
|
+
[
|
|
66
|
+
'ccip-cli getSupportedTokens -n ethereum-mainnet -a 0x80226fc... -t 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
|
67
|
+
'Get details for specific token',
|
|
68
|
+
],
|
|
69
|
+
]);
|
|
53
70
|
/**
|
|
54
71
|
* Handler for the supported-tokens command.
|
|
55
72
|
* @param argv - Command line arguments.
|
|
@@ -66,7 +83,7 @@ export async function handler(argv) {
|
|
|
66
83
|
}
|
|
67
84
|
async function getSupportedTokens(ctx, argv) {
|
|
68
85
|
const { logger } = ctx;
|
|
69
|
-
const sourceNetwork = networkInfo(argv.
|
|
86
|
+
const sourceNetwork = networkInfo(argv.network);
|
|
70
87
|
const getChain = fetchChainsFromRpcs(ctx, argv);
|
|
71
88
|
const source = await getChain(sourceNetwork.name);
|
|
72
89
|
let registry;
|
|
@@ -76,8 +93,8 @@ async function getSupportedTokens(ctx, argv) {
|
|
|
76
93
|
catch (_) {
|
|
77
94
|
// ignore
|
|
78
95
|
}
|
|
79
|
-
|
|
80
|
-
if (
|
|
96
|
+
// Handle --fee-tokens flag
|
|
97
|
+
if (argv.feeTokens) {
|
|
81
98
|
const feeTokens = await source.getFeeTokens(argv.address);
|
|
82
99
|
switch (argv.format) {
|
|
83
100
|
case Format.pretty:
|
|
@@ -90,6 +107,10 @@ async function getSupportedTokens(ctx, argv) {
|
|
|
90
107
|
default:
|
|
91
108
|
logger.log('feeTokens:', feeTokens);
|
|
92
109
|
}
|
|
110
|
+
return;
|
|
111
|
+
}
|
|
112
|
+
let info, tokenPool, poolConfigs, registryConfig;
|
|
113
|
+
if (registry && !argv.token) {
|
|
93
114
|
// router + interactive list
|
|
94
115
|
info = await listTokens(ctx, source, registry, argv);
|
|
95
116
|
if (!info)
|
|
@@ -98,13 +119,13 @@ async function getSupportedTokens(ctx, argv) {
|
|
|
98
119
|
tokenPool = registryConfig.tokenPool;
|
|
99
120
|
if (!tokenPool)
|
|
100
121
|
throw new CCIPTokenNotConfiguredError(info.token, registry);
|
|
101
|
-
poolConfigs = await source.
|
|
122
|
+
poolConfigs = await source.getTokenPoolConfig(tokenPool);
|
|
102
123
|
}
|
|
103
124
|
else {
|
|
104
125
|
if (!argv.token) {
|
|
105
126
|
// tokenPool
|
|
106
127
|
tokenPool = argv.address;
|
|
107
|
-
poolConfigs = await source.
|
|
128
|
+
poolConfigs = await source.getTokenPoolConfig(tokenPool);
|
|
108
129
|
registry ??= await source.getTokenAdminRegistryFor(poolConfigs.router);
|
|
109
130
|
[info, registryConfig] = await Promise.all([
|
|
110
131
|
source.getTokenInfo(poolConfigs.token),
|
|
@@ -119,7 +140,7 @@ async function getSupportedTokens(ctx, argv) {
|
|
|
119
140
|
tokenPool = registryConfig.tokenPool;
|
|
120
141
|
if (!tokenPool)
|
|
121
142
|
throw new CCIPTokenNotConfiguredError(argv.token, registry);
|
|
122
|
-
poolConfigs = await source.
|
|
143
|
+
poolConfigs = await source.getTokenPoolConfig(tokenPool);
|
|
123
144
|
}
|
|
124
145
|
if (argv.format === Format.json) {
|
|
125
146
|
logger.log(JSON.stringify({ ...info, tokenPool, ...poolConfigs }, bigIntReplacer, 2));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"supported-tokens.js","sourceRoot":"","sources":["../../src/commands/supported-tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAEH,OAAO,EAGL,2BAA2B,EAC3B,cAAc,EACd,WAAW,GACZ,MAAM,kCAAkC,CAAA;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAA;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,QAAQ,CAAA;AAGpC,OAAO,EAAY,MAAM,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEhF,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAA;AAE3D,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"supported-tokens.js","sourceRoot":"","sources":["../../src/commands/supported-tokens.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token balance query command.
|
|
3
|
+
* Queries native or token balance for an address.
|
|
4
|
+
*/
|
|
5
|
+
import type { Argv } from 'yargs';
|
|
6
|
+
import type { GlobalOpts } from '../index.ts';
|
|
7
|
+
export declare const command = "token";
|
|
8
|
+
export declare const describe = "Query token balance for an address";
|
|
9
|
+
/**
|
|
10
|
+
* Yargs builder for the token command.
|
|
11
|
+
* @param yargs - Yargs instance.
|
|
12
|
+
* @returns Configured yargs instance with command options.
|
|
13
|
+
*/
|
|
14
|
+
export declare const builder: (yargs: Argv) => Argv<{
|
|
15
|
+
network: string;
|
|
16
|
+
} & {
|
|
17
|
+
holder: string;
|
|
18
|
+
} & {
|
|
19
|
+
token: string | undefined;
|
|
20
|
+
}>;
|
|
21
|
+
/**
|
|
22
|
+
* Handler for the token command.
|
|
23
|
+
* @param argv - Command line arguments.
|
|
24
|
+
*/
|
|
25
|
+
export declare function handler(argv: Awaited<ReturnType<typeof builder>['argv']> & GlobalOpts): Promise<void>;
|
|
26
|
+
//# sourceMappingURL=token.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"token.d.ts","sourceRoot":"","sources":["../../src/commands/token.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAIH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAIjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAG7C,eAAO,MAAM,OAAO,UAAU,CAAA;AAC9B,eAAO,MAAM,QAAQ,uCAAuC,CAAA;AAE5D;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,IAAI;;;;;;EA8B7B,CAAA;AAEN;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,iBAQ3F"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Token balance query command.
|
|
3
|
+
* Queries native or token balance for an address.
|
|
4
|
+
*/
|
|
5
|
+
import { networkInfo } from '@chainlink/ccip-sdk';
|
|
6
|
+
import { formatUnits } from 'ethers';
|
|
7
|
+
import { Format } from "./types.js";
|
|
8
|
+
import { getCtx, logParsedError, prettyTable } from "./utils.js";
|
|
9
|
+
import { fetchChainsFromRpcs } from "../providers/index.js";
|
|
10
|
+
export const command = 'token';
|
|
11
|
+
export const describe = 'Query token balance for an address';
|
|
12
|
+
/**
|
|
13
|
+
* Yargs builder for the token command.
|
|
14
|
+
* @param yargs - Yargs instance.
|
|
15
|
+
* @returns Configured yargs instance with command options.
|
|
16
|
+
*/
|
|
17
|
+
export const builder = (yargs) => yargs
|
|
18
|
+
.option('network', {
|
|
19
|
+
alias: 'n',
|
|
20
|
+
type: 'string',
|
|
21
|
+
demandOption: true,
|
|
22
|
+
describe: 'Network: chainId or name (e.g., ethereum-mainnet, solana-devnet)',
|
|
23
|
+
})
|
|
24
|
+
.option('holder', {
|
|
25
|
+
alias: 'H',
|
|
26
|
+
type: 'string',
|
|
27
|
+
demandOption: true,
|
|
28
|
+
describe: 'Wallet address to query balance for',
|
|
29
|
+
})
|
|
30
|
+
.option('token', {
|
|
31
|
+
alias: 't',
|
|
32
|
+
type: 'string',
|
|
33
|
+
demandOption: false,
|
|
34
|
+
describe: 'Token address (omit for native token balance)',
|
|
35
|
+
})
|
|
36
|
+
.example([
|
|
37
|
+
['ccip-cli token -n ethereum-mainnet -H 0x1234...abcd', 'Query native ETH balance'],
|
|
38
|
+
[
|
|
39
|
+
'ccip-cli token -n ethereum-mainnet -H 0x1234... -t 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48',
|
|
40
|
+
'Query USDC token balance',
|
|
41
|
+
],
|
|
42
|
+
[
|
|
43
|
+
'ccip-cli token -n solana-devnet -H EPUjBP3Xf76K1VKsDSc6GupBWE8uykNksCLJgXZn87CB',
|
|
44
|
+
'Query native SOL balance',
|
|
45
|
+
],
|
|
46
|
+
]);
|
|
47
|
+
/**
|
|
48
|
+
* Handler for the token command.
|
|
49
|
+
* @param argv - Command line arguments.
|
|
50
|
+
*/
|
|
51
|
+
export async function handler(argv) {
|
|
52
|
+
const [ctx, destroy] = getCtx(argv);
|
|
53
|
+
return queryTokenBalance(ctx, argv)
|
|
54
|
+
.catch((err) => {
|
|
55
|
+
process.exitCode = 1;
|
|
56
|
+
if (!logParsedError.call(ctx, err))
|
|
57
|
+
ctx.logger.error(err);
|
|
58
|
+
})
|
|
59
|
+
.finally(destroy);
|
|
60
|
+
}
|
|
61
|
+
async function queryTokenBalance(ctx, argv) {
|
|
62
|
+
const { logger } = ctx;
|
|
63
|
+
const networkName = networkInfo(argv.network).name;
|
|
64
|
+
const getChain = fetchChainsFromRpcs(ctx, argv);
|
|
65
|
+
const chain = await getChain(networkName);
|
|
66
|
+
const balance = await chain.getBalance({
|
|
67
|
+
holder: argv.holder,
|
|
68
|
+
token: argv.token,
|
|
69
|
+
});
|
|
70
|
+
// Get token info for formatting (only for tokens, not native)
|
|
71
|
+
let tokenInfo;
|
|
72
|
+
if (argv.token) {
|
|
73
|
+
argv.token = chain.constructor.getAddress(argv.token);
|
|
74
|
+
tokenInfo = await chain.getTokenInfo(argv.token);
|
|
75
|
+
}
|
|
76
|
+
const tokenLabel = tokenInfo?.symbol ?? 'native';
|
|
77
|
+
const formatted = formatUnits(balance, tokenInfo ? tokenInfo.decimals : chain.constructor.decimals);
|
|
78
|
+
switch (argv.format) {
|
|
79
|
+
case Format.json:
|
|
80
|
+
logger.log(JSON.stringify({
|
|
81
|
+
network: networkName,
|
|
82
|
+
holder: argv.holder,
|
|
83
|
+
token: tokenLabel,
|
|
84
|
+
balance: balance.toString(),
|
|
85
|
+
formatted,
|
|
86
|
+
...tokenInfo,
|
|
87
|
+
}, null, 2));
|
|
88
|
+
return;
|
|
89
|
+
case Format.log:
|
|
90
|
+
logger.log(`Balance of`, tokenInfo ? argv.token : tokenLabel, ':', balance, `=`, tokenInfo ? `${formatted} ${tokenLabel}` : formatted);
|
|
91
|
+
return;
|
|
92
|
+
case Format.pretty:
|
|
93
|
+
default:
|
|
94
|
+
prettyTable.call(ctx, {
|
|
95
|
+
network: networkName,
|
|
96
|
+
holder: argv.holder,
|
|
97
|
+
token: argv.token ?? tokenLabel,
|
|
98
|
+
balance,
|
|
99
|
+
formatted,
|
|
100
|
+
...tokenInfo,
|
|
101
|
+
});
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=token.js.map
|