@hyperbridge/sdk 1.0.0 → 1.1.12

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 (78) hide show
  1. package/README.md +45 -3
  2. package/dist/browser/index.d.ts +1952 -0
  3. package/dist/browser/index.js +6827 -0
  4. package/dist/browser/index.js.map +1 -0
  5. package/dist/browser/web_bg.wasm +0 -0
  6. package/dist/node/index.d.ts +1952 -0
  7. package/dist/node/index.js +6778 -0
  8. package/dist/node/index.js.map +1 -0
  9. package/dist/node/node_bg.wasm +0 -0
  10. package/package.json +43 -15
  11. package/plugins/vite.d.ts +11 -0
  12. package/plugins/vite.js +55 -0
  13. package/dist/abis/erc6160.d.ts +0 -370
  14. package/dist/abis/erc6160.js +0 -238
  15. package/dist/abis/erc6160.js.map +0 -1
  16. package/dist/abis/evmHost.d.ts +0 -1752
  17. package/dist/abis/evmHost.js +0 -2250
  18. package/dist/abis/evmHost.js.map +0 -1
  19. package/dist/abis/handler.d.ts +0 -580
  20. package/dist/abis/handler.js +0 -750
  21. package/dist/abis/handler.js.map +0 -1
  22. package/dist/abis/pingModule.d.ts +0 -594
  23. package/dist/abis/pingModule.js +0 -765
  24. package/dist/abis/pingModule.js.map +0 -1
  25. package/dist/abis/tokenGateway.d.ts +0 -839
  26. package/dist/abis/tokenGateway.js +0 -471
  27. package/dist/abis/tokenGateway.js.map +0 -1
  28. package/dist/chain.d.ts +0 -83
  29. package/dist/chain.js +0 -34
  30. package/dist/chain.js.map +0 -1
  31. package/dist/chains/evm.d.ts +0 -86
  32. package/dist/chains/evm.js +0 -249
  33. package/dist/chains/evm.js.map +0 -1
  34. package/dist/chains/substrate.d.ts +0 -88
  35. package/dist/chains/substrate.js +0 -287
  36. package/dist/chains/substrate.js.map +0 -1
  37. package/dist/client.d.ts +0 -216
  38. package/dist/client.js +0 -774
  39. package/dist/client.js.map +0 -1
  40. package/dist/index.d.ts +0 -6
  41. package/dist/index.js +0 -7
  42. package/dist/index.js.map +0 -1
  43. package/dist/queries.d.ts +0 -3
  44. package/dist/queries.js +0 -78
  45. package/dist/queries.js.map +0 -1
  46. package/dist/tests/hyperbridgeRequests.test.d.ts +0 -1
  47. package/dist/tests/hyperbridgeRequests.test.js +0 -415
  48. package/dist/tests/hyperbridgeRequests.test.js.map +0 -1
  49. package/dist/tests/postRequest.test.d.ts +0 -1
  50. package/dist/tests/postRequest.test.js +0 -293
  51. package/dist/tests/postRequest.test.js.map +0 -1
  52. package/dist/tests/setup.d.ts +0 -1
  53. package/dist/tests/setup.js +0 -6
  54. package/dist/tests/setup.js.map +0 -1
  55. package/dist/tests/tokenGateway.test.d.ts +0 -1
  56. package/dist/tests/tokenGateway.test.js +0 -85
  57. package/dist/tests/tokenGateway.test.js.map +0 -1
  58. package/dist/tests/xcmGateway.test.d.ts +0 -1
  59. package/dist/tests/xcmGateway.test.js +0 -71
  60. package/dist/tests/xcmGateway.test.js.map +0 -1
  61. package/dist/types/index.d.ts +0 -238
  62. package/dist/types/index.js +0 -30
  63. package/dist/types/index.js.map +0 -1
  64. package/dist/utils/mmr.d.ts +0 -13
  65. package/dist/utils/mmr.js +0 -153
  66. package/dist/utils/mmr.js.map +0 -1
  67. package/dist/utils/substrate.d.ts +0 -1913
  68. package/dist/utils/substrate.js +0 -361
  69. package/dist/utils/substrate.js.map +0 -1
  70. package/dist/utils/tokenGateway.d.ts +0 -68
  71. package/dist/utils/tokenGateway.js +0 -151
  72. package/dist/utils/tokenGateway.js.map +0 -1
  73. package/dist/utils/xcmGateway.d.ts +0 -81
  74. package/dist/utils/xcmGateway.js +0 -218
  75. package/dist/utils/xcmGateway.js.map +0 -1
  76. package/dist/utils.d.ts +0 -57
  77. package/dist/utils.js +0 -96
  78. package/dist/utils.js.map +0 -1
