@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/README.md
CHANGED
|
@@ -44,8 +44,8 @@ alias ccip-cli="$PWD/ccip-cli/ccip-cli" # optional, to run from local repo dire
|
|
|
44
44
|
All commands require a list of RPCs endpoints for the networks of interest (source and destination).
|
|
45
45
|
Both `http[s]` and `ws[s]` (websocket) URLs are supported.
|
|
46
46
|
|
|
47
|
-
This list can be passed in the command line, through the
|
|
48
|
-
multiple times, e.g.
|
|
47
|
+
This list can be passed in the command line, through the `--rpc/--rpcs` option; it may be passed
|
|
48
|
+
multiple times, e.g. `--rpc <source_rpc> --rpc <dest_rpc>`, and are merged with those fetched from the
|
|
49
49
|
rpcs file (`--rpcs-file`, default=`./.env`), which may contain multiple endpoints, one per line,
|
|
50
50
|
with any prefix or suffix (only URLs are parsed).
|
|
51
51
|
|
|
@@ -74,7 +74,7 @@ to reply for each network.
|
|
|
74
74
|
## Wallet
|
|
75
75
|
|
|
76
76
|
Commands which need to send transactions try to get a private key from a `PRIVATE_KEY` environment
|
|
77
|
-
variable.
|
|
77
|
+
variable. Alternative names `USER_KEY` and `OWNER_KEY` are also supported (checked in that order).
|
|
78
78
|
|
|
79
79
|
Wallet options can also be passed as `--wallet`, where each chain family may interpret it however it
|
|
80
80
|
can:
|
|
@@ -108,11 +108,21 @@ ChainIDs depend on the chain family and must be passed using this pattern:
|
|
|
108
108
|
- `--format=json`: Machine-readable JSON
|
|
109
109
|
- `--page=10000`: limits `eth_getLogs` (and others) pagination/scanning ranges (e.g. for RPCs which
|
|
110
110
|
don't support large ranges)
|
|
111
|
+
- `--no-api`: Disable CCIP API integration (fully decentralized mode, RPC-only)
|
|
112
|
+
|
|
113
|
+
**Environment variable prefix:** All CLI options can be set via environment variables using the
|
|
114
|
+
`CCIP_` prefix. For example:
|
|
115
|
+
- `CCIP_NO_API=true` → same as `--no-api`
|
|
116
|
+
- `CCIP_VERBOSE=true` → same as `--verbose`
|
|
117
|
+
- `CCIP_FORMAT=json` → same as `--format=json`
|
|
111
118
|
|
|
112
119
|
### `send`
|
|
113
120
|
|
|
114
121
|
```sh
|
|
115
|
-
ccip-cli send
|
|
122
|
+
ccip-cli send \
|
|
123
|
+
--source ethereum-testnet-sepolia \
|
|
124
|
+
--dest ethereum-testnet-sepolia-arbitrum-1 \
|
|
125
|
+
--router 0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59 \
|
|
116
126
|
--receiver 0xAB4f961939BFE6A93567cC57C59eEd7084CE2131 \
|
|
117
127
|
--data 'hello world' \
|
|
118
128
|
--gas-limit 300000 \
|
|
@@ -120,37 +130,49 @@ ccip-cli send 11155111 0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59 ethereum-testn
|
|
|
120
130
|
--transfer-tokens 0xFd57b4ddBf88a4e07fF4e34C487b99af2Fe82a05=0.1
|
|
121
131
|
```
|
|
122
132
|
|
|
123
|
-
Sends a message from
|
|
133
|
+
Sends a CCIP message from source to destination chain.
|
|
134
|
+
|
|
135
|
+
**Required options:**
|
|
136
|
+
|
|
137
|
+
| Option | Alias | Description |
|
|
138
|
+
|--------|-------|-------------|
|
|
139
|
+
| `--source` | `-s` | Source chain (chainId, selector, or name) |
|
|
140
|
+
| `--dest` | `-d` | Destination chain (chainId, selector, or name) |
|
|
141
|
+
| `--router` | `-r` | Router contract address on source |
|
|
124
142
|
|
|
125
|
-
|
|
126
|
-
2. `router`: address on source
|
|
127
|
-
3. `dest`: chainId or name
|
|
143
|
+
**Message options:**
|
|
128
144
|
|
|
129
|
-
|
|
130
|
-
|
|
145
|
+
| Option | Alias | Description |
|
|
146
|
+
|--------|-------|-------------|
|
|
147
|
+
| `--receiver` | `--to` | Receiver address; defaults to sender if same chain family |
|
|
148
|
+
| `--data` | | Data payload (non-hex = UTF-8 encoded) |
|
|
149
|
+
| `--gas-limit` | `-L` | Gas limit for receiver callback (default: ramp config) |
|
|
150
|
+
| `--estimate-gas-limit` | | Auto-estimate with % margin; conflicts with `--gas-limit` |
|
|
151
|
+
| `--allow-out-of-order-exec` | `--ooo` | Skip sender nonce enforcement (v1.5+ lanes) |
|
|
131
152
|
|
|
132
|
-
|
|
153
|
+
**Token options:**
|
|
133
154
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
`--
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
`--only-estimate` prints gas estimation then exits.
|
|
155
|
+
| Option | Alias | Description |
|
|
156
|
+
|--------|-------|-------------|
|
|
157
|
+
| `--fee-token` | | Pay fee in ERC20 (default: native token) |
|
|
158
|
+
| `--transfer-tokens` | `-t` | Token transfers as `token=amount` (e.g., `0xToken=0.1`) |
|
|
159
|
+
| `--approve-max` | | Approve max allowance instead of exact |
|
|
140
160
|
|
|
141
|
-
|
|
142
|
-
`--only-get-fee` prints CCIP fee then exits.
|
|
161
|
+
**Utility options:**
|
|
143
162
|
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
163
|
+
| Option | Alias | Description |
|
|
164
|
+
|--------|-------|-------------|
|
|
165
|
+
| `--only-get-fee` | | Print fee and exit |
|
|
166
|
+
| `--only-estimate` | | Print gas estimate and exit (requires `--estimate-gas-limit`) |
|
|
167
|
+
| `--wait` | | Wait for execution on destination |
|
|
168
|
+
| `--wallet` | `-w` | Wallet (ledger[:index] or private key) |
|
|
147
169
|
|
|
148
|
-
|
|
149
|
-
`nonce` order enforcement. It's useful for destinations where execution can't be guaranteed
|
|
150
|
-
(e.g. zkOverflow), and required for many destinations. You can read about this config [here](https://docs.chain.link/ccip/tutorials/svm/source/token-transfers#understanding-the-configuration-fields).
|
|
170
|
+
**Solana/Sui options:**
|
|
151
171
|
|
|
152
|
-
|
|
153
|
-
|
|
172
|
+
| Option | Description |
|
|
173
|
+
|--------|-------------|
|
|
174
|
+
| `--token-receiver` | Solana token receiver if different from program |
|
|
175
|
+
| `--account` | Solana accounts (append `=rw` for writable) or Sui object IDs |
|
|
154
176
|
|
|
155
177
|
### `show` (default command)
|
|
156
178
|
|
|
@@ -205,6 +227,10 @@ table. The former gets auto-cleared upon successful execution, while the latter
|
|
|
205
227
|
to be cleared.
|
|
206
228
|
`--clear-leftover-accounts` can be used to scan and wait for the accounts to be cleared, after exec.
|
|
207
229
|
|
|
230
|
+
#### Sui Special Cases
|
|
231
|
+
|
|
232
|
+
`--receiver-object-ids` specifies receiver object IDs required for Sui execution (e.g., `--receiver-object-ids 0xabc... 0xdef...`).
|
|
233
|
+
|
|
208
234
|
#### Example
|
|
209
235
|
```sh
|
|
210
236
|
ccip-cli manualExec 0xafd36a0b99d5457e403c918194cb69cd070d991dcbadc99576acfce5020c0b6b \
|
|
@@ -224,35 +250,42 @@ Error: EVM2EVMOnRamp_1.2.0.UnsupportedToken(address)
|
|
|
224
250
|
Args: { token: '0x779877A7B0D9E8603169DdbD7836e478b4624789' }
|
|
225
251
|
```
|
|
226
252
|
|
|
227
|
-
Attempts to parse
|
|
253
|
+
Attempts to parse function call data, error and revert reasons for CCIP contracts. Supports hex (EVM), base64 (Solana), and other chain-specific formats.
|
|
228
254
|
|
|
229
255
|
It'll recursively try to decode `returnData` and `error` arguments.
|
|
230
256
|
|
|
231
257
|
### `getSupportedTokens`
|
|
232
258
|
|
|
233
259
|
```sh
|
|
234
|
-
ccip-cli getSupportedTokens <
|
|
235
|
-
ccip-cli getSupportedTokens <source> <router> [token] # show token and pool details for this token
|
|
236
|
-
ccip-cli getSupportedTokens <source> <tokenPool> # same as above, for the pool directly
|
|
260
|
+
ccip-cli getSupportedTokens --network <network> --address <address> [--token <token>]
|
|
237
261
|
```
|
|
238
262
|
|
|
239
|
-
|
|
240
|
-
If a CCIP `router` address is provided as second parameter, lists all the tokens and its information
|
|
241
|
-
supported in that lane. Type to filter the list.
|
|
263
|
+
List supported tokens in a given Router/OnRamp/TokenAdminRegistry, or show info about a specific token/pool.
|
|
242
264
|
|
|
243
|
-
|
|
265
|
+
**Required options:**
|
|
244
266
|
|
|
245
|
-
|
|
246
|
-
|
|
267
|
+
| Option | Alias | Description |
|
|
268
|
+
|--------|-------|-------------|
|
|
269
|
+
| `--network` | `-n` | Source network: chainId or name |
|
|
270
|
+
| `--address` | `-a` | Router/OnRamp/TokenAdminRegistry/TokenPool contract address |
|
|
247
271
|
|
|
248
|
-
|
|
249
|
-
chains and its rate limits state.
|
|
272
|
+
**Optional:**
|
|
250
273
|
|
|
251
|
-
|
|
274
|
+
| Option | Alias | Description |
|
|
275
|
+
|--------|-------|-------------|
|
|
276
|
+
| `--token` | `-t` | Token address to query (pre-selects from list if address is a registry) |
|
|
277
|
+
|
|
278
|
+
#### Examples
|
|
252
279
|
|
|
253
280
|
```sh
|
|
254
|
-
#
|
|
255
|
-
ccip-cli getSupportedTokens ethereum-mainnet 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D
|
|
281
|
+
# List all supported tokens from a router
|
|
282
|
+
ccip-cli getSupportedTokens -n ethereum-mainnet -a 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D
|
|
283
|
+
|
|
284
|
+
# Get details for a specific token
|
|
285
|
+
ccip-cli getSupportedTokens -n ethereum-mainnet -a 0x80226fc0Ee2b096224EeAc085Bb9a8cba1146f7D -t 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
|
|
286
|
+
|
|
287
|
+
# Query a token pool directly
|
|
288
|
+
ccip-cli getSupportedTokens -n ethereum-mainnet -a 0xTokenPoolAddress
|
|
256
289
|
```
|
|
257
290
|
|
|
258
291
|
#### Output Format Options
|
|
@@ -260,3 +293,76 @@ ccip-cli getSupportedTokens ethereum-mainnet 0x80226fc0Ee2b096224EeAc085Bb9a8cba
|
|
|
260
293
|
- `--format pretty` (default): Human-readable output
|
|
261
294
|
- `--format log`: Basic console logging
|
|
262
295
|
- `--format json`: Machine-readable JSON
|
|
296
|
+
|
|
297
|
+
### `token`
|
|
298
|
+
|
|
299
|
+
```sh
|
|
300
|
+
ccip-cli token --network <network> --holder <address> [--token <token>]
|
|
301
|
+
```
|
|
302
|
+
|
|
303
|
+
Query native or token balance for an address.
|
|
304
|
+
|
|
305
|
+
**Required options:**
|
|
306
|
+
|
|
307
|
+
| Option | Alias | Description |
|
|
308
|
+
|--------|-------|-------------|
|
|
309
|
+
| `--network` | `-n` | Network: chainId or name (e.g., ethereum-mainnet, solana-devnet) |
|
|
310
|
+
| `--holder` | `-H` | Wallet address to query balance for |
|
|
311
|
+
|
|
312
|
+
**Optional:**
|
|
313
|
+
|
|
314
|
+
| Option | Alias | Description |
|
|
315
|
+
|--------|-------|-------------|
|
|
316
|
+
| `--token` | `-t` | Token address (omit for native token balance) |
|
|
317
|
+
|
|
318
|
+
#### Examples
|
|
319
|
+
|
|
320
|
+
```sh
|
|
321
|
+
# Native ETH balance
|
|
322
|
+
ccip-cli token -n ethereum-mainnet -H 0x1234...abcd
|
|
323
|
+
|
|
324
|
+
# ERC-20 token balance
|
|
325
|
+
ccip-cli token -n ethereum-mainnet -H 0x1234...abcd -t 0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48
|
|
326
|
+
|
|
327
|
+
# Solana native SOL balance
|
|
328
|
+
ccip-cli token -n solana-devnet -H EPUjBP3Xf76K1VKsDSc6GupBWE8uykNksCLJgXZn87CB
|
|
329
|
+
```
|
|
330
|
+
|
|
331
|
+
### `laneLatency`
|
|
332
|
+
|
|
333
|
+
```sh
|
|
334
|
+
ccip-cli laneLatency <source> <dest> [--api-url <url>]
|
|
335
|
+
```
|
|
336
|
+
|
|
337
|
+
Query real-time lane latency between source and destination chains using the CCIP API.
|
|
338
|
+
|
|
339
|
+
**Arguments:**
|
|
340
|
+
|
|
341
|
+
| Argument | Description |
|
|
342
|
+
|----------|-------------|
|
|
343
|
+
| `<source>` | Source network (chainId, selector, or name) |
|
|
344
|
+
| `<dest>` | Destination network (chainId, selector, or name) |
|
|
345
|
+
|
|
346
|
+
**Options:**
|
|
347
|
+
|
|
348
|
+
| Option | Description |
|
|
349
|
+
|--------|-------------|
|
|
350
|
+
| `--api-url` | Custom CCIP API URL (default: api.ccip.chain.link) |
|
|
351
|
+
|
|
352
|
+
> **Note:** This command requires CCIP API access and respects the `--no-api` flag.
|
|
353
|
+
|
|
354
|
+
#### Example
|
|
355
|
+
|
|
356
|
+
```sh
|
|
357
|
+
ccip-cli laneLatency ethereum-mainnet arbitrum-mainnet
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
## Supported Chains
|
|
361
|
+
|
|
362
|
+
| Chain Family | Status | Notes |
|
|
363
|
+
|--------------|--------|-------|
|
|
364
|
+
| EVM | Supported | Full functionality |
|
|
365
|
+
| Solana | Supported | Full functionality |
|
|
366
|
+
| Aptos | Supported | Full functionality |
|
|
367
|
+
| Sui | Partial | Manual execution only |
|
|
368
|
+
| TON | Partial | Manual execution only |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import type { Argv } from 'yargs';
|
|
2
2
|
import type { GlobalOpts } from '../index.ts';
|
|
3
|
-
export declare const command
|
|
3
|
+
export declare const command: string[];
|
|
4
4
|
export declare const describe = "Execute manually pending or failed messages";
|
|
5
5
|
/**
|
|
6
6
|
* Yargs builder for the manual-exec command.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manual-exec.d.ts","sourceRoot":"","sources":["../../src/commands/manual-exec.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"manual-exec.d.ts","sourceRoot":"","sources":["../../src/commands/manual-exec.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAiB7C,eAAO,MAAM,OAAO,UAAoD,CAAA;AACxE,eAAO,MAAM,QAAQ,gDAAgD,CAAA;AAErE;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAiE7B,CAAA;AAEN;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,iBAW3F"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { bigIntReplacer, calculateManualExecProof, discoverOffRamp, estimateReceiveExecution, isSupportedTxHash, } from '@chainlink/ccip-sdk';
|
|
2
2
|
import { Format } from "./types.js";
|
|
3
3
|
import { getCtx, logParsedError, prettyCommit, prettyReceipt, prettyRequest, selectRequest, withDateTimestamp, } from "./utils.js";
|
|
4
4
|
import { fetchChainsFromRpcs, loadChainWallet } from "../providers/index.js";
|
|
5
5
|
// const MAX_QUEUE = 1000
|
|
6
6
|
// const MAX_EXECS_IN_BATCH = 1
|
|
7
7
|
// const MAX_PENDING_TXS = 25
|
|
8
|
-
export const command = 'manualExec <tx-hash>';
|
|
8
|
+
export const command = ['manualExec <tx-hash>', 'manual-exec <tx-hash>'];
|
|
9
9
|
export const describe = 'Execute manually pending or failed messages';
|
|
10
10
|
/**
|
|
11
11
|
* Yargs builder for the manual-exec command.
|
|
@@ -133,18 +133,18 @@ async function manualExec(ctx, argv) {
|
|
|
133
133
|
message: request.message,
|
|
134
134
|
offchainTokenData,
|
|
135
135
|
};
|
|
136
|
-
if (argv.estimateGasLimit != null
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
let estimated = await estimateExecGasForRequest(source, dest, request);
|
|
136
|
+
if (argv.estimateGasLimit != null) {
|
|
137
|
+
let estimated = await estimateReceiveExecution({
|
|
138
|
+
source,
|
|
139
|
+
dest,
|
|
140
|
+
routerOrRamp: offRamp,
|
|
141
|
+
message: request.message,
|
|
142
|
+
});
|
|
144
143
|
logger.info('Estimated gasLimit override:', estimated);
|
|
145
144
|
estimated += Math.ceil((estimated * argv.estimateGasLimit) / 100);
|
|
146
|
-
|
|
147
|
-
|
|
145
|
+
const origLimit = Number('gasLimit' in request.message ? request.message.gasLimit : request.message.computeUnits);
|
|
146
|
+
if (origLimit >= estimated) {
|
|
147
|
+
logger.warn('Estimated +', argv.estimateGasLimit, '% =', estimated, '< original gasLimit =', origLimit, '. Leaving unchanged.');
|
|
148
148
|
}
|
|
149
149
|
else {
|
|
150
150
|
argv.gasLimit = estimated;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"manual-exec.js","sourceRoot":"","sources":["../../src/commands/manual-exec.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"manual-exec.js","sourceRoot":"","sources":["../../src/commands/manual-exec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/commands/parse.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAI7C,eAAO,MAAM,OAAO,
|
|
1
|
+
{"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../src/commands/parse.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAI7C,eAAO,MAAM,OAAO,UAMnB,CAAA;AACD,eAAO,MAAM,QAAQ,iFAC2D,CAAA;AAEhF;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,IAAI;;EAK/B,CAAA;AAEJ;;;GAGG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,QAQrF"}
|
package/dist/commands/parse.js
CHANGED
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
import { CCIPDataParseError, bigIntReplacer, supportedChains, } from '@chainlink/ccip-sdk';
|
|
2
2
|
import { Format } from "./types.js";
|
|
3
3
|
import { getCtx, logParsedError, prettyTable } from "./utils.js";
|
|
4
|
-
export const command = [
|
|
4
|
+
export const command = [
|
|
5
|
+
'parse <data>',
|
|
6
|
+
'parseBytes <data>',
|
|
7
|
+
'parse-bytes <data>',
|
|
8
|
+
'parseData <data>',
|
|
9
|
+
'parse-data <data>',
|
|
10
|
+
];
|
|
5
11
|
export const describe = 'Try to parse and print errors, revert reasons or function call or event data';
|
|
6
12
|
/**
|
|
7
13
|
* Yargs builder for the parse command.
|
|
@@ -11,7 +17,7 @@ export const describe = 'Try to parse and print errors, revert reasons or functi
|
|
|
11
17
|
export const builder = (yargs) => yargs.positional('data', {
|
|
12
18
|
type: 'string',
|
|
13
19
|
demandOption: true,
|
|
14
|
-
describe: '
|
|
20
|
+
describe: 'Data to parse (hex, base64, or chain-specific format)',
|
|
15
21
|
});
|
|
16
22
|
/**
|
|
17
23
|
* Handler for the parse command.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/commands/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,kCAAkC,CAAA;AAIzC,OAAO,EAAY,MAAM,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG,
|
|
1
|
+
{"version":3,"file":"parse.js","sourceRoot":"","sources":["../../src/commands/parse.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,cAAc,EACd,eAAe,GAChB,MAAM,kCAAkC,CAAA;AAIzC,OAAO,EAAY,MAAM,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEhE,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,cAAc;IACd,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,mBAAmB;CACpB,CAAA;AACD,MAAM,CAAC,MAAM,QAAQ,GACnB,8EAA8E,CAAA;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,OAAO,GAAG,CAAC,KAAW,EAAE,EAAE,CACrC,KAAK,CAAC,UAAU,CAAC,MAAM,EAAE;IACvB,IAAI,EAAE,QAAQ;IACd,YAAY,EAAE,IAAI;IAClB,QAAQ,EAAE,uDAAuD;CAClE,CAAC,CAAA;AAEJ;;;GAGG;AACH,MAAM,UAAU,OAAO,CAAC,IAA8D;IACpF,MAAM,CAAC,GAAG,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAA;IAC1B,IAAI,CAAC;QACH,UAAU,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;IACvB,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;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;AACH,CAAC;AAED,SAAS,UAAU,CAAC,GAAQ,EAAE,IAAmC;IAC/D,MAAM,EAAE,MAAM,EAAE,GAAG,GAAG,CAAA;IACtB,IAAI,MAAM,CAAA;IACV,KAAK,MAAM,KAAK,IAAI,MAAM,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;QACnD,IAAI,CAAC;YACH,MAAM,GAAG,KAAK,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;YACjC,IAAI,MAAM;gBAAE,MAAK;QACnB,CAAC;QAAC,OAAO,CAAC,EAAE,CAAC;YACX,OAAO;QACT,CAAC;IACH,CAAC;IACD,IAAI,CAAC,MAAM;QAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAEpD,QAAQ,IAAI,CAAC,MAAM,EAAE,CAAC;QACpB,KAAK,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YAChB,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,MAAM,CAAC,CAAA;YAC9B,MAAK;QACP,CAAC;QACD,KAAK,MAAM,CAAC,MAAM;YAChB,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,MAAM,CAAC,CAAA;YAC7B,MAAK;QACP,KAAK,MAAM,CAAC,IAAI;YACd,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,CAAA;YACtD,MAAK;IACT,CAAC;AACH,CAAC"}
|
package/dist/commands/send.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { Argv } from 'yargs';
|
|
2
2
|
import type { GlobalOpts } from '../index.ts';
|
|
3
|
-
export declare const command = "send
|
|
4
|
-
export declare const describe = "Send a CCIP message from
|
|
3
|
+
export declare const command = "send";
|
|
4
|
+
export declare const describe = "Send a CCIP message from source to destination chain";
|
|
5
5
|
/**
|
|
6
6
|
* Yargs builder for the send command.
|
|
7
7
|
* @param yargs - Yargs instance.
|
|
@@ -9,10 +9,10 @@ export declare const describe = "Send a CCIP message from router on source to de
|
|
|
9
9
|
*/
|
|
10
10
|
export declare const builder: (yargs: Argv) => Argv<import("yargs").Omit<{
|
|
11
11
|
source: string;
|
|
12
|
-
} & {
|
|
13
|
-
router: string;
|
|
14
12
|
} & {
|
|
15
13
|
dest: string;
|
|
14
|
+
} & {
|
|
15
|
+
router: string;
|
|
16
16
|
}, "data" | "wallet" | "receiver" | "account" | "gas-limit" | "estimate-gas-limit" | "wait" | "allow-out-of-order-exec" | "fee-token" | "transfer-tokens" | "token-receiver" | "only-get-fee" | "only-estimate" | "approve-max"> & import("yargs").InferredOptionTypes<{
|
|
17
17
|
receiver: {
|
|
18
18
|
alias: string;
|
|
@@ -20,10 +20,8 @@ export declare const builder: (yargs: Argv) => Argv<import("yargs").Omit<{
|
|
|
20
20
|
describe: string;
|
|
21
21
|
};
|
|
22
22
|
data: {
|
|
23
|
-
alias: string;
|
|
24
23
|
type: "string";
|
|
25
24
|
describe: string;
|
|
26
|
-
example: string;
|
|
27
25
|
};
|
|
28
26
|
'gas-limit': {
|
|
29
27
|
alias: string[];
|
|
@@ -33,7 +31,6 @@ export declare const builder: (yargs: Argv) => Argv<import("yargs").Omit<{
|
|
|
33
31
|
'estimate-gas-limit': {
|
|
34
32
|
type: "number";
|
|
35
33
|
describe: string;
|
|
36
|
-
example: string;
|
|
37
34
|
conflicts: string;
|
|
38
35
|
};
|
|
39
36
|
'allow-out-of-order-exec': {
|
|
@@ -50,7 +47,6 @@ export declare const builder: (yargs: Argv) => Argv<import("yargs").Omit<{
|
|
|
50
47
|
type: "array";
|
|
51
48
|
string: true;
|
|
52
49
|
describe: string;
|
|
53
|
-
example: string;
|
|
54
50
|
};
|
|
55
51
|
wallet: {
|
|
56
52
|
alias: string;
|
|
@@ -66,7 +62,6 @@ export declare const builder: (yargs: Argv) => Argv<import("yargs").Omit<{
|
|
|
66
62
|
type: "array";
|
|
67
63
|
string: true;
|
|
68
64
|
describe: string;
|
|
69
|
-
example: string;
|
|
70
65
|
};
|
|
71
66
|
'only-get-fee': {
|
|
72
67
|
type: "boolean";
|
|
@@ -75,6 +70,7 @@ export declare const builder: (yargs: Argv) => Argv<import("yargs").Omit<{
|
|
|
75
70
|
'only-estimate': {
|
|
76
71
|
type: "boolean";
|
|
77
72
|
describe: string;
|
|
73
|
+
implies: string;
|
|
78
74
|
};
|
|
79
75
|
'approve-max': {
|
|
80
76
|
type: "boolean";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"send.d.ts","sourceRoot":"","sources":["../../src/commands/send.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,OAAO,CAAA;AAEjC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAM7C,eAAO,MAAM,OAAO,SAAS,CAAA;AAC7B,eAAO,MAAM,QAAQ,yDAAyD,CAAA;AAE9E;;;;GAIG;AACH,eAAO,MAAM,OAAO,GAAI,OAAO,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsG7B,CAAA;AAEN;;;GAGG;AACH,wBAAsB,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,GAAG,UAAU,iBAQ3F"}
|