@hyperbridge/sdk 1.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 (69) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +127 -0
  3. package/dist/abis/erc6160.d.ts +370 -0
  4. package/dist/abis/erc6160.js +238 -0
  5. package/dist/abis/erc6160.js.map +1 -0
  6. package/dist/abis/evmHost.d.ts +1752 -0
  7. package/dist/abis/evmHost.js +2250 -0
  8. package/dist/abis/evmHost.js.map +1 -0
  9. package/dist/abis/handler.d.ts +580 -0
  10. package/dist/abis/handler.js +750 -0
  11. package/dist/abis/handler.js.map +1 -0
  12. package/dist/abis/pingModule.d.ts +594 -0
  13. package/dist/abis/pingModule.js +765 -0
  14. package/dist/abis/pingModule.js.map +1 -0
  15. package/dist/abis/tokenGateway.d.ts +839 -0
  16. package/dist/abis/tokenGateway.js +471 -0
  17. package/dist/abis/tokenGateway.js.map +1 -0
  18. package/dist/chain.d.ts +83 -0
  19. package/dist/chain.js +34 -0
  20. package/dist/chain.js.map +1 -0
  21. package/dist/chains/evm.d.ts +86 -0
  22. package/dist/chains/evm.js +249 -0
  23. package/dist/chains/evm.js.map +1 -0
  24. package/dist/chains/substrate.d.ts +88 -0
  25. package/dist/chains/substrate.js +287 -0
  26. package/dist/chains/substrate.js.map +1 -0
  27. package/dist/client.d.ts +216 -0
  28. package/dist/client.js +774 -0
  29. package/dist/client.js.map +1 -0
  30. package/dist/index.d.ts +6 -0
  31. package/dist/index.js +7 -0
  32. package/dist/index.js.map +1 -0
  33. package/dist/queries.d.ts +3 -0
  34. package/dist/queries.js +78 -0
  35. package/dist/queries.js.map +1 -0
  36. package/dist/tests/hyperbridgeRequests.test.d.ts +1 -0
  37. package/dist/tests/hyperbridgeRequests.test.js +415 -0
  38. package/dist/tests/hyperbridgeRequests.test.js.map +1 -0
  39. package/dist/tests/postRequest.test.d.ts +1 -0
  40. package/dist/tests/postRequest.test.js +293 -0
  41. package/dist/tests/postRequest.test.js.map +1 -0
  42. package/dist/tests/setup.d.ts +1 -0
  43. package/dist/tests/setup.js +6 -0
  44. package/dist/tests/setup.js.map +1 -0
  45. package/dist/tests/tokenGateway.test.d.ts +1 -0
  46. package/dist/tests/tokenGateway.test.js +85 -0
  47. package/dist/tests/tokenGateway.test.js.map +1 -0
  48. package/dist/tests/xcmGateway.test.d.ts +1 -0
  49. package/dist/tests/xcmGateway.test.js +71 -0
  50. package/dist/tests/xcmGateway.test.js.map +1 -0
  51. package/dist/types/index.d.ts +238 -0
  52. package/dist/types/index.js +30 -0
  53. package/dist/types/index.js.map +1 -0
  54. package/dist/utils/mmr.d.ts +13 -0
  55. package/dist/utils/mmr.js +153 -0
  56. package/dist/utils/mmr.js.map +1 -0
  57. package/dist/utils/substrate.d.ts +1913 -0
  58. package/dist/utils/substrate.js +361 -0
  59. package/dist/utils/substrate.js.map +1 -0
  60. package/dist/utils/tokenGateway.d.ts +68 -0
  61. package/dist/utils/tokenGateway.js +151 -0
  62. package/dist/utils/tokenGateway.js.map +1 -0
  63. package/dist/utils/xcmGateway.d.ts +81 -0
  64. package/dist/utils/xcmGateway.js +218 -0
  65. package/dist/utils/xcmGateway.js.map +1 -0
  66. package/dist/utils.d.ts +57 -0
  67. package/dist/utils.js +96 -0
  68. package/dist/utils.js.map +1 -0
  69. package/package.json +74 -0
