@hyperlane-xyz/sealevel-sdk 27.0.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 (222) hide show
  1. package/LICENSE.md +193 -0
  2. package/dist/accounts/mint.d.ts +43 -0
  3. package/dist/accounts/mint.d.ts.map +1 -0
  4. package/dist/accounts/mint.js +159 -0
  5. package/dist/accounts/mint.js.map +1 -0
  6. package/dist/accounts/multisig-ism-message-id.d.ts +14 -0
  7. package/dist/accounts/multisig-ism-message-id.d.ts.map +1 -0
  8. package/dist/accounts/multisig-ism-message-id.js +32 -0
  9. package/dist/accounts/multisig-ism-message-id.js.map +1 -0
  10. package/dist/accounts/test-ism.d.ts +5 -0
  11. package/dist/accounts/test-ism.d.ts.map +1 -0
  12. package/dist/accounts/test-ism.js +8 -0
  13. package/dist/accounts/test-ism.js.map +1 -0
  14. package/dist/accounts/token.d.ts +60 -0
  15. package/dist/accounts/token.d.ts.map +1 -0
  16. package/dist/accounts/token.js +127 -0
  17. package/dist/accounts/token.js.map +1 -0
  18. package/dist/clients/protocol.d.ts +21 -0
  19. package/dist/clients/protocol.d.ts.map +1 -0
  20. package/dist/clients/protocol.js +51 -0
  21. package/dist/clients/protocol.js.map +1 -0
  22. package/dist/clients/provider.d.ts +66 -0
  23. package/dist/clients/provider.d.ts.map +1 -0
  24. package/dist/clients/provider.js +237 -0
  25. package/dist/clients/provider.js.map +1 -0
  26. package/dist/clients/signer.d.ts +61 -0
  27. package/dist/clients/signer.d.ts.map +1 -0
  28. package/dist/clients/signer.js +314 -0
  29. package/dist/clients/signer.js.map +1 -0
  30. package/dist/codecs/account-data.d.ts +8 -0
  31. package/dist/codecs/account-data.d.ts.map +1 -0
  32. package/dist/codecs/account-data.js +20 -0
  33. package/dist/codecs/account-data.js.map +1 -0
  34. package/dist/codecs/binary.d.ts +34 -0
  35. package/dist/codecs/binary.d.ts.map +1 -0
  36. package/dist/codecs/binary.js +165 -0
  37. package/dist/codecs/binary.js.map +1 -0
  38. package/dist/codecs/shared.d.ts +81 -0
  39. package/dist/codecs/shared.d.ts.map +1 -0
  40. package/dist/codecs/shared.js +241 -0
  41. package/dist/codecs/shared.js.map +1 -0
  42. package/dist/constants.d.ts +13 -0
  43. package/dist/constants.d.ts.map +1 -0
  44. package/dist/constants.js +21 -0
  45. package/dist/constants.js.map +1 -0
  46. package/dist/deploy/program-deployer.d.ts +51 -0
  47. package/dist/deploy/program-deployer.d.ts.map +1 -0
  48. package/dist/deploy/program-deployer.js +176 -0
  49. package/dist/deploy/program-deployer.js.map +1 -0
  50. package/dist/deploy/resolve-program.d.ts +9 -0
  51. package/dist/deploy/resolve-program.d.ts.map +1 -0
  52. package/dist/deploy/resolve-program.js +24 -0
  53. package/dist/deploy/resolve-program.js.map +1 -0
  54. package/dist/generated/core-addresses.d.ts +14 -0
  55. package/dist/generated/core-addresses.d.ts.map +1 -0
  56. package/dist/generated/core-addresses.js +55 -0
  57. package/dist/generated/core-addresses.js.map +1 -0
  58. package/dist/hook/hook-artifact-manager.d.ts +17 -0
  59. package/dist/hook/hook-artifact-manager.d.ts.map +1 -0
  60. package/dist/hook/hook-artifact-manager.js +58 -0
  61. package/dist/hook/hook-artifact-manager.js.map +1 -0
  62. package/dist/hook/hook-query.d.ts +25 -0
  63. package/dist/hook/hook-query.d.ts.map +1 -0
  64. package/dist/hook/hook-query.js +46 -0
  65. package/dist/hook/hook-query.js.map +1 -0
  66. package/dist/hook/igp-hook.d.ts +28 -0
  67. package/dist/hook/igp-hook.d.ts.map +1 -0
  68. package/dist/hook/igp-hook.js +242 -0
  69. package/dist/hook/igp-hook.js.map +1 -0
  70. package/dist/hook/merkle-tree-hook.d.ts +23 -0
  71. package/dist/hook/merkle-tree-hook.d.ts.map +1 -0
  72. package/dist/hook/merkle-tree-hook.js +46 -0
  73. package/dist/hook/merkle-tree-hook.js.map +1 -0
  74. package/dist/hyperlane/program-bytes.d.ts +20 -0
  75. package/dist/hyperlane/program-bytes.d.ts.map +1 -0
  76. package/dist/hyperlane/program-bytes.js +80534 -0
  77. package/dist/hyperlane/program-bytes.js.map +1 -0
  78. package/dist/index.d.ts +21 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +27 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/instructions/igp.d.ts +66 -0
  83. package/dist/instructions/igp.d.ts.map +1 -0
  84. package/dist/instructions/igp.js +168 -0
  85. package/dist/instructions/igp.js.map +1 -0
  86. package/dist/instructions/interfaces.d.ts +52 -0
  87. package/dist/instructions/interfaces.d.ts.map +1 -0
  88. package/dist/instructions/interfaces.js +126 -0
  89. package/dist/instructions/interfaces.js.map +1 -0
  90. package/dist/instructions/loader.d.ts +11 -0
  91. package/dist/instructions/loader.d.ts.map +1 -0
  92. package/dist/instructions/loader.js +24 -0
  93. package/dist/instructions/loader.js.map +1 -0
  94. package/dist/instructions/multisig-ism-message-id.d.ts +32 -0
  95. package/dist/instructions/multisig-ism-message-id.d.ts.map +1 -0
  96. package/dist/instructions/multisig-ism-message-id.js +105 -0
  97. package/dist/instructions/multisig-ism-message-id.js.map +1 -0
  98. package/dist/instructions/test-ism.d.ts +16 -0
  99. package/dist/instructions/test-ism.d.ts.map +1 -0
  100. package/dist/instructions/test-ism.js +47 -0
  101. package/dist/instructions/test-ism.js.map +1 -0
  102. package/dist/instructions/token.d.ts +62 -0
  103. package/dist/instructions/token.d.ts.map +1 -0
  104. package/dist/instructions/token.js +257 -0
  105. package/dist/instructions/token.js.map +1 -0
  106. package/dist/instructions/utils.d.ts +19 -0
  107. package/dist/instructions/utils.d.ts.map +1 -0
  108. package/dist/instructions/utils.js +36 -0
  109. package/dist/instructions/utils.js.map +1 -0
  110. package/dist/ism/ism-artifact-manager.d.ts +14 -0
  111. package/dist/ism/ism-artifact-manager.d.ts.map +1 -0
  112. package/dist/ism/ism-artifact-manager.js +49 -0
  113. package/dist/ism/ism-artifact-manager.js.map +1 -0
  114. package/dist/ism/ism-query.d.ts +22 -0
  115. package/dist/ism/ism-query.d.ts.map +1 -0
  116. package/dist/ism/ism-query.js +53 -0
  117. package/dist/ism/ism-query.js.map +1 -0
  118. package/dist/ism/multisig-ism.d.ts +33 -0
  119. package/dist/ism/multisig-ism.d.ts.map +1 -0
  120. package/dist/ism/multisig-ism.js +113 -0
  121. package/dist/ism/multisig-ism.js.map +1 -0
  122. package/dist/ism/test-ism.d.ts +20 -0
  123. package/dist/ism/test-ism.d.ts.map +1 -0
  124. package/dist/ism/test-ism.js +57 -0
  125. package/dist/ism/test-ism.js.map +1 -0
  126. package/dist/pda.d.ts +17 -0
  127. package/dist/pda.d.ts.map +1 -0
  128. package/dist/pda.js +118 -0
  129. package/dist/pda.js.map +1 -0
  130. package/dist/rpc.d.ts +9 -0
  131. package/dist/rpc.d.ts.map +1 -0
  132. package/dist/rpc.js +21 -0
  133. package/dist/rpc.js.map +1 -0
  134. package/dist/testing/index.d.ts +3 -0
  135. package/dist/testing/index.d.ts.map +1 -0
  136. package/dist/testing/index.js +3 -0
  137. package/dist/testing/index.js.map +1 -0
  138. package/dist/testing/setup.d.ts +33 -0
  139. package/dist/testing/setup.d.ts.map +1 -0
  140. package/dist/testing/setup.js +120 -0
  141. package/dist/testing/setup.js.map +1 -0
  142. package/dist/testing/solana-container.d.ts +32 -0
  143. package/dist/testing/solana-container.d.ts.map +1 -0
  144. package/dist/testing/solana-container.js +289 -0
  145. package/dist/testing/solana-container.js.map +1 -0
  146. package/dist/tests/collateral-token.e2e-test.d.ts +2 -0
  147. package/dist/tests/collateral-token.e2e-test.d.ts.map +1 -0
  148. package/dist/tests/collateral-token.e2e-test.js +112 -0
  149. package/dist/tests/collateral-token.e2e-test.js.map +1 -0
  150. package/dist/tests/deploy.e2e-test.d.ts +2 -0
  151. package/dist/tests/deploy.e2e-test.d.ts.map +1 -0
  152. package/dist/tests/deploy.e2e-test.js +76 -0
  153. package/dist/tests/deploy.e2e-test.js.map +1 -0
  154. package/dist/tests/hook.e2e-test.d.ts +2 -0
  155. package/dist/tests/hook.e2e-test.d.ts.map +1 -0
  156. package/dist/tests/hook.e2e-test.js +176 -0
  157. package/dist/tests/hook.e2e-test.js.map +1 -0
  158. package/dist/tests/ism.e2e-test.d.ts +2 -0
  159. package/dist/tests/ism.e2e-test.d.ts.map +1 -0
  160. package/dist/tests/ism.e2e-test.js +167 -0
  161. package/dist/tests/ism.e2e-test.js.map +1 -0
  162. package/dist/tests/native-token.e2e-test.d.ts +2 -0
  163. package/dist/tests/native-token.e2e-test.d.ts.map +1 -0
  164. package/dist/tests/native-token.e2e-test.js +93 -0
  165. package/dist/tests/native-token.e2e-test.js.map +1 -0
  166. package/dist/tests/provider.e2e-test.d.ts +2 -0
  167. package/dist/tests/provider.e2e-test.d.ts.map +1 -0
  168. package/dist/tests/provider.e2e-test.js +87 -0
  169. package/dist/tests/provider.e2e-test.js.map +1 -0
  170. package/dist/tests/read-token.e2e-test.d.ts +2 -0
  171. package/dist/tests/read-token.e2e-test.d.ts.map +1 -0
  172. package/dist/tests/read-token.e2e-test.js +79 -0
  173. package/dist/tests/read-token.e2e-test.js.map +1 -0
  174. package/dist/tests/scale.unit-test.d.ts +2 -0
  175. package/dist/tests/scale.unit-test.d.ts.map +1 -0
  176. package/dist/tests/scale.unit-test.js +65 -0
  177. package/dist/tests/scale.unit-test.js.map +1 -0
  178. package/dist/tests/synthetic-token.e2e-test.d.ts +2 -0
  179. package/dist/tests/synthetic-token.e2e-test.d.ts.map +1 -0
  180. package/dist/tests/synthetic-token.e2e-test.js +115 -0
  181. package/dist/tests/synthetic-token.e2e-test.js.map +1 -0
  182. package/dist/tests/warp-token-suite.d.ts +26 -0
  183. package/dist/tests/warp-token-suite.d.ts.map +1 -0
  184. package/dist/tests/warp-token-suite.js +208 -0
  185. package/dist/tests/warp-token-suite.js.map +1 -0
  186. package/dist/tx.d.ts +23 -0
  187. package/dist/tx.d.ts.map +1 -0
  188. package/dist/tx.js +43 -0
  189. package/dist/tx.js.map +1 -0
  190. package/dist/types.d.ts +50 -0
  191. package/dist/types.d.ts.map +1 -0
  192. package/dist/types.js +2 -0
  193. package/dist/types.js.map +1 -0
  194. package/dist/warp/collateral-token.d.ts +21 -0
  195. package/dist/warp/collateral-token.d.ts.map +1 -0
  196. package/dist/warp/collateral-token.js +129 -0
  197. package/dist/warp/collateral-token.js.map +1 -0
  198. package/dist/warp/native-token.d.ts +21 -0
  199. package/dist/warp/native-token.d.ts.map +1 -0
  200. package/dist/warp/native-token.js +99 -0
  201. package/dist/warp/native-token.js.map +1 -0
  202. package/dist/warp/synthetic-token.d.ts +21 -0
  203. package/dist/warp/synthetic-token.d.ts.map +1 -0
  204. package/dist/warp/synthetic-token.js +180 -0
  205. package/dist/warp/synthetic-token.js.map +1 -0
  206. package/dist/warp/types.d.ts +16 -0
  207. package/dist/warp/types.d.ts.map +1 -0
  208. package/dist/warp/types.js +2 -0
  209. package/dist/warp/types.js.map +1 -0
  210. package/dist/warp/warp-artifact-manager.d.ts +14 -0
  211. package/dist/warp/warp-artifact-manager.d.ts.map +1 -0
  212. package/dist/warp/warp-artifact-manager.js +52 -0
  213. package/dist/warp/warp-artifact-manager.js.map +1 -0
  214. package/dist/warp/warp-query.d.ts +30 -0
  215. package/dist/warp/warp-query.d.ts.map +1 -0
  216. package/dist/warp/warp-query.js +66 -0
  217. package/dist/warp/warp-query.js.map +1 -0
  218. package/dist/warp/warp-tx.d.ts +64 -0
  219. package/dist/warp/warp-tx.d.ts.map +1 -0
  220. package/dist/warp/warp-tx.js +291 -0
  221. package/dist/warp/warp-tx.js.map +1 -0
  222. package/package.json +76 -0
