@hyperbridge/sdk 1.0.0 → 1.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +45 -3
- package/dist/browser/index.d.ts +2190 -0
- package/dist/browser/index.js +11662 -0
- package/dist/browser/index.js.map +1 -0
- package/dist/browser/web_bg.wasm +0 -0
- package/dist/node/index.d.ts +2190 -0
- package/dist/node/index.js +11613 -0
- package/dist/node/index.js.map +1 -0
- package/dist/node/node_bg.wasm +0 -0
- package/package.json +46 -16
- package/plugins/vite.d.ts +11 -0
- package/plugins/vite.js +55 -0
- package/dist/abis/erc6160.d.ts +0 -370
- package/dist/abis/erc6160.js +0 -238
- package/dist/abis/erc6160.js.map +0 -1
- package/dist/abis/evmHost.d.ts +0 -1752
- package/dist/abis/evmHost.js +0 -2250
- package/dist/abis/evmHost.js.map +0 -1
- package/dist/abis/handler.d.ts +0 -580
- package/dist/abis/handler.js +0 -750
- package/dist/abis/handler.js.map +0 -1
- package/dist/abis/pingModule.d.ts +0 -594
- package/dist/abis/pingModule.js +0 -765
- package/dist/abis/pingModule.js.map +0 -1
- package/dist/abis/tokenGateway.d.ts +0 -839
- package/dist/abis/tokenGateway.js +0 -471
- package/dist/abis/tokenGateway.js.map +0 -1
- package/dist/chain.d.ts +0 -83
- package/dist/chain.js +0 -34
- package/dist/chain.js.map +0 -1
- package/dist/chains/evm.d.ts +0 -86
- package/dist/chains/evm.js +0 -249
- package/dist/chains/evm.js.map +0 -1
- package/dist/chains/substrate.d.ts +0 -88
- package/dist/chains/substrate.js +0 -287
- package/dist/chains/substrate.js.map +0 -1
- package/dist/client.d.ts +0 -216
- package/dist/client.js +0 -774
- package/dist/client.js.map +0 -1
- package/dist/index.d.ts +0 -6
- package/dist/index.js +0 -7
- package/dist/index.js.map +0 -1
- package/dist/queries.d.ts +0 -3
- package/dist/queries.js +0 -78
- package/dist/queries.js.map +0 -1
- package/dist/tests/hyperbridgeRequests.test.d.ts +0 -1
- package/dist/tests/hyperbridgeRequests.test.js +0 -415
- package/dist/tests/hyperbridgeRequests.test.js.map +0 -1
- package/dist/tests/postRequest.test.d.ts +0 -1
- package/dist/tests/postRequest.test.js +0 -293
- package/dist/tests/postRequest.test.js.map +0 -1
- package/dist/tests/setup.d.ts +0 -1
- package/dist/tests/setup.js +0 -6
- package/dist/tests/setup.js.map +0 -1
- package/dist/tests/tokenGateway.test.d.ts +0 -1
- package/dist/tests/tokenGateway.test.js +0 -85
- package/dist/tests/tokenGateway.test.js.map +0 -1
- package/dist/tests/xcmGateway.test.d.ts +0 -1
- package/dist/tests/xcmGateway.test.js +0 -71
- package/dist/tests/xcmGateway.test.js.map +0 -1
- package/dist/types/index.d.ts +0 -238
- package/dist/types/index.js +0 -30
- package/dist/types/index.js.map +0 -1
- package/dist/utils/mmr.d.ts +0 -13
- package/dist/utils/mmr.js +0 -153
- package/dist/utils/mmr.js.map +0 -1
- package/dist/utils/substrate.d.ts +0 -1913
- package/dist/utils/substrate.js +0 -361
- package/dist/utils/substrate.js.map +0 -1
- package/dist/utils/tokenGateway.d.ts +0 -68
- package/dist/utils/tokenGateway.js +0 -151
- package/dist/utils/tokenGateway.js.map +0 -1
- package/dist/utils/xcmGateway.d.ts +0 -81
- package/dist/utils/xcmGateway.js +0 -218
- package/dist/utils/xcmGateway.js.map +0 -1
- package/dist/utils.d.ts +0 -57
- package/dist/utils.js +0 -96
- package/dist/utils.js.map +0 -1
|
@@ -1,293 +0,0 @@
|
|
|
1
|
-
import "log-timestamp";
|
|
2
|
-
import { createPublicClient, createWalletClient, decodeFunctionData, getContract, hexToBytes, http, parseAbi, parseEventLogs, } from "viem";
|
|
3
|
-
import { privateKeyToAccount } from "viem/accounts";
|
|
4
|
-
import { bscTestnet, gnosisChiado } from "viem/chains";
|
|
5
|
-
import { IndexerClient } from "../client.js";
|
|
6
|
-
import { RequestStatus, TimeoutStatus } from "../types/index.js";
|
|
7
|
-
import { postRequestCommitment } from "../utils.js";
|
|
8
|
-
import ERC6160 from "../abis/erc6160.js";
|
|
9
|
-
import PING_MODULE from "../abis/pingModule.js";
|
|
10
|
-
import EVM_HOST from "../abis/evmHost.js";
|
|
11
|
-
import HANDLER from "../abis/handler.js";
|
|
12
|
-
import { EvmChain, SubstrateChain } from "../chain.js";
|
|
13
|
-
describe("PostRequest", () => {
|
|
14
|
-
let indexer;
|
|
15
|
-
beforeAll(async () => {
|
|
16
|
-
const { gnosisChiadoHost, bscIsmpHost } = await setUp();
|
|
17
|
-
indexer = new IndexerClient({
|
|
18
|
-
source: {
|
|
19
|
-
consensusStateId: "BSC0",
|
|
20
|
-
rpcUrl: process.env.BSC_CHAPEL,
|
|
21
|
-
stateMachineId: "EVM-97",
|
|
22
|
-
host: bscIsmpHost.address,
|
|
23
|
-
},
|
|
24
|
-
dest: {
|
|
25
|
-
consensusStateId: "GNO0",
|
|
26
|
-
rpcUrl: process.env.GNOSIS_CHIADO,
|
|
27
|
-
stateMachineId: "EVM-10200",
|
|
28
|
-
host: gnosisChiadoHost.address,
|
|
29
|
-
},
|
|
30
|
-
hyperbridge: {
|
|
31
|
-
consensusStateId: "PARA",
|
|
32
|
-
stateMachineId: "KUSAMA-4009",
|
|
33
|
-
wsUrl: process.env.HYPERBRIDGE_GARGANTUA,
|
|
34
|
-
},
|
|
35
|
-
pollInterval: 1000, // every second
|
|
36
|
-
});
|
|
37
|
-
});
|
|
38
|
-
it("Should scale encode the ISMP message correctly", async () => {
|
|
39
|
-
const hyperbridge = new SubstrateChain({
|
|
40
|
-
// stateMachineId: "KUSAMA-4009",
|
|
41
|
-
ws: process.env.HYPERBRIDGE_GARGANTUA,
|
|
42
|
-
hasher: "Keccak",
|
|
43
|
-
});
|
|
44
|
-
await hyperbridge.connect();
|
|
45
|
-
const tx = hyperbridge.encode({
|
|
46
|
-
kind: "TimeoutPostRequest",
|
|
47
|
-
proof: {
|
|
48
|
-
consensusStateId: "GNO0",
|
|
49
|
-
height: 14521611n,
|
|
50
|
-
proof: "0x1c5108f90211a0948c6c60ecc8a4c5b52abc1dd10f443ebb8260026b0d612bca6b9a109212b3b9a0dca88b1cb7af156a5ab839733fba6f5e453f79ae6e9b562d842e79b306f8ecb3a04ad21a053a57b8e4809e4784a1ff1a8c88c8df8aa390a6e564d95c5453b7c77ea05a35d3990b8c0aba736489c26a60d92e05af997ba7650e1634c5c2be8072154aa08341930c3f806f141a6f466a943081d21075cc11bb8d8581ff713fd6a83e0295a00f4c53e27af241636913b27be4e1ab580e581da0ea9d7d0a11c3ba8b73a4df81a08305b1e68ad37a0a002c581a22226a750ea111309034eecf3be7877256cbe10aa098e0f88044865234a7b764acbe97dfdcc346c64f2d63fbea3af8b896d37b865fa083050f2c1090ac0019a31dd6e84003021efc47f5a3c4dedbd169d91be7919a83a0c1faf279cc5357f52d599c445ba348878526d800608cedc27dd895c089c6a057a026c8da47d503c7fec2d87a3f85566fadf6c63df1dd6ec1dda2afa26ea577decda086815dd8cf3128abc904157125d8267f8a4e9ee1e861c56948fa6b6168f3ae91a0a81e2e30cd6cde88f964bcc7c899fd32d407af2a8468edcae84a54bb8fc9d0a3a007bf1d0f0353768af0e089b573ec639ef4249501f7a1039eb450db10cf28f028a0f7531550fcec0ad4b7a0d5f96fa6365d168de66a728c184eeb5ebbe8d191bcf7a00dd5b164fa5d099edcbe7e0162d12641be90c72bb7a8c37e1febc8d1bd5c7b3b805108f90211a09a1d017a8974b524b67f0a921e89e325a8ed0ffe7b8892af8fe4bd2b99c66558a0ddf5c3ffb5c578b4ca041827aef19b4c9ead253d78c67de74c0b253f2f56a77ea0c6b54e42752c28482f9e58ebd22d2d7426f6d5cc338f095ea7671779a9c7f8dca076b618c9095f44fbba89dc5fe73aebf5c45dac20c03c8daccd8f73ceb24cba2aa0f1017b5734304a4ced1661857526efb7855d377242108d31c11643284126ef9ba0f4d111be728321b23cea690a7b9686ea51cbfc823c46f9eb5b6f0b96468feb28a0ee238f35db6c736a95d09fa9008ba8e25db3a43fbb30e7c51d7411ee624e415ba0e0b1ab410b78755484780705e3055846eba49200b103c8a4644cc37550c1d021a03c8cdc01c96ef1e540a6926a3eec37f6b2613238c94cbd42c13cd216c08d9b12a025a093975e7ed5c51bec4532d0c28edf786e1371c461f1481b6bb062ab288608a00ed06e2a0a12022da0413b0df5041454e13f4dfdfa6b83e319bd384c0dc512b3a028e008fbcdba5786df9b8b99f62e9e73371b3495bba3b59a5006c606d5ab0ea7a0692b1bae78364df1315367a88c0c47109517baae362693dd79e5a85fed857d74a0f263961c7a17e6472641655af05daed3b3b70658180b4d0de3d95803c913c407a0f870b1a0ae3b7e6d8f607a338411d65b4b7767eb7fd7ddcf6b9b8d1410277e68a04be83aa290d05e9af78d11ac3143f0b08d7b87521688c753d728ca6b803f6244805108f90211a095fb2f625de7c891c05162826929b968b4e59e64b826afdc9a59fd2541d0e44da0dfc72e5ac52c0ec372d7c3de2a77ea59763c125e47d5205c853b0a9f35f64eafa0df761e6267819e5532ff85de0ef2560aef8f36795ed98229522472c65280cea7a09f7bc872fceb7837b7a0f474e0a6deafbe45874bbab03afbf501e4ac480a9d47a06fb5586dbe8dfc142f0be2a879cc28a864d47166d11c9aa57acf1ba14ef7eef0a00a8b655c514f7b93307f022108ec5a183be1e9096ac9612cd8a17f114bfc3c75a0655d4d9e180ce561d946ce4f1315afda7c1eccf740a2fe95e86091a008deb21aa04c4d1e5d4002204d98071a2665fb129998711eaf18b707d527a9bda172c461c1a0a682c3d910f43d54b4a6ce04cf0a920bf547033a0bdee23c7302c10fdf41c63ca09487089830300a19bd4d687476aa9adb28b9cf5f65cdf61a3518395dd0eff401a03d13224efbb3ff1b18a7c40aaebd674f4a7c691811eb669e6cadf1e043aa0750a0251e21bfe77234fa3bfb9928805af1277f1ee6a926f41093002f9acf1b6d9768a0fe0c5a99d645bd10b0e16cc5be8119c093f0db286e2ae80aeace6228ec23b6eea06ab1924c038d4cacee65538304695f8de7ff1c031376696e0be49b527ea84b3ca0a9c56a940a38b3a66ce5a011305960728cf38199286044e279ff698e9ce0ede6a00c06521e6742b3b7a8aa281a104698f27b0cd8d5390407daa3dea17f090fe569805108f90211a0cf37e8b4ed3bb3639c29e8fc5aeeb5b1206ce04901b9d51da34630ab40f34315a06be004fb4675f716a473c56177b79495b82c591813f8e7117f6b7a48202fdf5ba0d10ed0457ed1f3412db8d7537965ceb6fd564f07665d92cd69f57c60bc397025a058ec4a802528243b2a2119f123c19f035bfafc12ec96a2c0f6b4560ad44ae8d3a013b26d7707e7d0325317ace8de38989c690d04f2108c53be0942fae5cb0138e3a0d560187232aa66cc14705e9a1516c0d0184321df87ef5d47a63793f6b474ba6da089f077ee6eef8bc74ef6abe1684e47a6aada71a642ef9fb196d1b324a1de3c43a084a2bd45a56c85f7ba779b29c6380528d3d41333f153a24f53ff74d5af545235a016fe9254442db909b6a26b20a7c53901258f951c45044e6f9c938c8f589c0a9ba09e60c9e117435ece82c77963133c45ccf747c62496a46096e97d8628b8b13f26a04e3cffb04935d9915ffe51c323617de30dfca9403107ec194e1b85d2b458d7d0a0424ab8ab54a83774bd1eebcedc673cc01003717d17d8020fe85ae0393cc0e192a096da2524c757030a1079aa5d72a7de7be2537bdb41724c3999ef974e601f28cea041dbfd72ec2b4483056c260163bd7992f0cad4aa9ea1431472489c8e72bbe0aaa0e1944e4f8d1e8dffd9c118e209f0da886472ed8f82c4528aa8326ebab2098580a0d30eb7982d94297340a0aa5d612d16faae89df31ab20c2ca9da0378b1c54681a804d03f8d180a008e0eefa0183e091c2d605fce96e72446df6727e3a9573a12d51ca1463e66646a0c97bb301153ef741b60ceade236f492ac9dfd8c2a258caa165d21f987bbddc83a0ccfc8d240c5fb876969cd673617a860c35cffd969e0f6f8bdbc723307a0f841880808080a05daf87c236d3cec54be9abd4152e41f24a3099fec3c963c403469b77399c6d638080a0747e7e7315c251e1e44bcc6b8175e998320352061d7e6221746c3643b40c50508080a063c7bb9c5c53f351713f35177ae7bd54b57d0c62381c7484c1283a8dec6625e980804d01f851808080808080808080a06ec39144a27d9b64efe6db9b9283ceaa0381fd97d4c72f988e08357ef8ed8d9180808080a0bac8d471d92f1032eebdee3ac2a3bddd5804a5d324f1e4b8089540a9705d59ed8080a501f8679e2058ffd1710ecb31f89ba278f724badf9ad59584e4f90244ec528a3308feb846f8440180a0e0a4a5d6327d44a504037776854a3c423f51f21d6261387c4f835eb54299ee04a05f6dcb4dbb25da4ccadbb6f4660038481bdee8d3d6ac92910c7a6afe4b128cd0045058a41b89f4871725e5d898d98ef4bf917601c5eb145108f90211a0bd912e9bb0d615c781c25848951288013fc57ea9f1f0c9c7c26c463c3486a041a0de4f88c2a54f752a9a0753b92d0688f628f3d9bbefc846775787194f69d611e3a08872d061c1cc82e833cdec0343d7459d3d0e783465eb26092984f927fa294a95a06322f53441a8fa9f8de9a7d0f947a78e976060bec2982e37dc83b3b472360d7aa04427c604d9bb04df996a76be768e92e473876790d44ace9276b9889f4f44e411a087fbb0ce680b9454d94e10d38a1ad888de629b837afca4f3606e559dac8f4196a0c1cc52248ff71edccc25edd78e6d45c5d456858812090419d310c9f5da1d1b75a0013eefc9b3abd91a7108312a4139ef7dd76800884a3cbd1ccddf5c480e056934a034a167eb036651a9e0b3ff8478fbf284f6d03487aee0dd92b1ef25926a144779a0c78c14222e216fe49e633194808b14adb90d1495b7f9a85ee9fd9f5244426270a05c7ce9359fb7008546d2198f35599d99c9a8f15856a829310d00a252378bb8fca080c34b805b7f080edfd0f4626dfe375177a2dee0d877c9289dee77c27926515ea061f9a47e3ee5e4267d3d06059b1ead3e0cb6b09648dac712bf1081b2ba96e4efa0ab9264ffab8ad5a39bd49d0145741faee9c48456d886456a3dee823832dbd8b5a07306361d1ec2f53320108262300ad840247c50856ffe4f15288ad938ae5d7311a0e3a754b96c767dbabf0bab5fcdfa89bcd5090069453e9c93cdaeca8f0364175b805108f90211a07709767459e851bfb2afee62a891596801a19a5e312f38804769a6ec1b08503ea016ee2a870298b3820f09eabba17d398bdcb2854dab24913bfe3c42db8aa3076ea01d6e60144cb2af7d5b736d01a67092d000292ea1b579477ecdd7e3e7cea4c8f9a0998e0bb03ddec391b980fd44f4c1d53edce04beb416028c5bebe182740084e88a07c932c5fef311a348194d5c92626476d618abda6cbb85c8ebccd7379d28715d7a00675f4d77b0dbbd293ea6ebe30ac4ecd25783c0fe0b2b5b6ca104a45f7dafc4da041facc5bcb26f8c9782abbc4a9d758807877d2bcb334490f9b30328f6cd6f5cca0e49fdfc75c8c17899310f1dcd5fd39006a1e4b5c7b7348e113498d0c5f8d33cba0d94a1af5fd0fc0612af04d1b34e65cffc55c26b48ccf8304201b36aed8610c13a0e99921dcdad0ee6a59ac3c18e3f8f230d94960e0d9f1f8ee42e66a2800d8ea85a096d74d756c0614605400f2cfed4288b5c749aa83fc8c621df84620ea0805f58ba01a7a062edd3555372c176c3ee44ece0cff099f49c3d31ba623dda195c3ab9a3da07c7363c3181257dda6726da1df43e60fd3466f90780b2788513a4a259a01b69aa0cbd2fd49e10525d9f705ee670e5e4a03a9cd83806ed3673a1ff026cba942b15ca0f18f0a5587d18fc1bccb67f7574f8246b0d49eaaabd6d2d9f108d4802d13452da0b48138276dbe009c9221084821521f01986c2bbb7da9862349ba672c77d9f2d5805107f901d1a0c70c0047a62253b52fc39226a7eaa55356f1f0b75b1e2a0138b6bc61b84355c9a0a9652fd2e605f2f6705de369f9c6abf1b5b0891fb1be73f8bca492003005cc9ca0198b8955576bdbfcb957f6721302a5f4c3748fe8eb9910620a53bba25c70056aa03870f2c723b2c099169030a6edafd911b48ae9ec76e37a6c836b67f891e805faa05b7c3a7edac8be95cd8bf5092c620b9672ccd4e0642c148ece9dd62a7d4d45b7a095f5c32e09269c1476f0098120eeafb998c280092583f915a7338006713a8136a08bd6298bfc98f6f25c8adc4a28005af529478ddd70a48111e9c807032c002393a04704ab8c161e123e6b8c2a2fdc0aba207f37f8269154587ee5c1902e95a8ddd3a0eb96c063c0048ab4ffa32bd3fd0cfd70ebc96222b3ff35c345ce30a0666ea8c280a014e30d258afcc23ea4e16493fd04aa95e87325480e583cda6713dbc3b42766baa0631597a49f516827dd2abda01b46dd1da17ee14ffb5c0e148eb36ba66e915f42a0323a1937eb7d238e2a7f5bd2537d250622e68344d5cc60987c147773dddeb6d680a0956b6cdffa6b1496ae1dfb2284161c98d57503cb91cfc83b6e5aaa79790cec68a0b23d3c71647522b78f5bf35ea01e3fbe2809d6a86305140d970e9734720aa13d804d01f85180a000b4bcbd5d7ff682d53a0e6b503eb602caa980433067877fac4ab5146b88abad80808080a0222ba5547832038028bad582b04df45de3149a42c99514f67cfd89ea9f97a9e78080808080808080808000",
|
|
51
|
-
stateMachine: "EVM-10200",
|
|
52
|
-
},
|
|
53
|
-
requests: [
|
|
54
|
-
{
|
|
55
|
-
body: "0x68656c6c6f2066726f6d2045564d2d3937",
|
|
56
|
-
dest: "EVM-10200",
|
|
57
|
-
from: "0xFE9f23F0F2fE83b8B9576d3FC94e9a7458DdDD35",
|
|
58
|
-
nonce: 2247n,
|
|
59
|
-
source: "EVM-97",
|
|
60
|
-
timeoutTimestamp: 1740610545n,
|
|
61
|
-
to: "0xfe9f23f0f2fe83b8b9576d3fc94e9a7458dddd35",
|
|
62
|
-
},
|
|
63
|
-
],
|
|
64
|
-
});
|
|
65
|
-
const evmChain = new EvmChain({
|
|
66
|
-
url: process.env.GNOSIS_CHIADO,
|
|
67
|
-
chainId: 10200,
|
|
68
|
-
host: "0x58A41B89F4871725E5D898d98eF4BF917601c5eB",
|
|
69
|
-
});
|
|
70
|
-
const receipt = await evmChain.queryRequestReceipt("0x659f5bc8bb0073d4f1a25c1d420770d6aa08177bdf8d6bd6bd8476184d77de7d");
|
|
71
|
-
expect(receipt).toBeUndefined();
|
|
72
|
-
// should not throw
|
|
73
|
-
hyperbridge.api.tx.ismp.handleUnsigned(hexToBytes(tx).slice(2));
|
|
74
|
-
});
|
|
75
|
-
it("should successfully stream and query the request status", async () => {
|
|
76
|
-
const { bscTestnetClient, gnosisChiadoHandler, bscPing, gnosisChiadoClient, gnosisChiadoHost } = await setUp();
|
|
77
|
-
console.log("\n\nSending Post Request\n\n");
|
|
78
|
-
const hash = await bscPing.write.ping([
|
|
79
|
-
{
|
|
80
|
-
dest: await gnosisChiadoHost.read.host(),
|
|
81
|
-
count: BigInt(1),
|
|
82
|
-
fee: BigInt(0),
|
|
83
|
-
module: process.env.PING_MODULE_ADDRESS,
|
|
84
|
-
timeout: BigInt(60 * 60),
|
|
85
|
-
},
|
|
86
|
-
]);
|
|
87
|
-
const receipt = await bscTestnetClient.waitForTransactionReceipt({
|
|
88
|
-
hash,
|
|
89
|
-
confirmations: 1,
|
|
90
|
-
});
|
|
91
|
-
console.log(`Transaction reciept: ${bscTestnet.blockExplorers.default.url}/tx/${hash}`);
|
|
92
|
-
console.log("Block: ", receipt.blockNumber);
|
|
93
|
-
// parse EvmHost PostRequestEvent emitted in the transcation logs
|
|
94
|
-
const event = parseEventLogs({ abi: EVM_HOST.ABI, logs: receipt.logs })[0];
|
|
95
|
-
if (event.eventName !== "PostRequestEvent") {
|
|
96
|
-
throw new Error("Unexpected Event type");
|
|
97
|
-
}
|
|
98
|
-
const request = event.args;
|
|
99
|
-
console.log("PostRequestEvent", { request });
|
|
100
|
-
const commitment = postRequestCommitment(request);
|
|
101
|
-
for await (const status of indexer.postRequestStatusStream(commitment)) {
|
|
102
|
-
switch (status.status) {
|
|
103
|
-
case RequestStatus.SOURCE_FINALIZED: {
|
|
104
|
-
console.log(`Status ${status.status}, Transaction: https://gargantua.statescan.io/#/extrinsics/${status.metadata.transactionHash}`);
|
|
105
|
-
break;
|
|
106
|
-
}
|
|
107
|
-
case RequestStatus.HYPERBRIDGE_DELIVERED: {
|
|
108
|
-
console.log(`Status ${status.status}, Transaction: https://gargantua.statescan.io/#/extrinsics/${status.metadata.transactionHash}`);
|
|
109
|
-
break;
|
|
110
|
-
}
|
|
111
|
-
case RequestStatus.HYPERBRIDGE_FINALIZED: {
|
|
112
|
-
console.log(`Status ${status.status}, Transaction: https://gnosis-chiado.blockscout.com/tx/${status.metadata.transactionHash}`);
|
|
113
|
-
const { args, functionName } = decodeFunctionData({
|
|
114
|
-
abi: HANDLER.ABI,
|
|
115
|
-
data: status.metadata.calldata,
|
|
116
|
-
});
|
|
117
|
-
expect(functionName).toBe("handlePostRequests");
|
|
118
|
-
try {
|
|
119
|
-
const hash = await gnosisChiadoHandler.write.handlePostRequests(args);
|
|
120
|
-
await gnosisChiadoClient.waitForTransactionReceipt({
|
|
121
|
-
hash,
|
|
122
|
-
confirmations: 1,
|
|
123
|
-
});
|
|
124
|
-
console.log(`Transaction submitted: https://gnosis-chiado.blockscout.com/tx/${hash}`);
|
|
125
|
-
}
|
|
126
|
-
catch (e) {
|
|
127
|
-
console.error("Error self-relaying: ", e);
|
|
128
|
-
}
|
|
129
|
-
break;
|
|
130
|
-
}
|
|
131
|
-
case RequestStatus.DESTINATION: {
|
|
132
|
-
console.log(`Status ${status.status}, Transaction: https://gnosis-chiado.blockscout.com/tx/${status.metadata.transactionHash}`);
|
|
133
|
-
break;
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
const req = await indexer.queryRequestWithStatus(commitment);
|
|
138
|
-
console.log(JSON.stringify(req, null, 4));
|
|
139
|
-
expect(req?.statuses.length).toBe(5);
|
|
140
|
-
}, 600000);
|
|
141
|
-
test.fails("should stream and query the timeout status", async () => {
|
|
142
|
-
const { bscTestnetClient, bscHandler, bscPing, gnosisChiadoHost } = await setUp();
|
|
143
|
-
console.log("\n\nSending Post Request\n\n");
|
|
144
|
-
const hash = await bscPing.write.ping([
|
|
145
|
-
{
|
|
146
|
-
dest: await gnosisChiadoHost.read.host(),
|
|
147
|
-
count: BigInt(1),
|
|
148
|
-
fee: BigInt(0),
|
|
149
|
-
module: process.env.PING_MODULE_ADDRESS,
|
|
150
|
-
timeout: BigInt(180), // so it can timeout
|
|
151
|
-
},
|
|
152
|
-
]);
|
|
153
|
-
const receipt = await bscTestnetClient.waitForTransactionReceipt({
|
|
154
|
-
hash,
|
|
155
|
-
confirmations: 1,
|
|
156
|
-
});
|
|
157
|
-
console.log(`Transaction reciept: ${bscTestnet.blockExplorers.default.url}/tx/${hash}`);
|
|
158
|
-
console.log("Block: ", receipt.blockNumber);
|
|
159
|
-
// parse EvmHost PostRequestEvent emitted in the transcation logs
|
|
160
|
-
const event = parseEventLogs({ abi: EVM_HOST.ABI, logs: receipt.logs })[0];
|
|
161
|
-
if (event.eventName !== "PostRequestEvent") {
|
|
162
|
-
throw new Error("Unexpected Event type");
|
|
163
|
-
}
|
|
164
|
-
const request = event.args;
|
|
165
|
-
console.log("PostRequestEvent", { request });
|
|
166
|
-
const commitment = postRequestCommitment(request);
|
|
167
|
-
const statusStream = indexer.postRequestStatusStream(commitment);
|
|
168
|
-
for await (const status of statusStream) {
|
|
169
|
-
console.log(JSON.stringify(status, null, 4));
|
|
170
|
-
if (status.status === TimeoutStatus.PENDING_TIMEOUT) {
|
|
171
|
-
console.log("Request is now timed out", request.timeoutTimestamp);
|
|
172
|
-
}
|
|
173
|
-
}
|
|
174
|
-
console.log("Starting timeout stream");
|
|
175
|
-
for await (const timeout of indexer.postRequestTimeoutStream(commitment)) {
|
|
176
|
-
console.log(JSON.stringify(timeout, null, 4));
|
|
177
|
-
switch (timeout.status) {
|
|
178
|
-
case TimeoutStatus.DESTINATION_FINALIZED_TIMEOUT:
|
|
179
|
-
console.log(`Status ${timeout.status}, Transaction: https://gargantua.statescan.io/#/extrinsics/${timeout.metadata?.transactionHash}`);
|
|
180
|
-
break;
|
|
181
|
-
case TimeoutStatus.HYPERBRIDGE_TIMED_OUT:
|
|
182
|
-
console.log(`Status ${timeout.status}, Transaction: https://gargantua.statescan.io/#/extrinsics/${timeout.metadata?.transactionHash}`);
|
|
183
|
-
break;
|
|
184
|
-
case TimeoutStatus.HYPERBRIDGE_FINALIZED_TIMEOUT: {
|
|
185
|
-
console.log(`Status ${timeout.status}, Transaction: https://testnet.bscscan.com/tx/${timeout.metadata?.transactionHash}`);
|
|
186
|
-
const { args, functionName } = decodeFunctionData({
|
|
187
|
-
abi: HANDLER.ABI,
|
|
188
|
-
data: timeout.metadata.calldata,
|
|
189
|
-
});
|
|
190
|
-
expect(functionName).toBe("handlePostRequestTimeouts");
|
|
191
|
-
try {
|
|
192
|
-
const hash = await bscHandler.write.handlePostRequestTimeouts(args);
|
|
193
|
-
await bscTestnetClient.waitForTransactionReceipt({
|
|
194
|
-
hash,
|
|
195
|
-
confirmations: 1,
|
|
196
|
-
});
|
|
197
|
-
console.log(`Transaction timeout submitted: https://testnet.bscscan.com/tx/${hash}`);
|
|
198
|
-
}
|
|
199
|
-
catch (e) {
|
|
200
|
-
console.error("Error self-relaying: ", e);
|
|
201
|
-
}
|
|
202
|
-
break;
|
|
203
|
-
}
|
|
204
|
-
default:
|
|
205
|
-
console.log("Unknown timeout status");
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
}
|
|
209
|
-
const req = await indexer.queryRequestWithStatus(commitment);
|
|
210
|
-
console.log("Full status", JSON.stringify(req, null, 4));
|
|
211
|
-
const hyperbridgeFinalizedStatus = req?.statuses.find((status) => status.status === TimeoutStatus.HYPERBRIDGE_FINALIZED_TIMEOUT);
|
|
212
|
-
expect(hyperbridgeFinalizedStatus).toBeDefined();
|
|
213
|
-
expect(hyperbridgeFinalizedStatus?.metadata.calldata).toBeDefined();
|
|
214
|
-
}, 1200000);
|
|
215
|
-
});
|
|
216
|
-
async function setUp() {
|
|
217
|
-
const account = privateKeyToAccount(process.env.PRIVATE_KEY);
|
|
218
|
-
const bscWalletClient = createWalletClient({
|
|
219
|
-
chain: bscTestnet,
|
|
220
|
-
account,
|
|
221
|
-
transport: http(process.env.BSC_CHAPEL),
|
|
222
|
-
});
|
|
223
|
-
const gnosisChiadoWallet = createWalletClient({
|
|
224
|
-
chain: gnosisChiado,
|
|
225
|
-
account,
|
|
226
|
-
transport: http(process.env.GNOSIS_CHIADO),
|
|
227
|
-
});
|
|
228
|
-
const bscTestnetClient = createPublicClient({
|
|
229
|
-
chain: bscTestnet,
|
|
230
|
-
transport: http(process.env.BSC_CHAPEL),
|
|
231
|
-
});
|
|
232
|
-
const gnosisChiadoClient = createPublicClient({
|
|
233
|
-
chain: gnosisChiado,
|
|
234
|
-
transport: http(process.env.GNOSIS_CHIADO),
|
|
235
|
-
});
|
|
236
|
-
const bscPing = getContract({
|
|
237
|
-
address: process.env.PING_MODULE_ADDRESS,
|
|
238
|
-
abi: PING_MODULE.ABI,
|
|
239
|
-
client: { public: bscTestnetClient, wallet: bscWalletClient },
|
|
240
|
-
});
|
|
241
|
-
const bscIsmpHostAddress = await bscPing.read.host();
|
|
242
|
-
const bscIsmpHost = getContract({
|
|
243
|
-
address: bscIsmpHostAddress,
|
|
244
|
-
abi: EVM_HOST.ABI,
|
|
245
|
-
client: bscTestnetClient,
|
|
246
|
-
});
|
|
247
|
-
const bscHostParams = await bscIsmpHost.read.hostParams();
|
|
248
|
-
const bscHandler = getContract({
|
|
249
|
-
address: bscHostParams.handler,
|
|
250
|
-
abi: HANDLER.ABI,
|
|
251
|
-
client: { public: bscTestnetClient, wallet: bscWalletClient },
|
|
252
|
-
});
|
|
253
|
-
const bscFeeToken = getContract({
|
|
254
|
-
address: bscHostParams.feeToken,
|
|
255
|
-
abi: ERC6160.ABI,
|
|
256
|
-
client: { public: bscTestnetClient, wallet: bscWalletClient },
|
|
257
|
-
});
|
|
258
|
-
const gnosisChiadoPing = getContract({
|
|
259
|
-
address: process.env.PING_MODULE_ADDRESS,
|
|
260
|
-
abi: PING_MODULE.ABI,
|
|
261
|
-
client: gnosisChiadoClient,
|
|
262
|
-
});
|
|
263
|
-
const gnosisChiadoHostAddress = await gnosisChiadoPing.read.host();
|
|
264
|
-
const gnosisChiadoHost = getContract({
|
|
265
|
-
address: gnosisChiadoHostAddress,
|
|
266
|
-
abi: EVM_HOST.ABI,
|
|
267
|
-
client: gnosisChiadoClient,
|
|
268
|
-
});
|
|
269
|
-
const gnosisChiadoHostParams = await gnosisChiadoHost.read.hostParams();
|
|
270
|
-
const gnosisChiadoHandler = getContract({
|
|
271
|
-
address: gnosisChiadoHostParams.handler,
|
|
272
|
-
abi: HANDLER.ABI,
|
|
273
|
-
client: { public: gnosisChiadoClient, wallet: gnosisChiadoWallet },
|
|
274
|
-
});
|
|
275
|
-
const tokenFaucet = getContract({
|
|
276
|
-
address: "0x17d8cc0859fbA942A7af243c3EBB69AbBfe0a320",
|
|
277
|
-
abi: parseAbi(["function drip(address token) public"]),
|
|
278
|
-
client: { public: bscTestnetClient, wallet: bscWalletClient },
|
|
279
|
-
});
|
|
280
|
-
return {
|
|
281
|
-
bscTestnetClient,
|
|
282
|
-
bscFeeToken,
|
|
283
|
-
account,
|
|
284
|
-
tokenFaucet,
|
|
285
|
-
gnosisChiadoHandler,
|
|
286
|
-
bscHandler,
|
|
287
|
-
bscPing,
|
|
288
|
-
gnosisChiadoClient,
|
|
289
|
-
gnosisChiadoHost,
|
|
290
|
-
bscIsmpHost,
|
|
291
|
-
};
|
|
292
|
-
}
|
|
293
|
-
//# sourceMappingURL=postRequest.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"postRequest.test.js","sourceRoot":"","sources":["../../src/tests/postRequest.test.ts"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAA;AAEtB,OAAO,EACN,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,WAAW,EACX,UAAU,EACV,IAAI,EACJ,QAAQ,EACR,cAAc,GACd,MAAM,MAAM,CAAA;AACb,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAA;AACnD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAEtD,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAA;AACxC,OAAO,EAAa,aAAa,EAAE,aAAa,EAAE,MAAM,SAAS,CAAA;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,SAAS,CAAA;AAE/C,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,WAAW,MAAM,mBAAmB,CAAA;AAC3C,OAAO,QAAQ,MAAM,gBAAgB,CAAA;AACrC,OAAO,OAAO,MAAM,gBAAgB,CAAA;AACpC,OAAO,EAAmB,QAAQ,EAAE,cAAc,EAAE,MAAM,SAAS,CAAA;AAEnE,QAAQ,CAAC,aAAa,EAAE,GAAG,EAAE;IAC5B,IAAI,OAAsB,CAAA;IAE1B,SAAS,CAAC,KAAK,IAAI,EAAE;QACpB,MAAM,EAAE,gBAAgB,EAAE,WAAW,EAAE,GAAG,MAAM,KAAK,EAAE,CAAA;QACvD,OAAO,GAAG,IAAI,aAAa,CAAC;YAC3B,MAAM,EAAE;gBACP,gBAAgB,EAAE,MAAM;gBACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,UAAW;gBAC/B,cAAc,EAAE,QAAQ;gBACxB,IAAI,EAAE,WAAW,CAAC,OAAO;aACzB;YACD,IAAI,EAAE;gBACL,gBAAgB,EAAE,MAAM;gBACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,aAAc;gBAClC,cAAc,EAAE,WAAW;gBAC3B,IAAI,EAAE,gBAAgB,CAAC,OAAO;aAC9B;YACD,WAAW,EAAE;gBACZ,gBAAgB,EAAE,MAAM;gBACxB,cAAc,EAAE,aAAa;gBAC7B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAsB;aACzC;YACD,YAAY,EAAE,IAAK,EAAE,eAAe;SACpC,CAAC,CAAA;IACH,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,gDAAgD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,WAAW,GAAG,IAAI,cAAc,CAAC;YACtC,iCAAiC;YACjC,EAAE,EAAE,OAAO,CAAC,GAAG,CAAC,qBAAsB;YACtC,MAAM,EAAE,QAAQ;SAChB,CAAC,CAAA;QAEF,MAAM,WAAW,CAAC,OAAO,EAAE,CAAA;QAE3B,MAAM,EAAE,GAAG,WAAW,CAAC,MAAM,CAAC;YAC7B,IAAI,EAAE,oBAAoB;YAC1B,KAAK,EAAE;gBACN,gBAAgB,EAAE,MAAM;gBACxB,MAAM,EAAE,SAAS;gBACjB,KAAK,EAAE,8rQAA8rQ;gBACrsQ,YAAY,EAAE,WAAW;aACzB;YACD,QAAQ,EAAE;gBACT;oBACC,IAAI,EAAE,sCAAsC;oBAC5C,IAAI,EAAE,WAAW;oBACjB,IAAI,EAAE,4CAA4C;oBAClD,KAAK,EAAE,KAAK;oBACZ,MAAM,EAAE,QAAQ;oBAChB,gBAAgB,EAAE,WAAW;oBAC7B,EAAE,EAAE,4CAA4C;iBAChD;aACD;SACD,CAAC,CAAA;QAEF,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;YAC7B,GAAG,EAAE,OAAO,CAAC,GAAG,CAAC,aAAc;YAC/B,OAAO,EAAE,KAAK;YACd,IAAI,EAAE,4CAA4C;SAClD,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,mBAAmB,CACjD,oEAAoE,CACpE,CAAA;QAED,MAAM,CAAC,OAAO,CAAC,CAAC,aAAa,EAAE,CAAA;QAE/B,mBAAmB;QACnB,WAAW,CAAC,GAAI,CAAC,EAAE,CAAC,IAAI,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;IACjE,CAAC,CAAC,CAAA;IAEF,EAAE,CAAC,yDAAyD,EAAE,KAAK,IAAI,EAAE;QACxE,MAAM,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,OAAO,EAAE,kBAAkB,EAAE,gBAAgB,EAAE,GAAG,MAAM,KAAK,EAAE,CAAA;QAC9G,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAE3C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACrC;gBACC,IAAI,EAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE;gBACxC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;gBACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAiC;gBACrD,OAAO,EAAE,MAAM,CAAC,EAAE,GAAG,EAAE,CAAC;aACxB;SACD,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,CAAC;YAChE,IAAI;YACJ,aAAa,EAAE,CAAC;SAChB,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,IAAI,EAAE,CAAC,CAAA;QACvF,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;QAE3C,iEAAiE;QACjE,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1E,IAAI,KAAK,CAAC,SAAS,KAAK,kBAAkB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAA;QAC1B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAC5C,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAEjD,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,EAAE,CAAC;YACxE,QAAQ,MAAM,CAAC,MAAM,EAAE,CAAC;gBACvB,KAAK,aAAa,CAAC,gBAAgB,CAAC,CAAC,CAAC;oBACrC,OAAO,CAAC,GAAG,CACV,UAAU,MAAM,CAAC,MAAM,8DAA8D,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CACtH,CAAA;oBACD,MAAK;gBACN,CAAC;gBACD,KAAK,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;oBAC1C,OAAO,CAAC,GAAG,CACV,UAAU,MAAM,CAAC,MAAM,8DAA8D,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CACtH,CAAA;oBACD,MAAK;gBACN,CAAC;gBACD,KAAK,aAAa,CAAC,qBAAqB,CAAC,CAAC,CAAC;oBAC1C,OAAO,CAAC,GAAG,CACV,UAAU,MAAM,CAAC,MAAM,0DAA0D,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAClH,CAAA;oBACD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC;wBACjD,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,QAAQ;qBAC9B,CAAC,CAAA;oBAEF,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC,CAAA;oBAE/C,IAAI,CAAC;wBACJ,MAAM,IAAI,GAAG,MAAM,mBAAmB,CAAC,KAAK,CAAC,kBAAkB,CAAC,IAAW,CAAC,CAAA;wBAC5E,MAAM,kBAAkB,CAAC,yBAAyB,CAAC;4BAClD,IAAI;4BACJ,aAAa,EAAE,CAAC;yBAChB,CAAC,CAAA;wBAEF,OAAO,CAAC,GAAG,CAAC,kEAAkE,IAAI,EAAE,CAAC,CAAA;oBACtF,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACZ,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAA;oBAC1C,CAAC;oBAED,MAAK;gBACN,CAAC;gBACD,KAAK,aAAa,CAAC,WAAW,CAAC,CAAC,CAAC;oBAChC,OAAO,CAAC,GAAG,CACV,UAAU,MAAM,CAAC,MAAM,0DAA0D,MAAM,CAAC,QAAQ,CAAC,eAAe,EAAE,CAClH,CAAA;oBACD,MAAK;gBACN,CAAC;YACF,CAAC;QACF,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAA;QAC5D,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QACzC,MAAM,CAAC,GAAG,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACrC,CAAC,EAAE,MAAO,CAAC,CAAA;IAEX,IAAI,CAAC,KAAK,CAAC,4CAA4C,EAAE,KAAK,IAAI,EAAE;QACnE,MAAM,EAAE,gBAAgB,EAAE,UAAU,EAAE,OAAO,EAAE,gBAAgB,EAAE,GAAG,MAAM,KAAK,EAAE,CAAA;QACjF,OAAO,CAAC,GAAG,CAAC,8BAA8B,CAAC,CAAA;QAE3C,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC;YACrC;gBACC,IAAI,EAAE,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE;gBACxC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC;gBAChB,GAAG,EAAE,MAAM,CAAC,CAAC,CAAC;gBACd,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAiC;gBACrD,OAAO,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,oBAAoB;aAC1C;SACD,CAAC,CAAA;QAEF,MAAM,OAAO,GAAG,MAAM,gBAAgB,CAAC,yBAAyB,CAAC;YAChE,IAAI;YACJ,aAAa,EAAE,CAAC;SAChB,CAAC,CAAA;QAEF,OAAO,CAAC,GAAG,CAAC,wBAAwB,UAAU,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,OAAO,IAAI,EAAE,CAAC,CAAA;QACvF,OAAO,CAAC,GAAG,CAAC,SAAS,EAAE,OAAO,CAAC,WAAW,CAAC,CAAA;QAE3C,iEAAiE;QACjE,MAAM,KAAK,GAAG,cAAc,CAAC,EAAE,GAAG,EAAE,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAA;QAE1E,IAAI,KAAK,CAAC,SAAS,KAAK,kBAAkB,EAAE,CAAC;YAC5C,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAA;QACzC,CAAC;QAED,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAA;QAE1B,OAAO,CAAC,GAAG,CAAC,kBAAkB,EAAE,EAAE,OAAO,EAAE,CAAC,CAAA;QAE5C,MAAM,UAAU,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAA;QACjD,MAAM,YAAY,GAAG,OAAO,CAAC,uBAAuB,CAAC,UAAU,CAAC,CAAA;QAEhE,IAAI,KAAK,EAAE,MAAM,MAAM,IAAI,YAAY,EAAE,CAAC;YACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAE5C,IAAI,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,eAAe,EAAE,CAAC;gBACrD,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAA;YAClE,CAAC;QACF,CAAC;QAED,OAAO,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QAEtC,IAAI,KAAK,EAAE,MAAM,OAAO,IAAI,OAAO,CAAC,wBAAwB,CAAC,UAAU,CAAC,EAAE,CAAC;YAC1E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;YAC7C,QAAQ,OAAO,CAAC,MAAM,EAAE,CAAC;gBACxB,KAAK,aAAa,CAAC,6BAA6B;oBAC/C,OAAO,CAAC,GAAG,CACV,UAAU,OAAO,CAAC,MAAM,8DAA8D,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,CACzH,CAAA;oBACD,MAAK;gBACN,KAAK,aAAa,CAAC,qBAAqB;oBACvC,OAAO,CAAC,GAAG,CACV,UAAU,OAAO,CAAC,MAAM,8DAA8D,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,CACzH,CAAA;oBACD,MAAK;gBACN,KAAK,aAAa,CAAC,6BAA6B,CAAC,CAAC,CAAC;oBAClD,OAAO,CAAC,GAAG,CACV,UAAU,OAAO,CAAC,MAAM,iDAAiD,OAAO,CAAC,QAAQ,EAAE,eAAe,EAAE,CAC5G,CAAA;oBACD,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,GAAG,kBAAkB,CAAC;wBACjD,GAAG,EAAE,OAAO,CAAC,GAAG;wBAChB,IAAI,EAAE,OAAO,CAAC,QAAS,CAAC,QAAgB;qBACxC,CAAC,CAAA;oBAEF,MAAM,CAAC,YAAY,CAAC,CAAC,IAAI,CAAC,2BAA2B,CAAC,CAAA;oBAEtD,IAAI,CAAC;wBACJ,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,CAAC,yBAAyB,CAAC,IAAW,CAAC,CAAA;wBAC1E,MAAM,gBAAgB,CAAC,yBAAyB,CAAC;4BAChD,IAAI;4BACJ,aAAa,EAAE,CAAC;yBAChB,CAAC,CAAA;wBAEF,OAAO,CAAC,GAAG,CAAC,iEAAiE,IAAI,EAAE,CAAC,CAAA;oBACrF,CAAC;oBAAC,OAAO,CAAC,EAAE,CAAC;wBACZ,OAAO,CAAC,KAAK,CAAC,uBAAuB,EAAE,CAAC,CAAC,CAAA;oBAC1C,CAAC;oBAED,MAAK;gBACN,CAAC;gBACD;oBACC,OAAO,CAAC,GAAG,CAAC,wBAAwB,CAAC,CAAA;oBACrC,MAAK;YACP,CAAC;QACF,CAAC;QAED,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,sBAAsB,CAAC,UAAU,CAAC,CAAA;QAC5D,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAA;QAExD,MAAM,0BAA0B,GAAG,GAAG,EAAE,QAAQ,CAAC,IAAI,CACpD,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,KAAK,aAAa,CAAC,6BAA6B,CACzE,CAAA;QACD,MAAM,CAAC,0BAA0B,CAAC,CAAC,WAAW,EAAE,CAAA;QAChD,MAAM,CAAC,0BAA0B,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC,WAAW,EAAE,CAAA;IACpE,CAAC,EAAE,OAAQ,CAAC,CAAA;AACb,CAAC,CAAC,CAAA;AAEF,KAAK,UAAU,KAAK;IACnB,MAAM,OAAO,GAAG,mBAAmB,CAAC,OAAO,CAAC,GAAG,CAAC,WAAkB,CAAC,CAAA;IAEnE,MAAM,eAAe,GAAG,kBAAkB,CAAC;QAC1C,KAAK,EAAE,UAAU;QACjB,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KACvC,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAK,EAAE,YAAY;QACnB,OAAO;QACP,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;KAC1C,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,kBAAkB,CAAC;QAC3C,KAAK,EAAE,UAAU;QACjB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC;KACvC,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;QAC7C,KAAK,EAAE,YAAY;QACnB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,CAAC;KAC1C,CAAC,CAAA;IAEF,MAAM,OAAO,GAAG,WAAW,CAAC;QAC3B,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAiC;QACtD,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE;KAC7D,CAAC,CAAA;IAEF,MAAM,kBAAkB,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAEpD,MAAM,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,EAAE,kBAAkB;QAC3B,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,MAAM,EAAE,gBAAgB;KACxB,CAAC,CAAA;IAEF,MAAM,aAAa,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;IAEzD,MAAM,UAAU,GAAG,WAAW,CAAC;QAC9B,OAAO,EAAE,aAAa,CAAC,OAAO;QAC9B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE;KAC7D,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,EAAE,aAAa,CAAC,QAAQ;QAC/B,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE;KAC7D,CAAC,CAAA;IAEF,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACpC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,mBAAiC;QACtD,GAAG,EAAE,WAAW,CAAC,GAAG;QACpB,MAAM,EAAE,kBAAkB;KAC1B,CAAC,CAAA;IAEF,MAAM,uBAAuB,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,IAAI,EAAE,CAAA;IAElE,MAAM,gBAAgB,GAAG,WAAW,CAAC;QACpC,OAAO,EAAE,uBAAuB;QAChC,GAAG,EAAE,QAAQ,CAAC,GAAG;QACjB,MAAM,EAAE,kBAAkB;KAC1B,CAAC,CAAA;IAEF,MAAM,sBAAsB,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,UAAU,EAAE,CAAA;IAEvE,MAAM,mBAAmB,GAAG,WAAW,CAAC;QACvC,OAAO,EAAE,sBAAsB,CAAC,OAAO;QACvC,GAAG,EAAE,OAAO,CAAC,GAAG;QAChB,MAAM,EAAE,EAAE,MAAM,EAAE,kBAAkB,EAAE,MAAM,EAAE,kBAAkB,EAAE;KAClE,CAAC,CAAA;IAEF,MAAM,WAAW,GAAG,WAAW,CAAC;QAC/B,OAAO,EAAE,4CAA4C;QACrD,GAAG,EAAE,QAAQ,CAAC,CAAC,qCAAqC,CAAC,CAAC;QACtD,MAAM,EAAE,EAAE,MAAM,EAAE,gBAAgB,EAAE,MAAM,EAAE,eAAe,EAAE;KAC7D,CAAC,CAAA;IAEF,OAAO;QACN,gBAAgB;QAChB,WAAW;QACX,OAAO;QACP,WAAW;QACX,mBAAmB;QACnB,UAAU;QACV,OAAO;QACP,kBAAkB;QAClB,gBAAgB;QAChB,WAAW;KACX,CAAA;AACF,CAAC"}
|
package/dist/tests/setup.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
package/dist/tests/setup.js
DELETED
package/dist/tests/setup.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"setup.js","sourceRoot":"","sources":["../../src/tests/setup.ts"],"names":[],"mappings":"AAAA,OAAO,CAAC,GAAG,CAAC,QAAQ,GAAG,MAAM,CAAA;AAE7B,OAAO,KAAK,MAAM,MAAM,QAAQ,CAAA;AAChC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,MAAM,IAAI,GAAG,OAAO,CAAC,GAAG,EAAE,CAAA;AAC1B,MAAM,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,kBAAkB,CAAC,EAAE,CAAC,CAAA"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
import "log-timestamp";
|
|
@@ -1,85 +0,0 @@
|
|
|
1
|
-
import "log-timestamp";
|
|
2
|
-
import { ApiPromise, WsProvider } from "@polkadot/api";
|
|
3
|
-
import { Keyring } from "@polkadot/keyring";
|
|
4
|
-
import { hexToBytes } from "viem";
|
|
5
|
-
import { teleport } from "../utils/tokenGateway.js";
|
|
6
|
-
import { u8aToHex, hexToU8a } from "@polkadot/util";
|
|
7
|
-
// private key for testnet transactions
|
|
8
|
-
const secret_key = process.env.SECRET_PHRASE || "";
|
|
9
|
-
/**
|
|
10
|
-
* Jest test for the teleport function
|
|
11
|
-
The goal of this test is to ensure the teleport extrinsic is correctly encoded
|
|
12
|
-
The tx can be decoded by the rpc node
|
|
13
|
-
*/
|
|
14
|
-
describe("teleport function", () => {
|
|
15
|
-
it("should teleport assets correctly", async () => {
|
|
16
|
-
// Set up the connection to a local node
|
|
17
|
-
const wsProvider = new WsProvider(process.env.BIFROST_PASEO);
|
|
18
|
-
const api = await ApiPromise.create({ provider: wsProvider });
|
|
19
|
-
console.log("Api connected");
|
|
20
|
-
// Set up BOB account from keyring
|
|
21
|
-
const keyring = new Keyring({ type: "sr25519" });
|
|
22
|
-
const bob = keyring.addFromUri(secret_key);
|
|
23
|
-
// Implement the Signer interface
|
|
24
|
-
const signer = createKeyringPairSigner(bob);
|
|
25
|
-
// Prepare test parameters
|
|
26
|
-
const params = {
|
|
27
|
-
symbol: "BNC",
|
|
28
|
-
destination: "EVM-84532",
|
|
29
|
-
recipient: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
|
|
30
|
-
amount: BigInt(200000000000),
|
|
31
|
-
timeout: BigInt(3600),
|
|
32
|
-
tokenGatewayAddress: hexToBytes("0xFcDa26cA021d5535C3059547390E6cCd8De7acA6"),
|
|
33
|
-
relayerFee: BigInt(0),
|
|
34
|
-
redeem: false,
|
|
35
|
-
};
|
|
36
|
-
try {
|
|
37
|
-
// Call the teleport function
|
|
38
|
-
console.log("Teleport started");
|
|
39
|
-
let dispatched = null;
|
|
40
|
-
let finalized = null;
|
|
41
|
-
for await (const event of await teleport(api, bob.address, params, { signer })) {
|
|
42
|
-
console.log(event.kind);
|
|
43
|
-
if (event.kind === "Dispatched") {
|
|
44
|
-
dispatched = event;
|
|
45
|
-
}
|
|
46
|
-
if (event.kind === "Finalized") {
|
|
47
|
-
finalized = event;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
expect(dispatched).toMatchObject(expect.objectContaining({
|
|
51
|
-
kind: "Dispatched",
|
|
52
|
-
transaction_hash: expect.stringContaining("0x"),
|
|
53
|
-
block_number: expect.any(BigInt),
|
|
54
|
-
commitment: expect.stringContaining("0x"),
|
|
55
|
-
events: expect.arrayContaining([]),
|
|
56
|
-
}));
|
|
57
|
-
expect(finalized).toMatchObject(expect.objectContaining({
|
|
58
|
-
kind: "Finalized",
|
|
59
|
-
transaction_hash: expect.stringContaining("0x"),
|
|
60
|
-
events: expect.arrayContaining([]),
|
|
61
|
-
}));
|
|
62
|
-
}
|
|
63
|
-
catch (error) {
|
|
64
|
-
console.log(error);
|
|
65
|
-
// The extrinsic should be decoded correctly but should fail at transaction fee payment since we are using the BOB account
|
|
66
|
-
expect(error).toBeUndefined();
|
|
67
|
-
}
|
|
68
|
-
}, 300000);
|
|
69
|
-
});
|
|
70
|
-
function createKeyringPairSigner(pair) {
|
|
71
|
-
return {
|
|
72
|
-
/**
|
|
73
|
-
* Signs a raw payload
|
|
74
|
-
*/
|
|
75
|
-
async signRaw({ data }) {
|
|
76
|
-
// Sign the data
|
|
77
|
-
const signature = u8aToHex(pair.sign(hexToU8a(data), { withType: true }));
|
|
78
|
-
return {
|
|
79
|
-
id: 1,
|
|
80
|
-
signature,
|
|
81
|
-
};
|
|
82
|
-
},
|
|
83
|
-
};
|
|
84
|
-
}
|
|
85
|
-
//# sourceMappingURL=tokenGateway.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"tokenGateway.test.js","sourceRoot":"","sources":["../../src/tests/tokenGateway.test.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,71 +0,0 @@
|
|
|
1
|
-
import { ApiPromise, WsProvider } from "@polkadot/api";
|
|
2
|
-
import { Keyring } from "@polkadot/keyring";
|
|
3
|
-
import { teleportDot } from "../utils/xcmGateway.js";
|
|
4
|
-
import { u8aToHex, hexToU8a } from "@polkadot/util";
|
|
5
|
-
// private key for testnet transactions
|
|
6
|
-
const secret_key = process.env.SECRET_PHRASE || "";
|
|
7
|
-
/**
|
|
8
|
-
* Jest test for the teleport function
|
|
9
|
-
The goal of this test is to ensure the teleport extrinsic is correctly encoded
|
|
10
|
-
The tx can be decoded by the rpc node
|
|
11
|
-
*/
|
|
12
|
-
describe("teleport DOT", () => {
|
|
13
|
-
it("should teleport DOT correctly", async () => {
|
|
14
|
-
// Set up the connection to a local node
|
|
15
|
-
const relayProvider = new WsProvider(process.env.PASEO_RPC_URL);
|
|
16
|
-
const relayApi = await ApiPromise.create({ provider: relayProvider });
|
|
17
|
-
const wsProvider = new WsProvider(process.env.HYPERBRIDGE_GARGANTUA);
|
|
18
|
-
const hyperbridge = await ApiPromise.create({ provider: wsProvider });
|
|
19
|
-
console.log("Api connected");
|
|
20
|
-
// Set up BOB account from keyring
|
|
21
|
-
const keyring = new Keyring({ type: "sr25519" });
|
|
22
|
-
const bob = keyring.addFromUri(secret_key);
|
|
23
|
-
// Implement the Signer interface
|
|
24
|
-
const signer = createKeyringPairSigner(bob);
|
|
25
|
-
const params = {
|
|
26
|
-
destination: 97,
|
|
27
|
-
recipient: "0x742d35Cc6634C0532925a3b844Bc454e4438f44e",
|
|
28
|
-
amount: BigInt(1),
|
|
29
|
-
timeout: BigInt(3600),
|
|
30
|
-
paraId: 4009,
|
|
31
|
-
};
|
|
32
|
-
try {
|
|
33
|
-
// Call the teleport function
|
|
34
|
-
//
|
|
35
|
-
console.log("Teleport Dot started");
|
|
36
|
-
const result = await teleportDot(relayApi, hyperbridge, bob.address, { signer }, params);
|
|
37
|
-
for await (const event of result) {
|
|
38
|
-
console.log(event.kind);
|
|
39
|
-
if (event.kind === "Error") {
|
|
40
|
-
throw new Error(event.error);
|
|
41
|
-
}
|
|
42
|
-
if (event.kind === "Ready") {
|
|
43
|
-
console.log(event);
|
|
44
|
-
}
|
|
45
|
-
if (event.kind === "Dispatched") {
|
|
46
|
-
console.log(event);
|
|
47
|
-
return;
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
catch (error) {
|
|
52
|
-
expect(error).toBeUndefined();
|
|
53
|
-
}
|
|
54
|
-
}, 300000);
|
|
55
|
-
});
|
|
56
|
-
function createKeyringPairSigner(pair) {
|
|
57
|
-
return {
|
|
58
|
-
/**
|
|
59
|
-
* Signs a raw payload
|
|
60
|
-
*/
|
|
61
|
-
async signRaw({ data }) {
|
|
62
|
-
// Sign the data
|
|
63
|
-
const signature = u8aToHex(pair.sign(hexToU8a(data), { withType: true }));
|
|
64
|
-
return {
|
|
65
|
-
id: 1,
|
|
66
|
-
signature,
|
|
67
|
-
};
|
|
68
|
-
},
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
//# sourceMappingURL=xcmGateway.test.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"xcmGateway.test.js","sourceRoot":"","sources":["../../src/tests/xcmGateway.test.ts"],"names":[],"mappings":"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"}
|