@@ -0,0 +1,471 @@
1
+ const ABI = [
2
+ {
3
+ inputs: [{ internalType: "address", name: "admin", type: "address" }],
4
+ stateMutability: "nonpayable",
5
+ type: "constructor",
6
+ },
7
+ { inputs: [], name: "InconsistentState", type: "error" },
8
+ { inputs: [], name: "InvalidAddressLength", type: "error" },
9
+ { inputs: [], name: "InvalidAmount", type: "error" },
10
+ { inputs: [], name: "UnauthorizedAction", type: "error" },
11
+ { inputs: [], name: "UnauthorizedCall", type: "error" },
12
+ { inputs: [], name: "UnexpectedCall", type: "error" },
13
+ { inputs: [], name: "UnknownAsset", type: "error" },
14
+ { inputs: [], name: "ZeroAddress", type: "error" },
15
+ {
16
+ anonymous: false,
17
+ inputs: [
18
+ { indexed: false, internalType: "address", name: "asset", type: "address" },
19
+ { indexed: false, internalType: "address", name: "newAdmin", type: "address" },
20
+ ],
21
+ name: "AssetAdminChanged",
22
+ type: "event",
23
+ },
24
+ {
25
+ anonymous: false,
26
+ inputs: [
27
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
28
+ { indexed: false, internalType: "bytes32", name: "commitment", type: "bytes32" },
29
+ { indexed: true, internalType: "bytes32", name: "from", type: "bytes32" },
30
+ { indexed: true, internalType: "address", name: "beneficiary", type: "address" },
31
+ { indexed: true, internalType: "bytes32", name: "assetId", type: "bytes32" },
32
+ ],
33
+ name: "AssetReceived",
34
+ type: "event",
35
+ },
36
+ {
37
+ anonymous: false,
38
+ inputs: [
39
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
40
+ { indexed: false, internalType: "bytes32", name: "commitment", type: "bytes32" },
41
+ { indexed: true, internalType: "address", name: "beneficiary", type: "address" },
42
+ { indexed: true, internalType: "bytes32", name: "assetId", type: "bytes32" },
43
+ ],
44
+ name: "AssetRefunded",
45
+ type: "event",
46
+ },
47
+ {
48
+ anonymous: false,
49
+ inputs: [
50
+ { indexed: false, internalType: "address", name: "erc20", type: "address" },
51
+ { indexed: false, internalType: "address", name: "erc6160", type: "address" },
52
+ { indexed: false, internalType: "string", name: "name", type: "string" },
53
+ { indexed: false, internalType: "string", name: "symbol", type: "string" },
54
+ { indexed: false, internalType: "bytes32", name: "assetId", type: "bytes32" },
55
+ { indexed: false, internalType: "uint256", name: "initialSupply", type: "uint256" },
56
+ { indexed: false, internalType: "address", name: "beneficiary", type: "address" },
57
+ ],
58
+ name: "AssetRegistered",
59
+ type: "event",
60
+ },
61
+ {
62
+ anonymous: false,
63
+ inputs: [{ indexed: false, internalType: "bytes32", name: "assetId", type: "bytes32" }],
64
+ name: "AssetRemoved",
65
+ type: "event",
66
+ },
67
+ {
68
+ anonymous: false,
69
+ inputs: [
70
+ { indexed: false, internalType: "bytes32", name: "to", type: "bytes32" },
71
+ { indexed: false, internalType: "string", name: "dest", type: "string" },
72
+ { indexed: false, internalType: "uint256", name: "amount", type: "uint256" },
73
+ { indexed: false, internalType: "bytes32", name: "commitment", type: "bytes32" },
74
+ { indexed: true, internalType: "address", name: "from", type: "address" },
75
+ { indexed: true, internalType: "bytes32", name: "assetId", type: "bytes32" },
76
+ { indexed: false, internalType: "bool", name: "redeem", type: "bool" },
77
+ ],
78
+ name: "AssetTeleported",
79
+ type: "event",
80
+ },
81
+ {
82
+ anonymous: false,
83
+ inputs: [
84
+ { indexed: false, internalType: "string", name: "chain", type: "string" },
85
+ { indexed: false, internalType: "address", name: "moduleId", type: "address" },
86
+ ],
87
+ name: "NewContractInstance",
88
+ type: "event",
89
+ },
90
+ {
91
+ anonymous: false,
92
+ inputs: [
93
+ {
94
+ components: [
95
+ { internalType: "address", name: "host", type: "address" },
96
+ { internalType: "address", name: "dispatcher", type: "address" },
97
+ ],
98
+ indexed: false,
99
+ internalType: "struct TokenGatewayParams",
100
+ name: "oldParams",
101
+ type: "tuple",
102
+ },
103
+ {
104
+ components: [
105
+ { internalType: "address", name: "host", type: "address" },
106
+ { internalType: "address", name: "dispatcher", type: "address" },
107
+ ],
108
+ indexed: false,
109
+ internalType: "struct TokenGatewayParams",
110
+ name: "newParams",
111
+ type: "tuple",
112
+ },
113
+ ],
114
+ name: "ParamsUpdated",
115
+ type: "event",
116
+ },
117
+ {
118
+ inputs: [{ internalType: "bytes32", name: "assetId", type: "bytes32" }],
119
+ name: "erc20",
120
+ outputs: [{ internalType: "address", name: "", type: "address" }],
121
+ stateMutability: "view",
122
+ type: "function",
123
+ },
124
+ {
125
+ inputs: [{ internalType: "bytes32", name: "assetId", type: "bytes32" }],
126
+ name: "erc6160",
127
+ outputs: [{ internalType: "address", name: "", type: "address" }],
128
+ stateMutability: "view",
129
+ type: "function",
130
+ },
131
+ {
132
+ inputs: [],
133
+ name: "host",
134
+ outputs: [{ internalType: "address", name: "h", type: "address" }],
135
+ stateMutability: "view",
136
+ type: "function",
137
+ },
138
+ {
139
+ inputs: [
140
+ {
141
+ components: [
142
+ {
143
+ components: [
144
+ { internalType: "address", name: "host", type: "address" },
145
+ { internalType: "address", name: "dispatcher", type: "address" },
146
+ ],
147
+ internalType: "struct TokenGatewayParams",
148
+ name: "params",
149
+ type: "tuple",
150
+ },
151
+ {
152
+ components: [
153
+ { internalType: "address", name: "erc20", type: "address" },
154
+ { internalType: "address", name: "erc6160", type: "address" },
155
+ { internalType: "string", name: "name", type: "string" },
156
+ { internalType: "string", name: "symbol", type: "string" },
157
+ { internalType: "uint256", name: "initialSupply", type: "uint256" },
158
+ { internalType: "address", name: "beneficiary", type: "address" },
159
+ ],
160
+ internalType: "struct AssetMetadata[]",
161
+ name: "assets",
162
+ type: "tuple[]",
163
+ },
164
+ ],
165
+ internalType: "struct TokenGatewayParamsExt",
166
+ name: "teleportParams",
167
+ type: "tuple",
168
+ },
169
+ ],
170
+ name: "init",
171
+ outputs: [],
172
+ stateMutability: "nonpayable",
173
+ type: "function",
174
+ },
175
+ {
176
+ inputs: [{ internalType: "bytes", name: "destination", type: "bytes" }],
177
+ name: "instance",
178
+ outputs: [{ internalType: "address", name: "", type: "address" }],
179
+ stateMutability: "view",
180
+ type: "function",
181
+ },
182
+ {
183
+ inputs: [
184
+ {
185
+ components: [
186
+ {
187
+ components: [
188
+ { internalType: "bytes", name: "source", type: "bytes" },
189
+ { internalType: "bytes", name: "dest", type: "bytes" },
190
+ { internalType: "uint64", name: "nonce", type: "uint64" },
191
+ { internalType: "bytes", name: "from", type: "bytes" },
192
+ { internalType: "bytes", name: "to", type: "bytes" },
193
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
194
+ { internalType: "bytes", name: "body", type: "bytes" },
195
+ ],
196
+ internalType: "struct PostRequest",
197
+ name: "request",
198
+ type: "tuple",
199
+ },
200
+ { internalType: "address", name: "relayer", type: "address" },
201
+ ],
202
+ internalType: "struct IncomingPostRequest",
203
+ name: "incoming",
204
+ type: "tuple",
205
+ },
206
+ ],
207
+ name: "onAccept",
208
+ outputs: [],
209
+ stateMutability: "nonpayable",
210
+ type: "function",
211
+ },
212
+ {
213
+ inputs: [
214
+ {
215
+ components: [
216
+ {
217
+ components: [
218
+ {
219
+ components: [
220
+ { internalType: "bytes", name: "source", type: "bytes" },
221
+ { internalType: "bytes", name: "dest", type: "bytes" },
222
+ { internalType: "uint64", name: "nonce", type: "uint64" },
223
+ { internalType: "address", name: "from", type: "address" },
224
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
225
+ { internalType: "bytes[]", name: "keys", type: "bytes[]" },
226
+ { internalType: "uint64", name: "height", type: "uint64" },
227
+ { internalType: "bytes", name: "context", type: "bytes" },
228
+ ],
229
+ internalType: "struct GetRequest",
230
+ name: "request",
231
+ type: "tuple",
232
+ },
233
+ {
234
+ components: [
235
+ { internalType: "bytes", name: "key", type: "bytes" },
236
+ { internalType: "bytes", name: "value", type: "bytes" },
237
+ ],
238
+ internalType: "struct StorageValue[]",
239
+ name: "values",
240
+ type: "tuple[]",
241
+ },
242
+ ],
243
+ internalType: "struct GetResponse",
244
+ name: "response",
245
+ type: "tuple",
246
+ },
247
+ { internalType: "address", name: "relayer", type: "address" },
248
+ ],
249
+ internalType: "struct IncomingGetResponse",
250
+ name: "",
251
+ type: "tuple",
252
+ },
253
+ ],
254
+ name: "onGetResponse",
255
+ outputs: [],
256
+ stateMutability: "nonpayable",
257
+ type: "function",
258
+ },
259
+ {
260
+ inputs: [
261
+ {
262
+ components: [
263
+ { internalType: "bytes", name: "source", type: "bytes" },
264
+ { internalType: "bytes", name: "dest", type: "bytes" },
265
+ { internalType: "uint64", name: "nonce", type: "uint64" },
266
+ { internalType: "address", name: "from", type: "address" },
267
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
268
+ { internalType: "bytes[]", name: "keys", type: "bytes[]" },
269
+ { internalType: "uint64", name: "height", type: "uint64" },
270
+ { internalType: "bytes", name: "context", type: "bytes" },
271
+ ],
272
+ internalType: "struct GetRequest",
273
+ name: "",
274
+ type: "tuple",
275
+ },
276
+ ],
277
+ name: "onGetTimeout",
278
+ outputs: [],
279
+ stateMutability: "nonpayable",
280
+ type: "function",
281
+ },
282
+ {
283
+ inputs: [
284
+ {
285
+ components: [
286
+ { internalType: "bytes", name: "source", type: "bytes" },
287
+ { internalType: "bytes", name: "dest", type: "bytes" },
288
+ { internalType: "uint64", name: "nonce", type: "uint64" },
289
+ { internalType: "bytes", name: "from", type: "bytes" },
290
+ { internalType: "bytes", name: "to", type: "bytes" },
291
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
292
+ { internalType: "bytes", name: "body", type: "bytes" },
293
+ ],
294
+ internalType: "struct PostRequest",
295
+ name: "request",
296
+ type: "tuple",
297
+ },
298
+ ],
299
+ name: "onPostRequestTimeout",
300
+ outputs: [],
301
+ stateMutability: "nonpayable",
302
+ type: "function",
303
+ },
304
+ {
305
+ inputs: [
306
+ {
307
+ components: [
308
+ {
309
+ components: [
310
+ {
311
+ components: [
312
+ { internalType: "bytes", name: "source", type: "bytes" },
313
+ { internalType: "bytes", name: "dest", type: "bytes" },
314
+ { internalType: "uint64", name: "nonce", type: "uint64" },
315
+ { internalType: "bytes", name: "from", type: "bytes" },
316
+ { internalType: "bytes", name: "to", type: "bytes" },
317
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
318
+ { internalType: "bytes", name: "body", type: "bytes" },
319
+ ],
320
+ internalType: "struct PostRequest",
321
+ name: "request",
322
+ type: "tuple",
323
+ },
324
+ { internalType: "bytes", name: "response", type: "bytes" },
325
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
326
+ ],
327
+ internalType: "struct PostResponse",
328
+ name: "response",
329
+ type: "tuple",
330
+ },
331
+ { internalType: "address", name: "relayer", type: "address" },
332
+ ],
333
+ internalType: "struct IncomingPostResponse",
334
+ name: "",
335
+ type: "tuple",
336
+ },
337
+ ],
338
+ name: "onPostResponse",
339
+ outputs: [],
340
+ stateMutability: "nonpayable",
341
+ type: "function",
342
+ },
343
+ {
344
+ inputs: [
345
+ {
346
+ components: [
347
+ {
348
+ components: [
349
+ { internalType: "bytes", name: "source", type: "bytes" },
350
+ { internalType: "bytes", name: "dest", type: "bytes" },
351
+ { internalType: "uint64", name: "nonce", type: "uint64" },
352
+ { internalType: "bytes", name: "from", type: "bytes" },
353
+ { internalType: "bytes", name: "to", type: "bytes" },
354
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
355
+ { internalType: "bytes", name: "body", type: "bytes" },
356
+ ],
357
+ internalType: "struct PostRequest",
358
+ name: "request",
359
+ type: "tuple",
360
+ },
361
+ { internalType: "bytes", name: "response", type: "bytes" },
362
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
363
+ ],
364
+ internalType: "struct PostResponse",
365
+ name: "",
366
+ type: "tuple",
367
+ },
368
+ ],
369
+ name: "onPostResponseTimeout",
370
+ outputs: [],
371
+ stateMutability: "nonpayable",
372
+ type: "function",
373
+ },
374
+ {
375
+ inputs: [],
376
+ name: "params",
377
+ outputs: [
378
+ {
379
+ components: [
380
+ { internalType: "address", name: "host", type: "address" },
381
+ { internalType: "address", name: "dispatcher", type: "address" },
382
+ ],
383
+ internalType: "struct TokenGatewayParams",
384
+ name: "",
385
+ type: "tuple",
386
+ },
387
+ ],
388
+ stateMutability: "view",
389
+ type: "function",
390
+ },
391
+ {
392
+ inputs: [
393
+ {
394
+ components: [
395
+ { internalType: "bytes", name: "dest", type: "bytes" },
396
+ { internalType: "bytes", name: "to", type: "bytes" },
397
+ { internalType: "bytes", name: "body", type: "bytes" },
398
+ { internalType: "uint64", name: "timeout", type: "uint64" },
399
+ { internalType: "uint256", name: "fee", type: "uint256" },
400
+ { internalType: "address", name: "payer", type: "address" },
401
+ ],
402
+ internalType: "struct DispatchPost",
403
+ name: "post",
404
+ type: "tuple",
405
+ },
406
+ ],
407
+ name: "quote",
408
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
409
+ stateMutability: "view",
410
+ type: "function",
411
+ },
412
+ {
413
+ inputs: [
414
+ {
415
+ components: [
416
+ {
417
+ components: [
418
+ { internalType: "bytes", name: "source", type: "bytes" },
419
+ { internalType: "bytes", name: "dest", type: "bytes" },
420
+ { internalType: "uint64", name: "nonce", type: "uint64" },
421
+ { internalType: "bytes", name: "from", type: "bytes" },
422
+ { internalType: "bytes", name: "to", type: "bytes" },
423
+ { internalType: "uint64", name: "timeoutTimestamp", type: "uint64" },
424
+ { internalType: "bytes", name: "body", type: "bytes" },
425
+ ],
426
+ internalType: "struct PostRequest",
427
+ name: "request",
428
+ type: "tuple",
429
+ },
430
+ { internalType: "bytes", name: "response", type: "bytes" },
431
+ { internalType: "uint64", name: "timeout", type: "uint64" },
432
+ { internalType: "uint256", name: "fee", type: "uint256" },
433
+ { internalType: "address", name: "payer", type: "address" },
434
+ ],
435
+ internalType: "struct DispatchPostResponse",
436
+ name: "res",
437
+ type: "tuple",
438
+ },
439
+ ],
440
+ name: "quote",
441
+ outputs: [{ internalType: "uint256", name: "", type: "uint256" }],
442
+ stateMutability: "view",
443
+ type: "function",
444
+ },
445
+ {
446
+ inputs: [
447
+ {
448
+ components: [
449
+ { internalType: "uint256", name: "amount", type: "uint256" },
450
+ { internalType: "uint256", name: "relayerFee", type: "uint256" },
451
+ { internalType: "bytes32", name: "assetId", type: "bytes32" },
452
+ { internalType: "bool", name: "redeem", type: "bool" },
453
+ { internalType: "bytes32", name: "to", type: "bytes32" },
454
+ { internalType: "bytes", name: "dest", type: "bytes" },
455
+ { internalType: "uint64", name: "timeout", type: "uint64" },
456
+ { internalType: "uint256", name: "nativeCost", type: "uint256" },
457
+ { internalType: "bytes", name: "data", type: "bytes" },
458
+ ],
459
+ internalType: "struct TeleportParams",
460
+ name: "teleportParams",
461
+ type: "tuple",
462
+ },
463
+ ],
464
+ name: "teleport",
465
+ outputs: [],
466
+ stateMutability: "payable",
467
+ type: "function",
468
+ },
469
+ ];
470
+ export default { ABI };
471
+ //# sourceMappingURL=tokenGateway.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tokenGateway.js","sourceRoot":"","sources":["../../src/abis/tokenGateway.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,83 @@
1
+ import { HexString, IEvmConfig, IPostRequest, ISubstrateConfig } from "./types";
2
+ export * from "./chains/evm";
3
+ export * from "./chains/substrate";
4
+ /**
5
+ * Type representing an ISMP message.
6
+ */
7
+ export type IIsmpMessage = IRequestMessage | ITimeoutPostRequestMessage;
8
+ export interface IRequestMessage {
9
+ /**
10
+ * The kind of message.
11
+ */
12
+ kind: "PostRequest";
13
+ /**
14
+ * The requests to be posted.
15
+ */
16
+ requests: IPostRequest[];
17
+ /**
18
+ * The proof of the requests.
19
+ */
20
+ proof: IProof;
21
+ /**
22
+ * The signer of the message.
23
+ */
24
+ signer: HexString;
25
+ }
26
+ export interface ITimeoutPostRequestMessage {
27
+ /**
28
+ * The kind of message.
29
+ */
30
+ kind: "TimeoutPostRequest";
31
+ /**
32
+ * The requests to be posted.
33
+ */
34
+ requests: IPostRequest[];
35
+ /**
36
+ * The proof of the requests.
37
+ */
38
+ proof: IProof;
39
+ }
40
+ export interface IProof {
41
+ /**
42
+ * The height of the proof.
43
+ */
44
+ height: bigint;
45
+ /**
46
+ * The state machine identifier of the proof.
47
+ */
48
+ stateMachine: string;
49
+ /**
50
+ * The associated consensus state identifier of the proof.
51
+ */
52
+ consensusStateId: string;
53
+ /**
54
+ * The encoded storage proof
55
+ */
56
+ proof: HexString;
57
+ }
58
+ /**
59
+ * Interface representing a chain.
60
+ */
61
+ export interface IChain {
62
+ timestamp(): Promise<bigint>;
63
+ /**
64
+ * Returns the state trie key for the request-receipt storage item for the given request commitment.
65
+ */
66
+ requestReceiptKey(commitment: HexString): HexString;
67
+ /**
68
+ * Query and return the request-receipt for the given request commitment.
69
+ */
70
+ queryRequestReceipt(commitment: HexString): Promise<HexString | undefined>;
71
+ /**
72
+ * Query and return the encoded storage proof for the provided keys at the given height.
73
+ */
74
+ queryStateProof(at: bigint, keys: HexString[]): Promise<HexString>;
75
+ queryRequestsProof(requests: HexString[], counterparty: string, at?: bigint): Promise<HexString>;
76
+ encode(message: IIsmpMessage): HexString;
77
+ }
78
+ /**
79
+ * Returns the chain interface for a given state machine identifier
80
+ * @param chainConfig - Chain configuration
81
+ * @returns Chain interface
82
+ */
83
+ export declare function getChain(chainConfig: IEvmConfig | ISubstrateConfig): Promise<IChain>;
package/dist/chain.js ADDED
@@ -0,0 +1,34 @@
1
+ import { isEvmChain, isSubstrateChain } from "./utils.js";
2
+ import { EvmChain, SubstrateChain } from "./chain.js";
3
+ export * from "./chains/evm.js";
4
+ export * from "./chains/substrate.js";
5
+ /**
6
+ * Returns the chain interface for a given state machine identifier
7
+ * @param chainConfig - Chain configuration
8
+ * @returns Chain interface
9
+ */
10
+ export async function getChain(chainConfig) {
11
+ if (isEvmChain(chainConfig.stateMachineId)) {
12
+ const config = chainConfig;
13
+ const chainId = parseInt(chainConfig.stateMachineId.split("-")[1]);
14
+ const evmChain = new EvmChain({
15
+ chainId,
16
+ url: config.rpcUrl,
17
+ host: config.host,
18
+ });
19
+ return evmChain;
20
+ }
21
+ else if (isSubstrateChain(chainConfig.stateMachineId)) {
22
+ const config = chainConfig;
23
+ const substrateChain = new SubstrateChain({
24
+ ws: config.wsUrl,
25
+ hasher: config.hasher,
26
+ });
27
+ await substrateChain.connect();
28
+ return substrateChain;
29
+ }
30
+ else {
31
+ throw new Error(`Unsupported chain: ${chainConfig.stateMachineId}`);
32
+ }
33
+ }
34
+ //# sourceMappingURL=chain.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chain.js","sourceRoot":"","sources":["../src/chain.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAA;AACtD,OAAO,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAElD,cAAc,cAAc,CAAA;AAC5B,cAAc,oBAAoB,CAAA;AAmGlC;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,QAAQ,CAAC,WAA0C;IACxE,IAAI,UAAU,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QAC5C,MAAM,MAAM,GAAG,WAAyB,CAAA;QACxC,MAAM,OAAO,GAAG,QAAQ,CAAC,WAAW,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;QAClE,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;YAC7B,OAAO;YACP,GAAG,EAAE,MAAM,CAAC,MAAM;YAClB,IAAI,EAAE,MAAM,CAAC,IAAW;SACxB,CAAC,CAAA;QAEF,OAAO,QAAQ,CAAA;IAChB,CAAC;SAAM,IAAI,gBAAgB,CAAC,WAAW,CAAC,cAAc,CAAC,EAAE,CAAC;QACzD,MAAM,MAAM,GAAG,WAA+B,CAAA;QAC9C,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC;YACzC,EAAE,EAAE,MAAM,CAAC,KAAK;YAChB,MAAM,EAAE,MAAM,CAAC,MAAM;SACrB,CAAC,CAAA;QAEF,MAAM,cAAc,CAAC,OAAO,EAAE,CAAA;QAE9B,OAAO,cAAc,CAAA;IACtB,CAAC;SAAM,CAAC;QACP,MAAM,IAAI,KAAK,CAAC,sBAAsB,WAAW,CAAC,cAAc,EAAE,CAAC,CAAA;IACpE,CAAC;AACF,CAAC"}