@@ -0,0 +1,314 @@
1
+ import { addSignersToTransactionMessage, createKeyPairSignerFromBytes, createKeyPairSignerFromPrivateKeyBytes, getBase58Encoder, getBase64EncodedWireTransaction, getSignatureFromTransaction, signTransactionMessageWithSigners, } from '@solana/kit';
2
+ import { assert, rootLogger, strip0x } from '@hyperlane-xyz/utils';
3
+ import { createRpc } from '../rpc.js';
4
+ import { DEFAULT_COMPUTE_UNITS, buildTransactionMessage } from '../tx.js';
5
+ import { SvmProvider } from './provider.js';
6
+ class SvmTransactionError extends Error {
7
+ constructor(signature, cause) {
8
+ super(`Transaction failed: ${signature}, err: ${JSON.stringify(cause, (_k, v) => (typeof v === 'bigint' ? v.toString() : v))}`);
9
+ this.name = 'SvmTransactionError';
10
+ this.cause = cause;
11
+ }
12
+ }
13
+ const base58Encoder = getBase58Encoder();
14
+ function parseKeyBytes(privateKey) {
15
+ // Try hex (32 bytes = 64 hex chars, 64 bytes = 128 hex chars)
16
+ const stripped = strip0x(privateKey);
17
+ if (/^[0-9a-fA-F]{64}$/.test(stripped)) {
18
+ return new Uint8Array(Buffer.from(stripped, 'hex'));
19
+ }
20
+ if (/^[0-9a-fA-F]{128}$/.test(stripped)) {
21
+ return new Uint8Array(Buffer.from(stripped, 'hex'));
22
+ }
23
+ // Try base58
24
+ let keyBytes;
25
+ try {
26
+ keyBytes = base58Encoder.encode(privateKey);
27
+ }
28
+ catch (err) {
29
+ throw new Error(`Failed to parse private key. Expected hex (64 or 128 chars) or base58. ` +
30
+ `Base58 error: ${err instanceof Error ? err.message : String(err)}`);
31
+ }
32
+ if (keyBytes.length !== 32 && keyBytes.length !== 64) {
33
+ throw new Error(`Base58-decoded key has invalid length: ${keyBytes.length}. Expected 32 (private key) or 64 (keypair).`);
34
+ }
35
+ return keyBytes;
36
+ }
37
+ export class SvmSigner extends SvmProvider {
38
+ signer;
39
+ logger = rootLogger.child({ module: 'SvmSigner' });
40
+ constructor(rpc, rpcUrls, signer) {
41
+ super(rpc, rpcUrls);
42
+ this.signer = signer;
43
+ }
44
+ static async connectWithSigner(rpcUrls, privateKey, _extraParams) {
45
+ assert(rpcUrls.length > 0, 'At least one RPC URL is required');
46
+ const rpc = createRpc(rpcUrls[0]);
47
+ const keyBytes = parseKeyBytes(privateKey);
48
+ let keypair;
49
+ if (keyBytes.length === 32) {
50
+ keypair = await createKeyPairSignerFromPrivateKeyBytes(keyBytes);
51
+ }
52
+ else if (keyBytes.length === 64) {
53
+ keypair = await createKeyPairSignerFromBytes(keyBytes);
54
+ }
55
+ else {
56
+ throw new Error(`Invalid key length: ${keyBytes.length}. Expected 32 (private key) or 64 (keypair).`);
57
+ }
58
+ return new SvmSigner(rpc, rpcUrls, keypair);
59
+ }
60
+ getSignerAddress() {
61
+ return this.signer.address;
62
+ }
63
+ supportsTransactionBatching() {
64
+ return false;
65
+ }
66
+ async transactionToPrintableJson(transaction) {
67
+ return {
68
+ instructions: transaction.instructions.map((ix) => ({
69
+ programAddress: ix.programAddress,
70
+ accounts: ix.accounts,
71
+ data: ix.data ? Buffer.from(ix.data).toString('hex') : undefined,
72
+ })),
73
+ computeUnits: transaction.computeUnits,
74
+ };
75
+ }
76
+ /**
77
+ * Builds, signs, and sends a transaction with a confirmed blockhash.
78
+ * Retries on blockhash-not-found errors from the RPC.
79
+ * Returns the raw transaction bytes for rebroadcasting and the
80
+ * lastValidBlockHeight for block-height-based expiry detection.
81
+ */
82
+ async signAndSend(tx, maxAttempts = 3) {
83
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
84
+ const { value: latestBlockhash } = await this.rpc
85
+ .getLatestBlockhash({ commitment: 'confirmed' })
86
+ .send();
87
+ let txMessage = buildTransactionMessage({
88
+ instructions: tx.instructions,
89
+ feePayer: this.signer,
90
+ recentBlockhash: latestBlockhash.blockhash,
91
+ lastValidBlockHeight: latestBlockhash.lastValidBlockHeight,
92
+ computeUnits: tx.computeUnits ?? DEFAULT_COMPUTE_UNITS,
93
+ });
94
+ if (tx.additionalSigners?.length) {
95
+ txMessage = addSignersToTransactionMessage(tx.additionalSigners, txMessage);
96
+ }
97
+ const signedTx = await signTransactionMessageWithSigners(txMessage);
98
+ const signature = getSignatureFromTransaction(signedTx);
99
+ try {
100
+ const rawTx = getBase64EncodedWireTransaction(signedTx);
101
+ await this.rpc
102
+ .sendTransaction(rawTx, {
103
+ encoding: 'base64',
104
+ skipPreflight: tx.skipPreflight ?? false,
105
+ })
106
+ .send();
107
+ return {
108
+ signature,
109
+ rawTx,
110
+ lastValidBlockHeight: latestBlockhash.lastValidBlockHeight,
111
+ };
112
+ }
113
+ catch (error) {
114
+ const msg = error instanceof Error ? error.message : String(error);
115
+ if (msg.includes('Blockhash not found') && attempt < maxAttempts - 1) {
116
+ this.logger.warn(`Blockhash not found on send attempt ${attempt + 1}, retrying with fresh blockhash`);
117
+ continue;
118
+ }
119
+ throw error;
120
+ }
121
+ }
122
+ throw new Error('signAndSend: all attempts exhausted');
123
+ }
124
+ /**
125
+ * Evaluates a signature status result. Throws on error, returns
126
+ * `{ confirmed: true, slot }` if confirmed/finalized, `{ confirmed: false }`
127
+ * if still progressing, or `null` if the signature was not found.
128
+ */
129
+ checkSignatureResult(signature, result) {
130
+ if (!result)
131
+ return null;
132
+ if (result.err) {
133
+ throw new SvmTransactionError(signature, result.err);
134
+ }
135
+ if (result.confirmationStatus === 'confirmed' ||
136
+ result.confirmationStatus === 'finalized') {
137
+ return { confirmed: true, slot: result.slot };
138
+ }
139
+ return { confirmed: false };
140
+ }
141
+ async send(tx) {
142
+ let { signature, rawTx, lastValidBlockHeight } = await this.signAndSend(tx);
143
+ let confirmed = false;
144
+ let slot = 0n;
145
+ const maxPolls = 60;
146
+ let delay = 500;
147
+ for (let i = 0; i < maxPolls && !confirmed; i++) {
148
+ await new Promise((resolve) => setTimeout(resolve, delay));
149
+ delay = Math.min(delay * 1.5, 4000);
150
+ try {
151
+ // Check signature status
152
+ const status = await this.rpc.getSignatureStatuses([signature]).send();
153
+ const check = this.checkSignatureResult(signature, status.value[0]);
154
+ if (check?.confirmed) {
155
+ confirmed = true;
156
+ slot = check.slot;
157
+ break;
158
+ }
159
+ if (check) {
160
+ // Transaction seen (e.g. 'processed') — keep polling, do NOT resubmit
161
+ continue;
162
+ }
163
+ // Transaction not found — check if blockhash expired via block height
164
+ const currentBlockHeight = await this.rpc
165
+ .getBlockHeight({ commitment: 'confirmed' })
166
+ .send();
167
+ if (currentBlockHeight <= lastValidBlockHeight) {
168
+ // Blockhash still valid — rebroadcast same signed transaction
169
+ this.logger.debug('Rebroadcasting transaction');
170
+ await this.rpc
171
+ .sendTransaction(rawTx, {
172
+ encoding: 'base64',
173
+ skipPreflight: tx.skipPreflight ?? false,
174
+ })
175
+ .send();
176
+ continue;
177
+ }
178
+ // Blockhash expired — deep check with transaction history search
179
+ const historyStatus = await this.rpc
180
+ .getSignatureStatuses([signature], {
181
+ searchTransactionHistory: true,
182
+ })
183
+ .send();
184
+ const historyCheck = this.checkSignatureResult(signature, historyStatus.value[0]);
185
+ if (historyCheck?.confirmed) {
186
+ confirmed = true;
187
+ slot = historyCheck.slot;
188
+ break;
189
+ }
190
+ if (historyCheck) {
191
+ // Found in history but still progressing — keep polling
192
+ continue;
193
+ }
194
+ // Blockhash expired and signature never seen — safe to resubmit
195
+ this.logger.warn('Blockhash expired and transaction not found, resubmitting');
196
+ ({ signature, rawTx, lastValidBlockHeight } =
197
+ await this.signAndSend(tx));
198
+ delay = 500;
199
+ }
200
+ catch (error) {
201
+ if (error instanceof SvmTransactionError) {
202
+ throw error;
203
+ }
204
+ this.logger.warn(`Polling attempt ${i + 1} failed`, { error });
205
+ }
206
+ }
207
+ if (!confirmed) {
208
+ throw new Error(`Transaction not confirmed within polling timeout: ${signature}`);
209
+ }
210
+ return { signature, slot };
211
+ }
212
+ async sendAndConfirmTransaction(transaction) {
213
+ return this.send(transaction);
214
+ }
215
+ async sendAndConfirmBatchTransactions(_transactions) {
216
+ throw new Error('Sealevel does not support transaction batching');
217
+ }
218
+ // ### TX CORE ###
219
+ async createMailbox(_req) {
220
+ throw new Error('createMailbox not supported on Sealevel');
221
+ }
222
+ async setDefaultIsm(_req) {
223
+ throw new Error('setDefaultIsm not supported on Sealevel');
224
+ }
225
+ async setDefaultHook(_req) {
226
+ throw new Error('setDefaultHook not supported on Sealevel');
227
+ }
228
+ async setRequiredHook(_req) {
229
+ throw new Error('setRequiredHook not supported on Sealevel');
230
+ }
231
+ async setMailboxOwner(_req) {
232
+ throw new Error('setMailboxOwner not supported on Sealevel');
233
+ }
234
+ async createMerkleRootMultisigIsm(_req) {
235
+ throw new Error('createMerkleRootMultisigIsm not supported on Sealevel');
236
+ }
237
+ async createMessageIdMultisigIsm(_req) {
238
+ throw new Error('createMessageIdMultisigIsm not supported on Sealevel');
239
+ }
240
+ async createRoutingIsm(_req) {
241
+ throw new Error('createRoutingIsm not supported on Sealevel');
242
+ }
243
+ async setRoutingIsmRoute(_req) {
244
+ throw new Error('setRoutingIsmRoute not supported on Sealevel');
245
+ }
246
+ async removeRoutingIsmRoute(_req) {
247
+ throw new Error('removeRoutingIsmRoute not supported on Sealevel');
248
+ }
249
+ async setRoutingIsmOwner(_req) {
250
+ throw new Error('setRoutingIsmOwner not supported on Sealevel');
251
+ }
252
+ async createNoopIsm(_req) {
253
+ throw new Error('createNoopIsm not supported on Sealevel');
254
+ }
255
+ async createMerkleTreeHook(_req) {
256
+ throw new Error('createMerkleTreeHook not supported on Sealevel');
257
+ }
258
+ async createInterchainGasPaymasterHook(_req) {
259
+ throw new Error('createInterchainGasPaymasterHook not supported on Sealevel');
260
+ }
261
+ async setInterchainGasPaymasterHookOwner(_req) {
262
+ throw new Error('setInterchainGasPaymasterHookOwner not supported on Sealevel');
263
+ }
264
+ async setDestinationGasConfig(_req) {
265
+ throw new Error('setDestinationGasConfig not supported on Sealevel');
266
+ }
267
+ async removeDestinationGasConfig(_req) {
268
+ throw new Error('removeDestinationGasConfig not supported on Sealevel');
269
+ }
270
+ async createNoopHook(_req) {
271
+ throw new Error('createNoopHook not supported on Sealevel');
272
+ }
273
+ async createValidatorAnnounce(_req) {
274
+ throw new Error('createValidatorAnnounce not supported on Sealevel');
275
+ }
276
+ async createProxyAdmin(_req) {
277
+ throw new Error('createProxyAdmin not supported on Sealevel');
278
+ }
279
+ async setProxyAdminOwner(_req) {
280
+ throw new Error('setProxyAdminOwner not supported on Sealevel');
281
+ }
282
+ // ### TX WARP ###
283
+ async createNativeToken(_req) {
284
+ throw new Error('createNativeToken not supported on Sealevel, use the Artifact API instead');
285
+ }
286
+ async createCollateralToken(_req) {
287
+ throw new Error('createCollateralToken not supported on Sealevel, use the Artifact API instead');
288
+ }
289
+ async createSyntheticToken(_req) {
290
+ throw new Error('createSyntheticToken not supported on Sealevel, use the Artifact API instead');
291
+ }
292
+ async setTokenOwner(_req) {
293
+ throw new Error('setTokenOwner not supported on Sealevel, use the Artifact API instead');
294
+ }
295
+ async setTokenIsm(_req) {
296
+ throw new Error('setTokenIsm not supported on Sealevel, use the Artifact API instead');
297
+ }
298
+ async setTokenHook(_req) {
299
+ throw new Error('setTokenHook not supported on Sealevel, use the Artifact API instead');
300
+ }
301
+ async enrollRemoteRouter(_req) {
302
+ throw new Error('enrollRemoteRouter not supported on Sealevel, use the Artifact API instead');
303
+ }
304
+ async unenrollRemoteRouter(_req) {
305
+ throw new Error('unenrollRemoteRouter not supported on Sealevel, use the Artifact API instead');
306
+ }
307
+ async transfer(_req) {
308
+ throw new Error('transfer not supported on Sealevel, use the Artifact API instead');
309
+ }
310
+ async remoteTransfer(_req) {
311
+ throw new Error('remoteTransfer not supported on Sealevel, use the Artifact API instead');
312
+ }
313
+ }
314
+ //# sourceMappingURL=signer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/clients/signer.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ import { ByteCursor } from './binary.js';
2
+ export interface DecodedAccountData<T> {
3
+ initialized: boolean;
4
+ data: T | null;
5
+ }
6
+ export declare function decodeAccountData<T>(raw: Uint8Array, decodeInner: (cursor: ByteCursor) => T): DecodedAccountData<T>;
7
+ export declare function decodeDiscriminatorPrefixed<T>(cursor: ByteCursor, expectedDiscriminator: Uint8Array, decodeInner: (cursor: ByteCursor) => T): T;
8
+ //# sourceMappingURL=account-data.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-data.d.ts","sourceRoot":"","sources":["../../src/codecs/account-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,MAAM,WAAW,kBAAkB,CAAC,CAAC;IACnC,WAAW,EAAE,OAAO,CAAC;IACrB,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;CAChB;AAED,wBAAgB,iBAAiB,CAAC,CAAC,EACjC,GAAG,EAAE,UAAU,EACf,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,GACrC,kBAAkB,CAAC,CAAC,CAAC,CAQvB;AAED,wBAAgB,2BAA2B,CAAC,CAAC,EAC3C,MAAM,EAAE,UAAU,EAClB,qBAAqB,EAAE,UAAU,EACjC,WAAW,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,CAAC,GACrC,CAAC,CASH"}
@@ -0,0 +1,20 @@
1
+ import { ByteCursor } from './binary.js';
2
+ export function decodeAccountData(raw, decodeInner) {
3
+ if (raw.length === 0)
4
+ return { initialized: false, data: null };
5
+ const cursor = new ByteCursor(raw);
6
+ const initialized = cursor.readBool();
7
+ if (!initialized) {
8
+ return { initialized: false, data: null };
9
+ }
10
+ return { initialized: true, data: decodeInner(cursor) };
11
+ }
12
+ export function decodeDiscriminatorPrefixed(cursor, expectedDiscriminator, decodeInner) {
13
+ const discriminator = cursor.readBytes(expectedDiscriminator.length);
14
+ const mismatch = discriminator.some((value, i) => value !== expectedDiscriminator[i]);
15
+ if (mismatch) {
16
+ throw new Error('Invalid discriminator');
17
+ }
18
+ return decodeInner(cursor);
19
+ }
20
+ //# sourceMappingURL=account-data.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-data.js","sourceRoot":"","sources":["../../src/codecs/account-data.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAOzC,MAAM,UAAU,iBAAiB,CAC/B,GAAe,EACf,WAAsC;IAEtC,IAAI,GAAG,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAChE,MAAM,MAAM,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,EAAE,CAAC;IACtC,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,OAAO,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1D,CAAC;AAED,MAAM,UAAU,2BAA2B,CACzC,MAAkB,EAClB,qBAAiC,EACjC,WAAsC;IAEtC,MAAM,aAAa,GAAG,MAAM,CAAC,SAAS,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;IACrE,MAAM,QAAQ,GAAG,aAAa,CAAC,IAAI,CACjC,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,KAAK,KAAK,qBAAqB,CAAC,CAAC,CAAC,CACjD,CAAC;IACF,IAAI,QAAQ,EAAE,CAAC;QACb,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,WAAW,CAAC,MAAM,CAAC,CAAC;AAC7B,CAAC"}
@@ -0,0 +1,34 @@
1
+ import { type Decoder, type ReadonlyUint8Array } from '@solana/kit';
2
+ export declare class ByteCursor {
3
+ private readonly data;
4
+ private offset;
5
+ constructor(data: Uint8Array);
6
+ remaining(): number;
7
+ readU8(): number;
8
+ readBool(): boolean;
9
+ readU32LE(): number;
10
+ readU64LE(): bigint;
11
+ readU128LE(): bigint;
12
+ readU256LE(): bigint;
13
+ readBytes(length: number): Uint8Array;
14
+ readVecBytes(): Uint8Array;
15
+ readString(): string;
16
+ readWithDecoder<T>(decoder: Decoder<T>): T;
17
+ private ensure;
18
+ }
19
+ export declare function concatBytes(...parts: readonly ArrayLike<number>[]): ReadonlyUint8Array;
20
+ export declare function u8(value: number): ReadonlyUint8Array;
21
+ export declare function bool(value: boolean): ReadonlyUint8Array;
22
+ export declare function u32le(value: number): ReadonlyUint8Array;
23
+ export declare function u64le(value: bigint): ReadonlyUint8Array;
24
+ export declare function u128le(value: bigint): ReadonlyUint8Array;
25
+ export declare function u256le(value: bigint): ReadonlyUint8Array;
26
+ export declare function vecBytes(bytes: ReadonlyUint8Array): ReadonlyUint8Array;
27
+ export declare function vec<T>(items: readonly T[], encodeItem: (item: T) => ArrayLike<number>): ReadonlyUint8Array;
28
+ export declare function option<T>(item: T | null | undefined, encodeItem: (value: T) => ArrayLike<number>): ReadonlyUint8Array;
29
+ export declare function mapU32<T>(entries: Iterable<[number, T]>, encodeValue: (value: T) => ArrayLike<number>): ReadonlyUint8Array;
30
+ export declare function addressBytes(input: string | ReadonlyUint8Array): ReadonlyUint8Array;
31
+ export declare function ensureLength(bytes: ReadonlyUint8Array, length: number, label: string): ReadonlyUint8Array;
32
+ export declare function readBigIntLE(bytes: Uint8Array): bigint;
33
+ export declare function writeBigIntLE(value: bigint, length: number): Uint8Array;
34
+ //# sourceMappingURL=binary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.d.ts","sourceRoot":"","sources":["../../src/codecs/binary.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,OAAO,EASZ,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAerB,qBAAa,UAAU;IAGT,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,MAAM,CAAK;gBAEU,IAAI,EAAE,UAAU;IAE7C,SAAS,IAAI,MAAM;IAInB,MAAM,IAAI,MAAM;IAShB,QAAQ,IAAI,OAAO;IASnB,SAAS,IAAI,MAAM;IASnB,SAAS,IAAI,MAAM;IASnB,UAAU,IAAI,MAAM;IASpB,UAAU,IAAI,MAAM;IAIpB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,UAAU;IAOrC,YAAY,IAAI,UAAU;IAS1B,UAAU,IAAI,MAAM;IAIpB,eAAe,CAAC,CAAC,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC;IAU1C,OAAO,CAAC,MAAM;CAOf;AAED,wBAAgB,WAAW,CACzB,GAAG,KAAK,EAAE,SAAS,SAAS,CAAC,MAAM,CAAC,EAAE,GACrC,kBAAkB,CASpB;AAED,wBAAgB,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAEpD;AAED,wBAAgB,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,kBAAkB,CAEvD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAEvD;AAED,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAEvD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAExD;AAED,wBAAgB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,kBAAkB,CAExD;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,kBAAkB,GAAG,kBAAkB,CAEtE;AAED,wBAAgB,GAAG,CAAC,CAAC,EACnB,KAAK,EAAE,SAAS,CAAC,EAAE,EACnB,UAAU,EAAE,CAAC,IAAI,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,GACzC,kBAAkB,CAEpB;AAED,wBAAgB,MAAM,CAAC,CAAC,EACtB,IAAI,EAAE,CAAC,GAAG,IAAI,GAAG,SAAS,EAC1B,UAAU,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,GAC1C,kBAAkB,CAGpB;AAED,wBAAgB,MAAM,CAAC,CAAC,EACtB,OAAO,EAAE,QAAQ,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAC9B,WAAW,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,SAAS,CAAC,MAAM,CAAC,GAC3C,kBAAkB,CAMpB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,GAAG,kBAAkB,GACjC,kBAAkB,CAQpB;AAED,wBAAgB,YAAY,CAC1B,KAAK,EAAE,kBAAkB,EACzB,MAAM,EAAE,MAAM,EACd,KAAK,EAAE,MAAM,GACZ,kBAAkB,CAKpB;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,UAAU,GAAG,MAAM,CAQtD;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,UAAU,CAYvE"}
@@ -0,0 +1,165 @@
1
+ import { addCodecSizePrefix, getBase16Codec, getBooleanCodec, getBytesCodec, getU128Codec, getU32Codec, getU64Codec, getU8Codec, getUtf8Codec, } from '@solana/kit';
2
+ import { assert, isNullish } from '@hyperlane-xyz/utils';
3
+ import { MAX_ACCOUNT_DATA_SIZE } from '../constants.js';
4
+ const U8_CODEC = getU8Codec();
5
+ const BOOL_CODEC = getBooleanCodec();
6
+ const U32_CODEC = getU32Codec();
7
+ const U64_CODEC = getU64Codec();
8
+ const U128_CODEC = getU128Codec();
9
+ const UTF8_CODEC = getUtf8Codec();
10
+ const BASE16_CODEC = getBase16Codec();
11
+ const VEC_BYTES_CODEC = addCodecSizePrefix(getBytesCodec(), U32_CODEC);
12
+ export class ByteCursor {
13
+ data;
14
+ offset = 0;
15
+ constructor(data) {
16
+ this.data = data;
17
+ }
18
+ remaining() {
19
+ return this.data.length - this.offset;
20
+ }
21
+ readU8() {
22
+ this.ensure(1);
23
+ const value = U8_CODEC.decode(this.data.slice(this.offset, this.offset + 1));
24
+ this.offset += 1;
25
+ return value;
26
+ }
27
+ readBool() {
28
+ this.ensure(1);
29
+ const value = BOOL_CODEC.decode(this.data.slice(this.offset, this.offset + 1));
30
+ this.offset += 1;
31
+ return value;
32
+ }
33
+ readU32LE() {
34
+ this.ensure(4);
35
+ const value = U32_CODEC.decode(this.data.slice(this.offset, this.offset + 4));
36
+ this.offset += 4;
37
+ return value;
38
+ }
39
+ readU64LE() {
40
+ this.ensure(8);
41
+ const value = U64_CODEC.decode(this.data.slice(this.offset, this.offset + 8));
42
+ this.offset += 8;
43
+ return value;
44
+ }
45
+ readU128LE() {
46
+ this.ensure(16);
47
+ const value = U128_CODEC.decode(this.data.slice(this.offset, this.offset + 16));
48
+ this.offset += 16;
49
+ return value;
50
+ }
51
+ readU256LE() {
52
+ return readBigIntLE(this.readBytes(32));
53
+ }
54
+ readBytes(length) {
55
+ this.ensure(length);
56
+ const start = this.offset;
57
+ this.offset += length;
58
+ return this.data.slice(start, this.offset);
59
+ }
60
+ readVecBytes() {
61
+ const length = this.readU32LE();
62
+ assert(length <= MAX_ACCOUNT_DATA_SIZE, `Vec length ${length} exceeds Solana max account size (${MAX_ACCOUNT_DATA_SIZE})`);
63
+ return this.readBytes(length);
64
+ }
65
+ readString() {
66
+ return UTF8_CODEC.decode(this.readVecBytes());
67
+ }
68
+ readWithDecoder(decoder) {
69
+ try {
70
+ const [value, nextOffset] = decoder.read(this.data, this.offset);
71
+ this.offset = nextOffset;
72
+ return value;
73
+ }
74
+ catch (e) {
75
+ throw new Error(`Decoder failed at offset ${this.offset}`, { cause: e });
76
+ }
77
+ }
78
+ ensure(length) {
79
+ if (this.remaining() < length) {
80
+ throw new Error(`Buffer underflow: need ${length}, remaining ${this.remaining()}`);
81
+ }
82
+ }
83
+ }
84
+ export function concatBytes(...parts) {
85
+ const total = parts.reduce((acc, p) => acc + p.length, 0);
86
+ const out = new Uint8Array(total);
87
+ let offset = 0;
88
+ for (const part of parts) {
89
+ out.set(part, offset);
90
+ offset += part.length;
91
+ }
92
+ return out;
93
+ }
94
+ export function u8(value) {
95
+ return U8_CODEC.encode(value);
96
+ }
97
+ export function bool(value) {
98
+ return BOOL_CODEC.encode(value);
99
+ }
100
+ export function u32le(value) {
101
+ return U32_CODEC.encode(value);
102
+ }
103
+ export function u64le(value) {
104
+ return U64_CODEC.encode(value);
105
+ }
106
+ export function u128le(value) {
107
+ return U128_CODEC.encode(value);
108
+ }
109
+ export function u256le(value) {
110
+ return writeBigIntLE(value, 32);
111
+ }
112
+ export function vecBytes(bytes) {
113
+ return VEC_BYTES_CODEC.encode(bytes);
114
+ }
115
+ export function vec(items, encodeItem) {
116
+ return concatBytes(u32le(items.length), ...items.map(encodeItem));
117
+ }
118
+ export function option(item, encodeItem) {
119
+ if (item == null)
120
+ return u8(0);
121
+ return concatBytes(u8(1), encodeItem(item));
122
+ }
123
+ export function mapU32(entries, encodeValue) {
124
+ const materialized = Array.from(entries);
125
+ return concatBytes(u32le(materialized.length), ...materialized.map(([k, v]) => concatBytes(u32le(k), encodeValue(v))));
126
+ }
127
+ export function addressBytes(input) {
128
+ if (input instanceof Uint8Array)
129
+ return input;
130
+ if (typeof input === 'string' && input.startsWith('0x')) {
131
+ return BASE16_CODEC.encode(input.slice(2).toLowerCase());
132
+ }
133
+ throw new Error(`Expected raw bytes or 0x-prefixed hex string, got: ${input.slice(0, 12)}`);
134
+ }
135
+ export function ensureLength(bytes, length, label) {
136
+ if (bytes.length !== length) {
137
+ throw new Error(`${label} must be ${length} bytes, got ${bytes.length}`);
138
+ }
139
+ return bytes;
140
+ }
141
+ export function readBigIntLE(bytes) {
142
+ let result = 0n;
143
+ for (let i = 0; i < bytes.length; i += 1) {
144
+ const byte = bytes[i];
145
+ if (isNullish(byte))
146
+ continue;
147
+ result |= BigInt(byte) << (8n * BigInt(i));
148
+ }
149
+ return result;
150
+ }
151
+ export function writeBigIntLE(value, length) {
152
+ if (value < 0n)
153
+ throw new Error('Negative bigint not supported');
154
+ if (value >= 1n << BigInt(length * 8)) {
155
+ throw new Error(`Integer does not fit in ${length} bytes`);
156
+ }
157
+ const out = new Uint8Array(length);
158
+ let remaining = value;
159
+ for (let i = 0; i < length; i += 1) {
160
+ out[i] = Number(remaining & 0xffn);
161
+ remaining >>= 8n;
162
+ }
163
+ return out;
164
+ }
165
+ //# sourceMappingURL=binary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"binary.js","sourceRoot":"","sources":["../../src/codecs/binary.ts"],"names":[],"mappings":"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"}