@@ -1,361 +0,0 @@
1
- import { Struct, Vector, u8, u64, Tuple, Enum, _void, u32, Option } from "scale-ts";
2
- export const H256 = Vector(u8, 32);
3
- export const EvmStateProof = Struct({
4
- /**
5
- * Proof of the contract state.
6
- */
7
- contractProof: Vector(Vector(u8)),
8
- /**
9
- * Proof of the storage state.
10
- */
11
- storageProof: Vector(Tuple(Vector(u8), Vector(Vector(u8)))),
12
- });
13
- export const SubstrateHashing = Enum({
14
- /* For chains that use keccak as their hashing algo */
15
- Keccak: _void,
16
- /* For chains that use blake2b as their hashing algo */
17
- Blake2: _void,
18
- });
19
- export const SubstrateStateMachineProof = Struct({
20
- /**
21
- * The hasher used to hash the state machine state.
22
- */
23
- hasher: SubstrateHashing,
24
- /**
25
- * Proof of the state machine state.
26
- */
27
- storageProof: Vector(Vector(u8)),
28
- });
29
- export const SubstrateStateProof = Enum({
30
- /*
31
- * Uses overlay root for verification
32
- */
33
- OverlayProof: SubstrateStateMachineProof,
34
- /*
35
- * Uses state root for verification
36
- */
37
- StateProof: SubstrateStateMachineProof,
38
- });
39
- export const BasicProof = Vector(Vector(u8));
40
- export const LeafIndexAndPos = Struct({
41
- /*
42
- * Leaf index
43
- */
44
- leafIndex: u64,
45
- /*
46
- * Leaf position in the MMR
47
- */
48
- pos: u64,
49
- });
50
- export const MmrProof = Struct({
51
- /*
52
- * Proof of the leaf index and position.
53
- */
54
- leafIndexAndPos: Vector(LeafIndexAndPos),
55
- /*
56
- * Proof of the leaf data.
57
- */
58
- leafCount: u64,
59
- /*
60
- * Proof elements (hashes of siblings of inner nodes on the path to the leaf).
61
- */
62
- items: Vector(H256),
63
- });
64
- export const ConsensusStateId = Vector(u8, 4);
65
- export const ConsensusMessage = Struct({
66
- /*
67
- * Consensus message data.
68
- */
69
- consensusProof: Vector(u8),
70
- /*
71
- * Consensus state Id
72
- */
73
- consensusStateId: ConsensusStateId,
74
- /*
75
- * Public key of the sender
76
- */
77
- signer: Vector(u8),
78
- });
79
- export const FraudProofMessage = Struct({
80
- /*
81
- * The first valid consensus proof
82
- */
83
- proof1: Vector(u8),
84
- /*
85
- * The second valid consensus proof
86
- */
87
- proof2: Vector(u8),
88
- /*
89
- * Consensus state Id
90
- */
91
- consensusStateId: ConsensusStateId,
92
- });
93
- export const StateMachine = Enum({
94
- /*
95
- * Evm state machines
96
- */
97
- Evm: u32,
98
- /*
99
- * Polkadot parachains
100
- */
101
- Polkadot: u32,
102
- /*
103
- * Kusama parachains
104
- */
105
- Kusama: u32,
106
- /*
107
- * Substrate-based standalone chain
108
- */
109
- Substrate: ConsensusStateId,
110
- /*
111
- * Tendermint chains
112
- */
113
- Tendermint: ConsensusStateId,
114
- });
115
- export const StateMachineId = Struct({
116
- /*
117
- * The state machine id
118
- */
119
- id: StateMachine,
120
- /*
121
- * The consensus state id
122
- */
123
- consensusStateId: ConsensusStateId,
124
- });
125
- export const StateMachineHeight = Struct({
126
- /*
127
- * The state machine id
128
- */
129
- id: StateMachineId,
130
- /*
131
- * The height of the state machine
132
- */
133
- height: u64,
134
- });
135
- export const Proof = Struct({
136
- /*
137
- * The height of the state machine
138
- */
139
- height: StateMachineHeight,
140
- /*
141
- * The proof
142
- */
143
- proof: Vector(u8),
144
- });
145
- export const PostRequest = Struct({
146
- /*
147
- * The source state machine of this request.
148
- */
149
- source: StateMachine,
150
- /*
151
- * The destination state machine of this request.
152
- */
153
- dest: StateMachine,
154
- /*
155
- * The nonce of this request on the source chain
156
- */
157
- nonce: u64,
158
- /*
159
- * Module identifier of the sending module
160
- */
161
- from: Vector(u8),
162
- /*
163
- * Module identifier of the receiving module
164
- */
165
- to: Vector(u8),
166
- /*
167
- * Timestamp which this request expires in seconds.
168
- */
169
- timeoutTimestamp: u64,
170
- /*
171
- * Encoded request body
172
- */
173
- body: Vector(u8),
174
- });
175
- export const PostResponse = Struct({
176
- /*
177
- * The request that triggered this response.
178
- */
179
- post: PostRequest,
180
- /*
181
- * The response message.
182
- */
183
- response: Vector(u8),
184
- /*
185
- * Timestamp at which this response expires in seconds.
186
- */
187
- timeoutTimestamp: u64,
188
- });
189
- export const GetRequest = Struct({
190
- /*
191
- * The source state machine of this request.
192
- */
193
- source: StateMachine,
194
- /*
195
- * The destination state machine of this request.
196
- */
197
- dest: StateMachine,
198
- /*
199
- * The nonce of this request on the source chain
200
- */
201
- nonce: u64,
202
- /*
203
- * Module identifier of the sending module
204
- */
205
- from: Vector(u8),
206
- /*
207
- * Raw Storage keys that would be used to fetch the values from the counterparty
208
- * For deriving storage keys for ink contract fields follow the guide in the link below
209
- * `<https://use.ink/datastructures/storage-in-metadata#a-full-example>`
210
- * Substrate Keys
211
- */
212
- keys: Vector(Vector(u8)),
213
- /*
214
- * Some application-specific metadata relating to this request
215
- */
216
- context: Vector(u8),
217
- /*
218
- * Host timestamp at which this request expires in seconds
219
- */
220
- timeoutTimestamp: u64,
221
- });
222
- export const StorageValue = Struct({
223
- /*
224
- * The request storage keys
225
- */
226
- key: Vector(u8),
227
- /*
228
- * The verified value
229
- */
230
- value: Option(Vector(u8)),
231
- });
232
- export const GetResponse = Struct({
233
- /*
234
- * The Get request that triggered this response.
235
- */
236
- get: GetRequest,
237
- /*
238
- * Values derived from the state proof
239
- */
240
- values: Vector(StorageValue),
241
- });
242
- export const Request = Enum({
243
- /*
244
- * A post request allows a module on a state machine to send arbitrary bytes to another module
245
- * living in another state machine.
246
- */
247
- Post: PostRequest,
248
- /*
249
- * A get request allows a module on a state machine to read the storage of another module
250
- * living in another state machine.
251
- */
252
- Get: GetRequest,
253
- });
254
- export const Response = Enum({
255
- /*
256
- * The response to a POST request
257
- */
258
- Post: PostResponse,
259
- /*
260
- * The response to a GET request
261
- */
262
- Get: GetResponse,
263
- });
264
- export const RequestMessage = Struct({
265
- /*
266
- * Requests from source chain
267
- */
268
- requests: Vector(PostRequest),
269
- /*
270
- * Membership batch proof for these requests
271
- */
272
- proof: Proof,
273
- /*
274
- * Signer information. Ideally should be their account identifier
275
- */
276
- signer: Vector(u8),
277
- });
278
- export const RequestResponse = Enum({
279
- /*
280
- * A set of requests
281
- */
282
- Request: Vector(Request),
283
- /*
284
- * A set of responses
285
- */
286
- Response: Vector(Response),
287
- });
288
- export const ResponseMessage = Struct({
289
- /*
290
- * A set of either POST requests or responses to be handled
291
- */
292
- datagram: Vector(RequestResponse),
293
- /*
294
- * Membership batch proof for these requests/responses
295
- */
296
- proof: Proof,
297
- /*
298
- * Signer information. Ideally should be their account identifier
299
- */
300
- signer: Vector(u8),
301
- });
302
- export const TimeoutMessage = Enum({
303
- /*
304
- * A non memership proof for POST requests
305
- */
306
- Post: Struct({
307
- /*
308
- * Timed out requests
309
- */
310
- requests: Vector(Request),
311
- /*
312
- * Membership batch proof for these requests
313
- */
314
- proof: Proof,
315
- }),
316
- /*
317
- * A non memership proof for POST responses
318
- */
319
- PostResponse: Struct({
320
- /*
321
- * Timed out responses
322
- */
323
- responses: Vector(Response),
324
- /*
325
- * Membership batch proof for these responses
326
- */
327
- proof: Proof,
328
- }),
329
- /*
330
- * There are no proofs for Get timeouts
331
- */
332
- Get: Struct({
333
- /*
334
- * Timed out requests
335
- */
336
- requests: Vector(Request),
337
- }),
338
- });
339
- export const Message = Enum({
340
- /*
341
- * A consensus update message
342
- */
343
- ConsensusMessage: ConsensusMessage,
344
- /*
345
- * A fraud proof message
346
- */
347
- FraudProofMessage: FraudProofMessage,
348
- /*
349
- * A request message
350
- */
351
- RequestMessage: RequestMessage,
352
- /*
353
- * A response message
354
- */
355
- ResponseMessage: ResponseMessage,
356
- /*
357
- * A request timeout message
358
- */
359
- TimeoutMessage: TimeoutMessage,
360
- });
361
- //# sourceMappingURL=substrate.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"substrate.js","sourceRoot":"","sources":["../../src/utils/substrate.ts"],"names":[],"mappings":"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"}
@@ -1,68 +0,0 @@
1
- import type { ApiPromise } from "@polkadot/api";
2
- import type { HexString } from "../types";
3
- import type { SignerOptions } from "@polkadot/api/types";
4
- import { type HyperbridgeTxEvents } from "./xcmGateway";
5
- export type Params = {
6
- /** Asset symbol for the teleport operation */
7
- symbol: string;
8
- /**
9
- * Destination state machine identifier (e.g., "EVM-1", "SUBSTRATE-cere")
10
- * that specifies the target blockchain or network
11
- */
12
- destination: string;
13
- /**
14
- * Recipient address in hexadecimal format where the assets will be sent
15
- * on the destination chain
16
- */
17
- recipient: HexString;
18
- /**
19
- * Amount of tokens to teleport, represented as a bigint to handle
20
- * large numeric values precisely
21
- */
22
- amount: bigint;
23
- /**
24
- * Request timeout in block numbers or timestamp, after which the
25
- * teleport operation will be considered failed
26
- */
27
- timeout: bigint;
28
- /**
29
- * Address of the token gateway contract on the destination chain
30
- * that will process the teleported assets
31
- */
32
- tokenGatewayAddress: Uint8Array;
33
- /**
34
- * Fee paid to relayers who process the cross-chain transaction,
35
- * represented as a bigint
36
- */
37
- relayerFee: bigint;
38
- /**
39
- * Optional call data to be executed on the destination chain
40
- * as part of the teleport operation
41
- */
42
- callData?: Uint8Array;
43
- /**
44
- * Flag indicating whether to automatically redeem the tokens
45
- * for erc20
46
- */
47
- redeem: boolean;
48
- };
49
- /**
50
- * Teleports assets across chains through the token gateway.
51
- *
52
- * @param apiPromise - Polkadot API instance
53
- * @param who - SS58Address
54
- * @param params - Teleport parameters
55
- * @param params.symbol - Asset symbol
56
- * @param params.destination - Target state machine ID
57
- * @param params.recipient - Recipient address
58
- * @param params.amount - Amount to teleport
59
- * @param params.timeout - Operation timeout
60
- * @param params.tokenGatewayAddress - Gateway contract address
61
- * @param params.relayerFee - Fee for the relayer
62
- * @param params.redeem - Whether to redeem on arrival
63
- * @param params.callData - Optional additional call data
64
- * @param options - Signer options
65
- * @yields {HyperbridgeTxEvents} Stream of events indicating transaction status
66
- * @throws Error when asset ID is unknown or transaction fails
67
- */
68
- export declare function teleport(apiPromise: ApiPromise, who: string, params: Params, options: Partial<SignerOptions>): Promise<ReadableStream<HyperbridgeTxEvents>>;
@@ -1,151 +0,0 @@
1
- import { hexToBytes, pad, bytesToHex } from "viem";
2
- import { Struct, Vector, u8, u64, Option, u128, bool } from "scale-ts";
3
- import { H256, StateMachine } from "./substrate.js";
4
- import { convertStateMachineIdToEnum } from "../chain.js";
5
- import { keccakAsU8a, xxhashAsU8a } from "@polkadot/util-crypto";
6
- const TeleportParams = Struct({
7
- /// StateMachine
8
- destination: StateMachine,
9
- /// Receipient
10
- recepient: H256,
11
- /// Amount
12
- amount: u128,
13
- /// Request timeout
14
- timeout: u64,
15
- /// Token gateway address
16
- tokenGatewayAddress: Vector(u8),
17
- /// Relayer fee
18
- relayerFee: u128,
19
- /// Call data
20
- callData: Option(Vector(u8)),
21
- /// Redeem
22
- redeem: bool,
23
- });
24
- async function fetchLocalAssetId(params) {
25
- const { api, assetId } = params;
26
- // twox_128
27
- const palletPrefix = xxhashAsU8a("TokenGateway", 128);
28
- // twox_128
29
- const storagePrefix = xxhashAsU8a("LocalAssets", 128);
30
- const full_key = new Uint8Array([...palletPrefix, ...storagePrefix, ...assetId]);
31
- const hexKey = bytesToHex(full_key);
32
- // read account balance
33
- const storage_value = (await api.rpc.state.getStorage(hexKey));
34
- if (storage_value.isSome) {
35
- const assetId = storage_value.value.toU8a();
36
- return assetId;
37
- }
38
- return null;
39
- }
40
- /**
41
- * Teleports assets across chains through the token gateway.
42
- *
43
- * @param apiPromise - Polkadot API instance
44
- * @param who - SS58Address
45
- * @param params - Teleport parameters
46
- * @param params.symbol - Asset symbol
47
- * @param params.destination - Target state machine ID
48
- * @param params.recipient - Recipient address
49
- * @param params.amount - Amount to teleport
50
- * @param params.timeout - Operation timeout
51
- * @param params.tokenGatewayAddress - Gateway contract address
52
- * @param params.relayerFee - Fee for the relayer
53
- * @param params.redeem - Whether to redeem on arrival
54
- * @param params.callData - Optional additional call data
55
- * @param options - Signer options
56
- * @yields {HyperbridgeTxEvents} Stream of events indicating transaction status
57
- * @throws Error when asset ID is unknown or transaction fails
58
- */
59
- export async function teleport(apiPromise, who, params, options) {
60
- const substrateComplianceAddr = (address, stateMachine) => {
61
- if (stateMachine.startsWith("EVM-"))
62
- return pad(address, { size: 32, dir: "left" });
63
- return address;
64
- };
65
- const assetId = keccakAsU8a(params.symbol);
66
- // Fetch scale encoded local asset id
67
- const scaleEncodedAssetId = await fetchLocalAssetId({ api: apiPromise, assetId });
68
- if (scaleEncodedAssetId === null) {
69
- throw new Error("Unknown asset id provided");
70
- }
71
- const destination = convertStateMachineIdToEnum(params.destination);
72
- const recipient = hexToBytes(substrateComplianceAddr(params.recipient, params.destination));
73
- const teleportParams = {
74
- destination: destination,
75
- recepient: Array.from(recipient),
76
- amount: params.amount,
77
- timeout: BigInt(params.timeout),
78
- tokenGatewayAddress: Array.from(params.tokenGatewayAddress),
79
- relayerFee: BigInt(params.relayerFee),
80
- redeem: params.redeem,
81
- callData: params.callData ? Array.from(params.callData) : undefined,
82
- };
83
- const encoded = TeleportParams.enc(teleportParams);
84
- const fullCallData = new Uint8Array([...scaleEncodedAssetId, ...encoded]);
85
- const tx = apiPromise.tx.tokenGateway.teleport(fullCallData);
86
- let unsub = () => { };
87
- const stream = new ReadableStream({
88
- async start(controller) {
89
- unsub = await tx.signAndSend(who, options, async (result) => {
90
- const { isInBlock, isError, dispatchError, txHash, isFinalized, status } = result;
91
- // @ts-expect-error Type Mismatch
92
- const events = result.events;
93
- if (isError) {
94
- console.error("Transaction failed: ", dispatchError);
95
- controller.enqueue({ kind: "Error", error: dispatchError });
96
- return controller.close();
97
- }
98
- if (status.type === "Ready") {
99
- controller.enqueue({
100
- kind: "Ready",
101
- transaction_hash: txHash.toHex(),
102
- });
103
- }
104
- if (isFinalized) {
105
- controller.enqueue({
106
- kind: "Finalized",
107
- transaction_hash: txHash.toHex(),
108
- events: events,
109
- });
110
- return controller.close();
111
- }
112
- if (isInBlock) {
113
- const commitment_hash = readIsmpCommitmentHash(events);
114
- if (!commitment_hash) {
115
- controller.enqueue({
116
- kind: "Error",
117
- error: new Error("Commitment Hash missing"),
118
- });
119
- return controller.close();
120
- }
121
- const blockHash = status.asInBlock.toHex();
122
- const header = await apiPromise.rpc.chain.getHeader(blockHash);
123
- controller.enqueue({
124
- kind: "Dispatched",
125
- transaction_hash: txHash.toHex(),
126
- block_number: header.number.toBigInt(),
127
- commitment: commitment_hash,
128
- events: events,
129
- });
130
- }
131
- });
132
- },
133
- cancel: () => unsub(),
134
- }, {
135
- highWaterMark: 3,
136
- size: () => 1,
137
- });
138
- return stream;
139
- }
140
- function readIsmpCommitmentHash(events) {
141
- for (const record of events) {
142
- const { event } = record;
143
- if (event.section === "ismp" && event.method === "Request") {
144
- const commitment = event.data[3].toHex();
145
- if (!commitment)
146
- return;
147
- return commitment;
148
- }
149
- }
150
- }
151
- //# sourceMappingURL=tokenGateway.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"tokenGateway.js","sourceRoot":"","sources":["../../src/utils/tokenGateway.ts"],"names":[],"mappings":"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"}
@@ -1,81 +0,0 @@
1
- import type { ApiPromise } from "@polkadot/api";
2
- import type { HexString } from "../types";
3
- import type { SignerOptions } from "@polkadot/api/types";
4
- import type { EventRecord } from "@polkadot/types/interfaces";
5
- import type { ISubmittableResult } from "@polkadot/types/types";
6
- export type HyperbridgeTxEvents = {
7
- kind: "Ready";
8
- transaction_hash: HexString;
9
- } | {
10
- kind: "Dispatched";
11
- transaction_hash: HexString;
12
- block_number: bigint;
13
- commitment: HexString;
14
- events: ISubmittableResult["events"];
15
- } | {
16
- kind: "Finalized";
17
- transaction_hash: HexString;
18
- events: ISubmittableResult["events"];
19
- } | {
20
- kind: "Error";
21
- error: unknown;
22
- };
23
- /**
24
- * Parameters for teleporting DOT from Polkadot relay chain to EVM-based destination
25
- */
26
- export type XcmGatewayParams = {
27
- /**
28
- * Destination state machine ID (chain ID) where assets will be teleported to
29
- * This value identifies the specific EVM chain in the destination network
30
- */
31
- destination: number;
32
- /**
33
- * The recipient address on the destination chain (in hex format)
34
- * This is the EVM address that will receive the teleported assets
35
- */
36
- recipient: HexString;
37
- /**
38
- * Amount of DOT to teleport
39
- * This will be converted to the appropriate format internally
40
- */
41
- amount: bigint;
42
- /**
43
- * Request timeout value in blocks or timestamp
44
- * Specifies how long the teleport request remains valid before expiring
45
- */
46
- timeout: bigint;
47
- /**
48
- * The parachain ID of the Hyperbridge
49
- */
50
- paraId: number;
51
- };
52
- /**
53
- * Teleports DOT tokens from Polkadot relay chain to an EVM-based destination chain
54
- * using XCM (Cross-Consensus Message Format).
55
- *
56
- * This function initiates a teleport transaction, monitors its status, and yields events
57
- * about the transaction's progress through an AsyncGenerator. It handles the complete
58
- * lifecycle of a teleport operation:
59
- * 1. Transaction preparation and signing
60
- * 2. Broadcasting to the relay chain
61
- * 3. Tracking the transaction until it's included in a block
62
- * 4. Monitoring Hyperbridge for the commitment hash
63
- *
64
- * @param relayApi - Polkadot API instance connected to the relay chain
65
- * @param hyperbridge - Polkadot API instance connected to the Hyperbridge parachain
66
- * @param who - Sender's SS58Address address
67
- * @param options - Transaction signing options
68
- * @param params - Teleport parameters including destination, recipient, and amount
69
- * @yields {HyperbridgeTxEvents} Stream of events indicating transaction status
70
- * @throws {Error} If there's an issue getting the Hyperbridge block or other failures
71
- */
72
- export declare function teleportDot(relayApi: ApiPromise, hyperbridge: ApiPromise, who: string, options: Partial<SignerOptions>, params: XcmGatewayParams): Promise<ReadableStream<HyperbridgeTxEvents>>;
73
- /**
74
- * Extracts the commitment hash from the event data if the event data
75
- * matches the expected data
76
- */
77
- export declare function extractCommitmentHashFromEvent({ record, from: who, params, }: {
78
- record: EventRecord;
79
- from: string;
80
- params: Pick<XcmGatewayParams, "destination" | "recipient">;
81
- }): HexString | undefined;