@chainlink/ccip-sdk 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 (273) hide show
  1. package/README.md +127 -80
  2. package/dist/aptos/hasher.d.ts.map +1 -1
  3. package/dist/aptos/hasher.js +7 -6
  4. package/dist/aptos/hasher.js.map +1 -1
  5. package/dist/aptos/index.d.ts +7 -2
  6. package/dist/aptos/index.d.ts.map +1 -1
  7. package/dist/aptos/index.js +29 -20
  8. package/dist/aptos/index.js.map +1 -1
  9. package/dist/aptos/logs.d.ts +5 -3
  10. package/dist/aptos/logs.d.ts.map +1 -1
  11. package/dist/aptos/logs.js +64 -27
  12. package/dist/aptos/logs.js.map +1 -1
  13. package/dist/aptos/token.d.ts.map +1 -1
  14. package/dist/aptos/token.js +2 -1
  15. package/dist/aptos/token.js.map +1 -1
  16. package/dist/aptos/types.js +6 -6
  17. package/dist/aptos/types.js.map +1 -1
  18. package/dist/chain.d.ts +36 -11
  19. package/dist/chain.d.ts.map +1 -1
  20. package/dist/chain.js +34 -2
  21. package/dist/chain.js.map +1 -1
  22. package/dist/commits.d.ts +2 -3
  23. package/dist/commits.d.ts.map +1 -1
  24. package/dist/commits.js +19 -8
  25. package/dist/commits.js.map +1 -1
  26. package/dist/errors/CCIPError.d.ts +48 -0
  27. package/dist/errors/CCIPError.d.ts.map +1 -0
  28. package/dist/errors/CCIPError.js +65 -0
  29. package/dist/errors/CCIPError.js.map +1 -0
  30. package/dist/errors/codes.d.ts +120 -0
  31. package/dist/errors/codes.d.ts.map +1 -0
  32. package/dist/errors/codes.js +156 -0
  33. package/dist/errors/codes.js.map +1 -0
  34. package/dist/errors/index.d.ts +26 -0
  35. package/dist/errors/index.d.ts.map +1 -0
  36. package/dist/errors/index.js +51 -0
  37. package/dist/errors/index.js.map +1 -0
  38. package/dist/errors/recovery.d.ts +6 -0
  39. package/dist/errors/recovery.d.ts.map +1 -0
  40. package/dist/errors/recovery.js +118 -0
  41. package/dist/errors/recovery.js.map +1 -0
  42. package/dist/errors/specialized.d.ts +637 -0
  43. package/dist/errors/specialized.d.ts.map +1 -0
  44. package/dist/errors/specialized.js +1298 -0
  45. package/dist/errors/specialized.js.map +1 -0
  46. package/dist/errors/utils.d.ts +11 -0
  47. package/dist/errors/utils.d.ts.map +1 -0
  48. package/dist/errors/utils.js +61 -0
  49. package/dist/errors/utils.js.map +1 -0
  50. package/dist/evm/abi/CommitStore_1_5.js +1 -1
  51. package/dist/evm/abi/LockReleaseTokenPool_1_5.js +1 -1
  52. package/dist/evm/abi/OffRamp_1_5.js +1 -1
  53. package/dist/evm/abi/OnRamp_1_5.js +1 -1
  54. package/dist/evm/abi/PriceRegistry_1_2.d.ts +443 -0
  55. package/dist/evm/abi/PriceRegistry_1_2.d.ts.map +1 -0
  56. package/dist/evm/abi/PriceRegistry_1_2.js +439 -0
  57. package/dist/evm/abi/PriceRegistry_1_2.js.map +1 -0
  58. package/dist/evm/const.d.ts +1 -0
  59. package/dist/evm/const.d.ts.map +1 -1
  60. package/dist/evm/const.js +2 -0
  61. package/dist/evm/const.js.map +1 -1
  62. package/dist/evm/hasher.d.ts.map +1 -1
  63. package/dist/evm/hasher.js +7 -6
  64. package/dist/evm/hasher.js.map +1 -1
  65. package/dist/evm/index.d.ts +9 -13
  66. package/dist/evm/index.d.ts.map +1 -1
  67. package/dist/evm/index.js +85 -68
  68. package/dist/evm/index.js.map +1 -1
  69. package/dist/evm/logs.d.ts.map +1 -1
  70. package/dist/evm/logs.js +47 -16
  71. package/dist/evm/logs.js.map +1 -1
  72. package/dist/evm/messages.d.ts +7 -6
  73. package/dist/evm/messages.d.ts.map +1 -1
  74. package/dist/evm/offchain.js +1 -1
  75. package/dist/evm/offchain.js.map +1 -1
  76. package/dist/evm/types.d.ts +10 -0
  77. package/dist/evm/types.d.ts.map +1 -0
  78. package/dist/evm/types.js +2 -0
  79. package/dist/evm/types.js.map +1 -0
  80. package/dist/execution.d.ts.map +1 -1
  81. package/dist/execution.js +9 -5
  82. package/dist/execution.js.map +1 -1
  83. package/dist/extra-args.d.ts.map +1 -1
  84. package/dist/extra-args.js +4 -3
  85. package/dist/extra-args.js.map +1 -1
  86. package/dist/gas.d.ts.map +1 -1
  87. package/dist/gas.js +3 -2
  88. package/dist/gas.js.map +1 -1
  89. package/dist/hasher/hasher.d.ts.map +1 -1
  90. package/dist/hasher/hasher.js +2 -1
  91. package/dist/hasher/hasher.js.map +1 -1
  92. package/dist/hasher/merklemulti.d.ts.map +1 -1
  93. package/dist/hasher/merklemulti.js +9 -8
  94. package/dist/hasher/merklemulti.js.map +1 -1
  95. package/dist/index.d.ts +5 -2
  96. package/dist/index.d.ts.map +1 -1
  97. package/dist/index.js +6 -2
  98. package/dist/index.js.map +1 -1
  99. package/dist/offchain.d.ts.map +1 -1
  100. package/dist/offchain.js +5 -8
  101. package/dist/offchain.js.map +1 -1
  102. package/dist/requests.d.ts +1 -1
  103. package/dist/requests.d.ts.map +1 -1
  104. package/dist/requests.js +37 -43
  105. package/dist/requests.js.map +1 -1
  106. package/dist/selectors.d.ts.map +1 -1
  107. package/dist/selectors.js +22 -0
  108. package/dist/selectors.js.map +1 -1
  109. package/dist/solana/cleanup.d.ts +2 -2
  110. package/dist/solana/cleanup.d.ts.map +1 -1
  111. package/dist/solana/cleanup.js +2 -3
  112. package/dist/solana/cleanup.js.map +1 -1
  113. package/dist/solana/exec.d.ts.map +1 -1
  114. package/dist/solana/exec.js +12 -12
  115. package/dist/solana/exec.js.map +1 -1
  116. package/dist/solana/hasher.d.ts.map +1 -1
  117. package/dist/solana/hasher.js +6 -5
  118. package/dist/solana/hasher.js.map +1 -1
  119. package/dist/solana/index.d.ts +30 -13
  120. package/dist/solana/index.d.ts.map +1 -1
  121. package/dist/solana/index.js +96 -143
  122. package/dist/solana/index.js.map +1 -1
  123. package/dist/solana/logs.d.ts +15 -0
  124. package/dist/solana/logs.d.ts.map +1 -0
  125. package/dist/solana/logs.js +106 -0
  126. package/dist/solana/logs.js.map +1 -0
  127. package/dist/solana/offchain.d.ts.map +1 -1
  128. package/dist/solana/offchain.js +6 -5
  129. package/dist/solana/offchain.js.map +1 -1
  130. package/dist/solana/patchBorsh.d.ts.map +1 -1
  131. package/dist/solana/patchBorsh.js +3 -2
  132. package/dist/solana/patchBorsh.js.map +1 -1
  133. package/dist/solana/send.d.ts.map +1 -1
  134. package/dist/solana/send.js +8 -7
  135. package/dist/solana/send.js.map +1 -1
  136. package/dist/solana/utils.d.ts +7 -8
  137. package/dist/solana/utils.d.ts.map +1 -1
  138. package/dist/solana/utils.js +23 -11
  139. package/dist/solana/utils.js.map +1 -1
  140. package/dist/sui/discovery.d.ts +18 -0
  141. package/dist/sui/discovery.d.ts.map +1 -0
  142. package/dist/sui/discovery.js +116 -0
  143. package/dist/sui/discovery.js.map +1 -0
  144. package/dist/sui/events.d.ts +36 -0
  145. package/dist/sui/events.d.ts.map +1 -0
  146. package/dist/sui/events.js +179 -0
  147. package/dist/sui/events.js.map +1 -0
  148. package/dist/sui/hasher.d.ts.map +1 -1
  149. package/dist/sui/hasher.js +6 -5
  150. package/dist/sui/hasher.js.map +1 -1
  151. package/dist/sui/index.d.ts +69 -41
  152. package/dist/sui/index.d.ts.map +1 -1
  153. package/dist/sui/index.js +402 -65
  154. package/dist/sui/index.js.map +1 -1
  155. package/dist/sui/manuallyExec/encoder.d.ts +8 -0
  156. package/dist/sui/manuallyExec/encoder.d.ts.map +1 -0
  157. package/dist/sui/manuallyExec/encoder.js +76 -0
  158. package/dist/sui/manuallyExec/encoder.js.map +1 -0
  159. package/dist/sui/manuallyExec/index.d.ts +37 -0
  160. package/dist/sui/manuallyExec/index.d.ts.map +1 -0
  161. package/dist/sui/manuallyExec/index.js +81 -0
  162. package/dist/sui/manuallyExec/index.js.map +1 -0
  163. package/dist/sui/objects.d.ts +46 -0
  164. package/dist/sui/objects.d.ts.map +1 -0
  165. package/dist/sui/objects.js +259 -0
  166. package/dist/sui/objects.js.map +1 -0
  167. package/dist/ton/bindings/offramp.d.ts +48 -0
  168. package/dist/ton/bindings/offramp.d.ts.map +1 -0
  169. package/dist/ton/bindings/offramp.js +63 -0
  170. package/dist/ton/bindings/offramp.js.map +1 -0
  171. package/dist/ton/bindings/onramp.d.ts +40 -0
  172. package/dist/ton/bindings/onramp.d.ts.map +1 -0
  173. package/dist/ton/bindings/onramp.js +51 -0
  174. package/dist/ton/bindings/onramp.js.map +1 -0
  175. package/dist/ton/bindings/router.d.ts +47 -0
  176. package/dist/ton/bindings/router.d.ts.map +1 -0
  177. package/dist/ton/bindings/router.js +51 -0
  178. package/dist/ton/bindings/router.js.map +1 -0
  179. package/dist/ton/exec.d.ts +18 -0
  180. package/dist/ton/exec.d.ts.map +1 -0
  181. package/dist/ton/exec.js +28 -0
  182. package/dist/ton/exec.js.map +1 -0
  183. package/dist/ton/hasher.d.ts +27 -0
  184. package/dist/ton/hasher.d.ts.map +1 -0
  185. package/dist/ton/hasher.js +134 -0
  186. package/dist/ton/hasher.js.map +1 -0
  187. package/dist/ton/index.d.ts +247 -0
  188. package/dist/ton/index.d.ts.map +1 -0
  189. package/dist/ton/index.js +781 -0
  190. package/dist/ton/index.js.map +1 -0
  191. package/dist/ton/logs.d.ts +26 -0
  192. package/dist/ton/logs.d.ts.map +1 -0
  193. package/dist/ton/logs.js +126 -0
  194. package/dist/ton/logs.js.map +1 -0
  195. package/dist/ton/types.d.ts +37 -0
  196. package/dist/ton/types.d.ts.map +1 -0
  197. package/dist/ton/types.js +92 -0
  198. package/dist/ton/types.js.map +1 -0
  199. package/dist/ton/utils.d.ts +67 -0
  200. package/dist/ton/utils.d.ts.map +1 -0
  201. package/dist/ton/utils.js +425 -0
  202. package/dist/ton/utils.js.map +1 -0
  203. package/dist/types.d.ts +4 -2
  204. package/dist/types.d.ts.map +1 -1
  205. package/dist/types.js +1 -0
  206. package/dist/types.js.map +1 -1
  207. package/dist/utils.d.ts +10 -0
  208. package/dist/utils.d.ts.map +1 -1
  209. package/dist/utils.js +52 -17
  210. package/dist/utils.js.map +1 -1
  211. package/package.json +12 -10
  212. package/src/aptos/hasher.ts +10 -6
  213. package/src/aptos/index.ts +50 -31
  214. package/src/aptos/logs.ts +85 -29
  215. package/src/aptos/token.ts +5 -1
  216. package/src/aptos/types.ts +6 -6
  217. package/src/chain.ts +83 -12
  218. package/src/commits.ts +23 -11
  219. package/src/errors/CCIPError.ts +86 -0
  220. package/src/errors/codes.ts +179 -0
  221. package/src/errors/index.ts +175 -0
  222. package/src/errors/recovery.ts +170 -0
  223. package/src/errors/specialized.ts +1655 -0
  224. package/src/errors/utils.ts +73 -0
  225. package/src/evm/abi/CommitStore_1_5.ts +1 -1
  226. package/src/evm/abi/LockReleaseTokenPool_1_5.ts +1 -1
  227. package/src/evm/abi/OffRamp_1_5.ts +1 -1
  228. package/src/evm/abi/OnRamp_1_5.ts +1 -1
  229. package/src/evm/abi/PriceRegistry_1_2.ts +438 -0
  230. package/src/evm/const.ts +2 -0
  231. package/src/evm/hasher.ts +7 -6
  232. package/src/evm/index.ts +104 -86
  233. package/src/evm/logs.ts +64 -16
  234. package/src/evm/messages.ts +14 -14
  235. package/src/evm/offchain.ts +1 -1
  236. package/src/evm/types.ts +11 -0
  237. package/src/execution.ts +13 -9
  238. package/src/extra-args.ts +4 -3
  239. package/src/gas.ts +10 -3
  240. package/src/hasher/hasher.ts +2 -1
  241. package/src/hasher/merklemulti.ts +18 -8
  242. package/src/index.ts +14 -2
  243. package/src/offchain.ts +10 -14
  244. package/src/requests.ts +51 -53
  245. package/src/selectors.ts +23 -0
  246. package/src/solana/cleanup.ts +2 -4
  247. package/src/solana/exec.ts +13 -13
  248. package/src/solana/hasher.ts +9 -5
  249. package/src/solana/index.ts +126 -200
  250. package/src/solana/logs.ts +155 -0
  251. package/src/solana/offchain.ts +10 -7
  252. package/src/solana/patchBorsh.ts +3 -2
  253. package/src/solana/send.ts +14 -7
  254. package/src/solana/utils.ts +31 -17
  255. package/src/sui/discovery.ts +163 -0
  256. package/src/sui/events.ts +328 -0
  257. package/src/sui/hasher.ts +6 -5
  258. package/src/sui/index.ts +528 -80
  259. package/src/sui/manuallyExec/encoder.ts +88 -0
  260. package/src/sui/manuallyExec/index.ts +137 -0
  261. package/src/sui/objects.ts +358 -0
  262. package/src/ton/bindings/offramp.ts +96 -0
  263. package/src/ton/bindings/onramp.ts +72 -0
  264. package/src/ton/bindings/router.ts +65 -0
  265. package/src/ton/exec.ts +44 -0
  266. package/src/ton/hasher.ts +184 -0
  267. package/src/ton/index.ts +989 -0
  268. package/src/ton/logs.ts +157 -0
  269. package/src/ton/types.ts +143 -0
  270. package/src/ton/utils.ts +514 -0
  271. package/src/types.ts +6 -2
  272. package/src/utils.ts +58 -23
  273. package/tsconfig.json +2 -1
package/README.md CHANGED
@@ -1,118 +1,165 @@
1
1
  # @chainlink/ccip-sdk
2
2
 
3
- ## Typescript SDK to interact with CCIP.
4
-
5
- This tool can be used to query and interact with [CCIP](https://ccip.chain.link) contracts deployed
6
- in supported blockchains, through its publicly accessible data and methods, requiring only
7
- compatible RPCs for each involved network.
3
+ TypeScript SDK for integrating [CCIP](https://chain.link/cross-chain) (Cross-Chain Interoperability Protocol) into your applications.
8
4
 
9
5
  > [!IMPORTANT]
10
6
  > This tool is provided under an MIT license and is for convenience and illustration purposes only.
11
7
 
12
- ## Installation
8
+ 📖 **[Full SDK Documentation](https://github.com/smartcontractkit/ccip-tools-ts/blob/main/docs/sdk/index.md)** - Complete API reference, advanced patterns, and tree-shaking guide.
13
9
 
14
- To install it from latest NpmJS release, do:
10
+ ## Installation
15
11
 
16
- ```sh
17
- npm install @smartcontractkit/ccip-sdk
12
+ ```bash
13
+ npm install @chainlink/ccip-sdk
18
14
  ```
19
15
 
20
16
  > [!NOTE]
21
- > NodeJS version v20+ is required, with v23+ recommended.
17
+ > Node.js v20+ required. v23+ recommended for native TypeScript execution.
22
18
 
23
- ## Chain
19
+ ## Chain Classes
24
20
 
25
- The [Chain](./src/chain.ts) abstract class provides the specification of an interface which must be
26
- implemented to provide support for a given chain family. Static methods are required by the
27
- `ChainStatic` interface, and are used for functions that don't require an instance or provider.
21
+ The SDK provides a unified `Chain` class interface for each blockchain family. Create instances using `fromUrl`:
28
22
 
29
- Currently, there are implementations for:
30
- - [EVM](./src/evm/index.ts): uses [ethers.js](https://docs.ethers.org/v6/)
31
- - [Solana](./src/solana/index.ts): uses [solana-web3.js](https://github.com/solana-foundation/solana-web3.js) and [Anchor](https://github.com/solana-foundation/anchor)
32
- - [Aptos](./src/aptos/index.ts): uses [aptos-ts-sdk](https://github.com/aptos-labs/aptos-ts-sdk)
23
+ ```ts
24
+ import { EVMChain, SolanaChain, AptosChain } from '@chainlink/ccip-sdk'
33
25
 
34
- We try to not expose or require users to comply with these libraries, returning generic values and
35
- errors, but some factories may receive specific providers types.
26
+ // EVM chains (Ethereum, Arbitrum, Optimism, etc.)
27
+ const evmChain = await EVMChain.fromUrl('https://ethereum-sepolia-rpc.publicnode.com')
36
28
 
37
- The Chain class defines some methods, which can be overriden by specific families to offer optimized
38
- implementations. One can extend any of the subclasses and get them registered in the
39
- [supportedChains](./src/supported-chains.ts) mapping, or even construct directly.
29
+ // Solana
30
+ const solanaChain = await SolanaChain.fromUrl('https://api.devnet.solana.com')
40
31
 
41
- ```ts
42
- import { SolanaChain, supportedChains, ChainFamily } from '@chainlink/ccip-sdk'
43
- class MySolanaChain extends SolanaChain {
44
- // ...custom implementation
45
- }
46
- supportedChains[ChainFamily.Solana] = MySolanaChain
32
+ // Aptos
33
+ const aptosChain = await AptosChain.fromUrl('https://api.testnet.aptoslabs.com/v1')
47
34
  ```
48
35
 
49
- ## Async constructors
36
+ ## Common Tasks
50
37
 
51
- Each chain family class has an static async constructor, which can be used to create a new instance
52
- of the chain class with a provider. The only common/required signature is
53
- `fromUrl(url: string): Promise<Chain>`, but each chain family class usually also provides a
54
- constructor from the specific library provider (e.g. `EVMChain.fromProvider(provider: ethers.JsonRpcApiProvider)`)
38
+ ### Track a CCIP Message
55
39
 
56
- ## Wallet
40
+ ```ts
41
+ import { EVMChain } from '@chainlink/ccip-sdk'
57
42
 
58
- Transaction-sending high-level methods, namely `Chain.sendMessage` and `Chain.executeReport`,
59
- require a `wallet` property in last `opts` parameter. This is marked as `unknown` in generic Chain
60
- abstract class, but required to be an asynchronous signer wallet respective to each chain family:
43
+ const source = await EVMChain.fromUrl('https://ethereum-sepolia-rpc.publicnode.com')
61
44
 
62
- - `EVMChain` requires an `ethers` `Signer`
63
- - `SolanaChain` requires an `anchor` `Wallet`
64
- - `AptosChain` requires an `aptos-ts-sdk` `Account`
45
+ // Fetch message details from a transaction
46
+ const requests = await source.fetchRequestsInTx(
47
+ '0xb8b27d9811509e3c364c9afaf8f14d8ebc65dec06327493981d7f7f4a00f2918'
48
+ )
65
49
 
66
- These signers are used in the simplest way possible (i.e. using address accessors where needed,
67
- and `async signTransaction`-like methods), so developers may be able to easily inject their own
68
- implementations, to get called or intercept signature requests by these methods.
50
+ const request = requests[0]
51
+ console.log('Message ID:', request.message.messageId)
52
+ console.log('Sender:', request.message.sender)
53
+ console.log('Destination chain:', request.lane.destChainSelector)
54
+ ```
69
55
 
70
- Optionally, `sendMessage` and `executeReport` also have companion `generateUnsignedSendMessage` and
71
- `generateUnsignedExecuteReport` methods, returning chain-family-specific unsigned data, which one
72
- can use to sign and send the transactions manually.
56
+ ### Get Fee Estimate
73
57
 
74
- Notice that these are lower-level methods, and require the developer to handle the signing and
75
- sending of the transactions themselves, skipping niceties from the higher-level methods, like
76
- retries, gas estimation and transactions batching.
58
+ ```ts
59
+ import { EVMChain, networkInfo } from '@chainlink/ccip-sdk'
77
60
 
78
- > [!TIP]
79
- > For EVMChain on Browsers, one can use `chain.provider.getSigner(numberOrAddress)` to fetch a
80
- provider-backed signer from compatible wallets, like Metamask.
61
+ const source = await EVMChain.fromUrl('https://ethereum-sepolia-rpc.publicnode.com')
62
+ const router = '0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59' // Sepolia Router
63
+ const destSelector = networkInfo('ethereum-testnet-sepolia-arbitrum-1').chainSelector
81
64
 
82
- ## Tree-shakers
65
+ const fee = await source.getFee(router, destSelector, {
66
+ receiver: '0xYourReceiverAddress',
67
+ data: '0x48656c6c6f', // "Hello" in hex
68
+ extraArgs: { gasLimit: 200_000 }, // Gas limit for receiver's ccipReceive callback
69
+ })
83
70
 
84
- If you're using a tree-shaking bundler, make sure to `import { allSupportedChains } from '@chainlink/ccip-sdk'`,
85
- or only the chains you want to support, e.g. `import { EVMChain, SolanaChain } from '@chainlink/ccip-sdk'`.
86
- This should ensure those chain family implementations are registered and used by utility functions.
71
+ console.log('Fee in native token:', fee.toString())
72
+ ```
87
73
 
88
- ## Recipes
74
+ ### Send a Cross-Chain Message
89
75
 
90
- ### Fetching details of a CCIP message
91
76
  ```ts
92
- import { AptosChain } from '@chainlink/ccip-sdk'
93
- const source = await AptosChain.fromUrl('mainnet')
94
- const requests = await source.fetchRequestsInTx('0xTransactionHash')
95
- console.log(requests[0])
77
+ import { EVMChain, networkInfo } from '@chainlink/ccip-sdk'
78
+ import { Wallet } from 'ethers'
79
+
80
+ const source = await EVMChain.fromUrl('https://ethereum-sepolia-rpc.publicnode.com')
81
+ const wallet = new Wallet('YOUR_PRIVATE_KEY', source.provider)
82
+
83
+ const router = '0x0BF3dE8c5D3e8A2B34D2BEeB17ABfCeBaf363A59'
84
+ const destSelector = networkInfo('ethereum-testnet-sepolia-arbitrum-1').chainSelector
85
+
86
+ // Get fee first
87
+ const fee = await source.getFee(router, destSelector, {
88
+ receiver: '0xYourReceiverAddress',
89
+ data: '0x48656c6c6f',
90
+ extraArgs: {
91
+ gasLimit: 200_000,
92
+ allowOutOfOrderExecution: true, // Don't wait for prior messages from this sender
93
+ },
94
+ })
95
+
96
+ // Send the message
97
+ const request = await source.sendMessage(
98
+ router,
99
+ destSelector,
100
+ {
101
+ receiver: '0xYourReceiverAddress',
102
+ data: '0x48656c6c6f',
103
+ extraArgs: { gasLimit: 200_000, allowOutOfOrderExecution: true },
104
+ fee,
105
+ },
106
+ { wallet }
107
+ )
108
+
109
+ console.log('Transaction hash:', request.tx.hash)
110
+ console.log('Message ID:', request.message.messageId)
96
111
  ```
97
112
 
98
- ### Sending a message
113
+ ## Wallet Configuration
114
+
115
+ Transaction-sending methods require a chain-specific wallet:
116
+
117
+ | Chain | Wallet Type | Example |
118
+ | ------ | --------------- | ------------------------------------------ |
119
+ | EVM | `ethers.Signer` | `new Wallet(privateKey, provider)` |
120
+ | Solana | `anchor.Wallet` | `new Wallet(Keypair.fromSecretKey(...))` |
121
+ | Aptos | `aptos.Account` | `Account.fromPrivateKey(...)` |
122
+
123
+ ### Unsigned Transactions
124
+
125
+ For custom signing workflows (e.g., browser wallets, hardware wallets), use the `generateUnsigned*` methods:
126
+
99
127
  ```ts
100
- import { type AnyMessage, SolanaChain, networkInfo } from '@chainlink/ccip-sdk'
101
- const source = await SolanaChain.fromUrl('https://api.mainnet-beta.solana.com')
102
- const router = 'Ccip842gzYHhvdDkSyi2YVCoAWPbYJoApMFzSxQroE9C' // https://docs.chain.link/ccip/directory/mainnet
103
- const dest = networkInfo('ethereum-mainnet').chainSelector
104
- const message: AnyMessage = {
105
- receiver: '0xReceiverAddress',
106
- data: '0xbeef',
107
- extraArgs: { gasLimit: 250000, allowOutOfOrderExecution: true },
108
- }
109
- const fee = await source.getFee(router, dest, message)
110
- const request = await source.sendMessage(
128
+ // Generate unsigned transaction data
129
+ const unsignedTx = await source.generateUnsignedSendMessage(
130
+ senderAddress, // Your wallet address
111
131
  router,
112
- dest,
113
- { ...message, fee },
114
- { wallet: process.env['SOLANA_PRIVATE_KEY'] },
132
+ destSelector,
133
+ message
115
134
  )
116
- const messageId = request.message.header.messageId
117
- const txHash = request.tx.hash
135
+
136
+ // Sign and send with your own logic
137
+ const signedTx = await customSigner.sign(unsignedTx)
138
+ await customSender.broadcast(signedTx)
118
139
  ```
140
+
141
+ For EVM chains in browsers, get a signer from the connected wallet:
142
+
143
+ ```ts
144
+ const signer = await source.provider.getSigner()
145
+ ```
146
+
147
+ ## Supported Chains
148
+
149
+ | Chain Family | Class | Library | Status |
150
+ | ------------ | ------------- | ------------------------------------------------------------------------ | -------------- |
151
+ | EVM | `EVMChain` | [ethers.js v6](https://docs.ethers.org/v6/) | Supported |
152
+ | Solana | `SolanaChain` | [solana-web3.js](https://github.com/solana-foundation/solana-web3.js) | Supported |
153
+ | Aptos | `AptosChain` | [aptos-ts-sdk](https://github.com/aptos-labs/aptos-ts-sdk) | Supported |
154
+ | Sui | `SuiChain` | [@mysten/sui](https://github.com/MystenLabs/sui) | In Development |
155
+ | TON | `TONChain` | [@ton/ton](https://github.com/ton-org/ton) | In Development |
156
+
157
+ ## Related
158
+
159
+ - [@chainlink/ccip-cli](https://www.npmjs.com/package/@chainlink/ccip-cli) - Command-line interface
160
+ - [CCIP Official Docs](https://docs.chain.link/ccip) - Protocol documentation
161
+ - [CCIP Directory](https://docs.chain.link/ccip/directory) - Router addresses
162
+
163
+ ## License
164
+
165
+ MIT
@@ -1 +1 @@
1
- {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/aptos/hasher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,KAAK,UAAU,EAAyB,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIlF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACtE,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,OAAO,GACR,EAAE;IACD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,CAAA;CACX,GAAG,UAAU,CAAC,CAAC,CAAC,CAUhB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,EAChE,YAAY,EAAE,MAAM,GACnB,MAAM,CA6CR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,qBAAqB,MAAM,EAC3B,mBAAmB,MAAM,EACzB,QAAQ,MAAM,KACb,MAOF,CAAA"}
1
+ {"version":3,"file":"hasher.d.ts","sourceRoot":"","sources":["../../src/aptos/hasher.ts"],"names":[],"mappings":"AAOA,OAAO,EAAE,KAAK,UAAU,EAAyB,MAAM,qBAAqB,CAAA;AAC5E,OAAO,EAAE,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAIlF;;;;GAIG;AACH,wBAAgB,kBAAkB,CAAC,CAAC,SAAS,WAAW,GAAG,WAAW,EAAE,EACtE,mBAAmB,EACnB,iBAAiB,EACjB,MAAM,EACN,OAAO,GACR,EAAE;IACD,mBAAmB,EAAE,MAAM,CAAA;IAC3B,iBAAiB,EAAE,MAAM,CAAA;IACzB,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,EAAE,CAAC,CAAA;CACX,GAAG,UAAU,CAAC,CAAC,CAAC,CAUhB;AAED;;;;;GAKG;AACH,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,gBAAgB,GAAG,WAAW,CAAC,OAAO,WAAW,CAAC,IAAI,CAAC,EAChE,YAAY,EAAE,MAAM,GACnB,MAAM,CA6CR;AAED;;;;;;GAMG;AACH,eAAO,MAAM,iBAAiB,GAC5B,qBAAqB,MAAM,EAC3B,mBAAmB,MAAM,EACzB,QAAQ,MAAM,KACb,MAOF,CAAA"}
@@ -1,4 +1,5 @@
1
1
  import { concat, id, keccak256, zeroPadValue } from 'ethers';
2
+ import { CCIPAptosHasherVersionUnsupportedError, CCIPExtraArgsInvalidError, } from "../errors/index.js";
2
3
  import { decodeExtraArgs } from "../extra-args.js";
3
4
  import { LEAF_DOMAIN_SEPARATOR } from "../hasher/common.js";
4
5
  import { CCIPVersion } from "../types.js";
@@ -16,7 +17,7 @@ export function getAptosLeafHasher({ sourceChainSelector, destChainSelector, onR
16
17
  metadataHash = hashAptosMetadata(sourceChainSelector, destChainSelector, onRamp);
17
18
  return ((message) => hashV16AptosMessage(message, metadataHash));
18
19
  default:
19
- throw new Error(`Unsupported hasher version for Aptos: ${version}`);
20
+ throw new CCIPAptosHasherVersionUnsupportedError(version);
20
21
  }
21
22
  }
22
23
  /**
@@ -28,20 +29,20 @@ export function getAptosLeafHasher({ sourceChainSelector, destChainSelector, onR
28
29
  export function hashV16AptosMessage(message, metadataHash) {
29
30
  let gasLimit;
30
31
  if (!('gasLimit' in message)) {
31
- const parsedArgs = decodeExtraArgs(message.extraArgs, networkInfo(message.header.sourceChainSelector).family);
32
+ const parsedArgs = decodeExtraArgs(message.extraArgs, networkInfo(message.sourceChainSelector).family);
32
33
  if (!parsedArgs || !('gasLimit' in parsedArgs))
33
- throw new Error('Invalid extraArgs, not EVMExtraArgsV1|2');
34
+ throw new CCIPExtraArgsInvalidError('Aptos', message.extraArgs);
34
35
  gasLimit = parsedArgs.gasLimit;
35
36
  }
36
37
  else {
37
38
  gasLimit = message.gasLimit;
38
39
  }
39
40
  const innerHash = concat([
40
- message.header.messageId,
41
+ message.messageId,
41
42
  zeroPadValue(message.receiver, 32),
42
- encodeNumber(message.header.sequenceNumber),
43
+ encodeNumber(message.sequenceNumber),
43
44
  encodeNumber(gasLimit), // Aptos as dest uses EVMExtraArgs
44
- encodeNumber(message.header.nonce),
45
+ encodeNumber(message.nonce),
45
46
  ]);
46
47
  const tokenHash = concat([
47
48
  encodeNumber(message.tokenAmounts.length),
@@ -1 +1 @@
1
- {"version":3,"file":"hasher.js","sourceRoot":"","sources":["../../src/aptos/hasher.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"hasher.js","sourceRoot":"","sources":["../../src/aptos/hasher.ts"],"names":[],"mappings":"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"}
@@ -3,15 +3,16 @@ import { type BytesLike } from 'ethers';
3
3
  import type { PickDeep } from 'type-fest';
4
4
  import { type LogFilter, type TokenInfo, type TokenPoolRemote, Chain } from '../chain.ts';
5
5
  import { type EVMExtraArgsV2, type ExtraArgs, type SVMExtraArgsV1 } from '../extra-args.ts';
6
+ import { type UnsignedAptosTx } from './types.ts';
6
7
  import type { LeafHasher } from '../hasher/common.ts';
7
8
  import { type AnyMessage, type CCIPMessage, type CCIPRequest, type ChainTransaction, type CommitReport, type ExecutionReceipt, type ExecutionReport, type Lane, type Log_, type NetworkInfo, type OffchainTokenData, type WithLogger, ChainFamily } from '../types.ts';
8
- import { type UnsignedAptosTx } from './types.ts';
9
9
  /**
10
10
  * Aptos chain implementation supporting Aptos networks.
11
11
  */
12
12
  export declare class AptosChain extends Chain<typeof ChainFamily.Aptos> {
13
13
  static readonly family: "aptos";
14
14
  static readonly decimals = 8;
15
+ readonly destroy$: Promise<void>;
15
16
  provider: Aptos;
16
17
  getTokenInfo: (token: string) => Promise<TokenInfo>;
17
18
  _getAccountModulesNames: (address: string) => Promise<string[]>;
@@ -57,7 +58,7 @@ export declare class AptosChain extends Chain<typeof ChainFamily.Aptos> {
57
58
  page?: number;
58
59
  }): Promise<CCIPRequest>;
59
60
  /** {@inheritDoc Chain.fetchAllMessagesInBatch} */
60
- fetchAllMessagesInBatch<R extends PickDeep<CCIPRequest, 'lane' | `log.${'topics' | 'address' | 'blockNumber'}` | 'message.header.sequenceNumber'>>(request: R, commit: Pick<CommitReport, 'minSeqNr' | 'maxSeqNr'>, opts?: {
61
+ fetchAllMessagesInBatch<R extends PickDeep<CCIPRequest, 'lane' | `log.${'topics' | 'address' | 'blockNumber'}` | 'message.sequenceNumber'>>(request: R, commit: Pick<CommitReport, 'minSeqNr' | 'maxSeqNr'>, opts?: {
61
62
  page?: number;
62
63
  }): Promise<R['message'][]>;
63
64
  /** {@inheritDoc Chain.typeAndVersion} */
@@ -123,6 +124,10 @@ export declare class AptosChain extends Chain<typeof ChainFamily.Aptos> {
123
124
  * @returns Aptos address (0x-prefixed hex, 32 bytes padded).
124
125
  */
125
126
  static getAddress(bytes: BytesLike): string;
127
+ /**
128
+ * Validates a transaction hash format for Aptos
129
+ */
130
+ static isTxHash(v: unknown): v is `0x${string}`;
126
131
  /**
127
132
  * Gets the leaf hasher for Aptos destination chains.
128
133
  * @param lane - Lane configuration.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aptos/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/aptos/index.ts"],"names":[],"mappings":"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"}
@@ -1,9 +1,11 @@
1
1
  import { Aptos, AptosConfig, Deserializer, Network, SimpleTransaction, TransactionResponseType, } from '@aptos-labs/ts-sdk';
2
2
  import { concat, dataLength, dataSlice, decodeBase64, getBytes, hexlify, isBytesLike, isHexString, zeroPadValue, } from 'ethers';
3
3
  import { memoize } from 'micro-memoize';
4
- import { generateUnsignedCcipSend, getFee } from "./send.js";
5
4
  import { Chain } from "../chain.js";
5
+ import { generateUnsignedCcipSend, getFee } from "./send.js";
6
+ import { CCIPAptosAddressInvalidError, CCIPAptosExtraArgsEncodingError, CCIPAptosExtraArgsV2RequiredError, CCIPAptosLogInvalidError, CCIPAptosNetworkUnknownError, CCIPAptosRegistryTypeInvalidError, CCIPAptosTokenNotRegisteredError, CCIPAptosTransactionInvalidError, CCIPAptosTransactionTypeInvalidError, CCIPAptosWalletInvalidError, CCIPError, CCIPOnRampRequiredError, } from "../errors/index.js";
6
7
  import { EVMExtraArgsV2Tag, SVMExtraArgsV1Tag, } from "../extra-args.js";
8
+ import { EVMExtraArgsV2Codec, SVMExtraArgsV1Codec, isAptosAccount, } from "./types.js";
7
9
  import { supportedChains } from "../supported-chains.js";
8
10
  import { ChainFamily, } from "../types.js";
9
11
  import { convertKeysToCamelCase, decodeAddress, decodeOnRampAddress, getAddressBytes, getDataBytes, networkInfo, parseTypeAndVersion, util, } from "../utils.js";
@@ -11,7 +13,6 @@ import { generateUnsignedExecuteReport } from "./exec.js";
11
13
  import { getAptosLeafHasher } from "./hasher.js";
12
14
  import { getUserTxByVersion, getVersionTimestamp, streamAptosLogs } from "./logs.js";
13
15
  import { getTokenInfo } from "./token.js";
14
- import { EVMExtraArgsV2Codec, SVMExtraArgsV1Codec, isAptosAccount, } from "./types.js";
15
16
  import { decodeMessage, fetchAllMessagesInBatch, fetchCCIPRequestById, fetchCCIPRequestsInTx, } from "../requests.js";
16
17
  /**
17
18
  * Aptos chain implementation supporting Aptos networks.
@@ -22,6 +23,7 @@ export class AptosChain extends Chain {
22
23
  }
23
24
  static family = ChainFamily.Aptos;
24
25
  static decimals = 8;
26
+ destroy$;
25
27
  provider;
26
28
  getTokenInfo;
27
29
  _getAccountModulesNames;
@@ -32,6 +34,7 @@ export class AptosChain extends Chain {
32
34
  */
33
35
  constructor(provider, network, ctx) {
34
36
  super(network, ctx);
37
+ this.destroy$ = new Promise((resolve) => (this.destroy = resolve));
35
38
  this.provider = provider;
36
39
  this.typeAndVersion = memoize(this.typeAndVersion.bind(this), {
37
40
  maxSize: 100,
@@ -99,7 +102,7 @@ export class AptosChain extends Chain {
99
102
  else if (url.includes('local'))
100
103
  network = Network.LOCAL;
101
104
  else
102
- throw new Error(`Unknown Aptos network: ${util.inspect(url)}`);
105
+ throw new CCIPAptosNetworkUnknownError(util.inspect(url));
103
106
  const config = new AptosConfig({
104
107
  network,
105
108
  fullnode: typeof url === 'string' && url.includes('://') ? url : undefined,
@@ -123,10 +126,10 @@ export class AptosChain extends Chain {
123
126
  tx = await getUserTxByVersion(this.provider, +hashOrVersion);
124
127
  }
125
128
  else {
126
- throw new Error(`Invalid transaction hash or version: ${hashOrVersion}`);
129
+ throw new CCIPAptosTransactionInvalidError(hashOrVersion);
127
130
  }
128
131
  if (tx.type !== TransactionResponseType.User)
129
- throw new Error('Invalid transaction type');
132
+ throw new CCIPAptosTransactionTypeInvalidError();
130
133
  return {
131
134
  hash: tx.hash,
132
135
  blockNumber: +tx.version,
@@ -144,7 +147,7 @@ export class AptosChain extends Chain {
144
147
  }
145
148
  /** {@inheritDoc Chain.getLogs} */
146
149
  async *getLogs(opts) {
147
- yield* streamAptosLogs(this.provider, opts);
150
+ yield* streamAptosLogs(this, opts);
148
151
  }
149
152
  /** {@inheritDoc Chain.fetchRequestsInTx} */
150
153
  async fetchRequestsInTx(tx) {
@@ -153,7 +156,7 @@ export class AptosChain extends Chain {
153
156
  /** {@inheritDoc Chain.fetchRequestById} */
154
157
  async fetchRequestById(messageId, onRamp, opts) {
155
158
  if (!onRamp)
156
- throw new Error('onRamp is required');
159
+ throw new CCIPOnRampRequiredError();
157
160
  return fetchCCIPRequestById(this, messageId, {
158
161
  address: await this.getOnRampForRouter(onRamp, 0n),
159
162
  ...opts,
@@ -227,14 +230,14 @@ export class AptosChain extends Chain {
227
230
  firstErr ??= err;
228
231
  }
229
232
  }
230
- throw firstErr ?? new Error(`Could not view 'get_token' in ${tokenPool}`);
233
+ throw CCIPError.from(firstErr ?? `Could not view 'get_token' in ${tokenPool}`, 'UNKNOWN');
231
234
  }
232
235
  /** {@inheritDoc Chain.getTokenAdminRegistryFor} */
233
236
  async getTokenAdminRegistryFor(address) {
234
237
  const registry = address.split('::')[0] + '::token_admin_registry';
235
238
  const [type] = await this.typeAndVersion(registry);
236
239
  if (type !== 'TokenAdminRegistry') {
237
- throw new Error(`Expected ${registry} to have TokenAdminRegistry type, got=${type}`);
240
+ throw new CCIPAptosRegistryTypeInvalidError(registry, type);
238
241
  }
239
242
  return registry;
240
243
  }
@@ -247,7 +250,7 @@ export class AptosChain extends Chain {
247
250
  const { data } = log;
248
251
  if ((typeof data !== 'string' || !data.startsWith('{')) &&
249
252
  (typeof data !== 'object' || data == null || isBytesLike(data)))
250
- throw new Error(`invalid log data: ${util.inspect(log)}`);
253
+ throw new CCIPAptosLogInvalidError(util.inspect(log));
251
254
  // offload massaging to generic decodeJsonMessage
252
255
  try {
253
256
  return decodeMessage(data);
@@ -305,7 +308,7 @@ export class AptosChain extends Chain {
305
308
  accounts: extraArgs.accounts.map(getAddressBytes),
306
309
  }).toBytes(),
307
310
  ]);
308
- throw new Error('Aptos can only encode EVMExtraArgsV2 & SVMExtraArgsV1');
311
+ throw new CCIPAptosExtraArgsEncodingError();
309
312
  }
310
313
  /**
311
314
  * Decodes commit reports from an Aptos log event.
@@ -315,7 +318,7 @@ export class AptosChain extends Chain {
315
318
  */
316
319
  static decodeCommits({ data }, lane) {
317
320
  if (!data || typeof data != 'object')
318
- throw new Error('invalid aptos log');
321
+ throw new CCIPAptosLogInvalidError(data);
319
322
  const data_ = data;
320
323
  if (!data_.blessed_merkle_roots)
321
324
  return;
@@ -335,7 +338,7 @@ export class AptosChain extends Chain {
335
338
  */
336
339
  static decodeReceipt({ data }) {
337
340
  if (!data || typeof data != 'object')
338
- throw new Error('invalid aptos log');
341
+ throw new CCIPAptosLogInvalidError(data);
339
342
  const data_ = data;
340
343
  if (!data_.message_id || !data_.state)
341
344
  return;
@@ -359,9 +362,15 @@ export class AptosChain extends Chain {
359
362
  }
360
363
  }
361
364
  if (dataLength(bytes) > 32)
362
- throw new Error(`Invalid aptos address: "${hexlify(bytes)}"`);
365
+ throw new CCIPAptosAddressInvalidError(hexlify(bytes));
363
366
  return zeroPadValue(bytes, 32) + suffix;
364
367
  }
368
+ /**
369
+ * Validates a transaction hash format for Aptos
370
+ */
371
+ static isTxHash(v) {
372
+ return typeof v === 'string' && /^0x[0-9a-fA-F]{64}$/.test(v);
373
+ }
365
374
  /**
366
375
  * Gets the leaf hasher for Aptos destination chains.
367
376
  * @param lane - Lane configuration.
@@ -388,7 +397,7 @@ export class AptosChain extends Chain {
388
397
  async sendMessage(router, destChainSelector, message, opts) {
389
398
  const account = opts.wallet;
390
399
  if (!isAptosAccount(account)) {
391
- throw new Error(`${this.constructor.name}.sendMessage requires an Aptos account wallet, got=${util.inspect(opts.wallet)}`);
400
+ throw new CCIPAptosWalletInvalidError(this.constructor.name, util.inspect(opts.wallet));
392
401
  }
393
402
  const unsignedTx = await this.generateUnsignedSendMessage(account.accountAddress.toString(), router, destChainSelector, message, opts);
394
403
  const unsigned = SimpleTransaction.deserialize(new Deserializer(unsignedTx.transactions[0]));
@@ -413,7 +422,7 @@ export class AptosChain extends Chain {
413
422
  /** generate raw/unsigned `manually_execute` transaction data */
414
423
  async generateUnsignedExecuteReport(payer, offRamp, execReport, opts) {
415
424
  if (!('allowOutOfOrderExecution' in execReport.message && 'gasLimit' in execReport.message)) {
416
- throw new Error('Aptos expects EVMExtraArgsV2 reports');
425
+ throw new CCIPAptosExtraArgsV2RequiredError();
417
426
  }
418
427
  const tx = await generateUnsignedExecuteReport(this.provider, payer, offRamp, execReport, opts);
419
428
  return {
@@ -425,7 +434,7 @@ export class AptosChain extends Chain {
425
434
  async executeReport(offRamp, execReport, opts) {
426
435
  const account = opts.wallet;
427
436
  if (!isAptosAccount(account)) {
428
- throw new Error(`${this.constructor.name}.sendMessage requires an Aptos account wallet, got=${util.inspect(opts.wallet)}`);
437
+ throw new CCIPAptosWalletInvalidError(this.constructor.name, util.inspect(opts.wallet));
429
438
  }
430
439
  const unsignedTx = await this.generateUnsignedExecuteReport(account.accountAddress.toString(), offRamp, execReport, opts);
431
440
  const unsigned = SimpleTransaction.deserialize(new Deserializer(unsignedTx.transactions[0]));
@@ -478,7 +487,7 @@ export class AptosChain extends Chain {
478
487
  },
479
488
  });
480
489
  if (administrator.match(/^0x0*$/))
481
- throw new Error(`Token=${token} not registered in registry=${registry}`);
490
+ throw new CCIPAptosTokenNotRegisteredError(token, registry);
482
491
  return {
483
492
  administrator,
484
493
  ...(!pendingAdministrator.match(/^0x0*$/) && { pendingAdministrator }),
@@ -518,7 +527,7 @@ export class AptosChain extends Chain {
518
527
  firstErr ??= err;
519
528
  }
520
529
  }
521
- throw firstErr ?? new Error(`Could not get tokenPool configs from ${tokenPool}`);
530
+ throw CCIPError.from(firstErr ?? `Could not get tokenPool configs from ${tokenPool}`, 'UNKNOWN');
522
531
  }
523
532
  /** {@inheritDoc Chain.getTokenPoolRemotes} */
524
533
  async getTokenPoolRemotes(tokenPool, remoteChainSelector) {
@@ -596,7 +605,7 @@ export class AptosChain extends Chain {
596
605
  firstErr ??= err;
597
606
  }
598
607
  }
599
- throw firstErr ?? new Error(`Could not view 'get_remote_token' in ${tokenPool}`);
608
+ throw CCIPError.from(firstErr ?? `Could not view 'get_remote_token' in ${tokenPool}`, 'UNKNOWN');
600
609
  }
601
610
  /** {@inheritDoc Chain.getFeeTokens} */
602
611
  async getFeeTokens(router) {