@veridex/sdk 1.0.0-beta.9 → 1.1.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/LICENSE +170 -21
- package/README.md +574 -117
- package/dist/EVMClient-DtqvdfUP.d.mts +376 -0
- package/dist/auth/prepareAuth.d.mts +25 -0
- package/dist/auth/prepareAuth.js +2406 -0
- package/dist/auth/prepareAuth.js.map +1 -0
- package/dist/auth/prepareAuth.mjs +151 -0
- package/dist/auth/prepareAuth.mjs.map +1 -0
- package/dist/chains/aptos/index.d.mts +6 -5
- package/dist/chains/aptos/index.js +66 -39
- package/dist/chains/aptos/index.js.map +1 -1
- package/dist/chains/aptos/index.mjs +5 -547
- package/dist/chains/aptos/index.mjs.map +1 -1
- package/dist/chains/avalanche/index.d.mts +137 -0
- package/dist/chains/avalanche/index.js +1555 -0
- package/dist/chains/avalanche/index.js.map +1 -0
- package/dist/chains/avalanche/index.mjs +10 -0
- package/dist/chains/avalanche/index.mjs.map +1 -0
- package/dist/chains/evm/index.d.mts +5 -3
- package/dist/chains/evm/index.js +165 -3
- package/dist/chains/evm/index.js.map +1 -1
- package/dist/chains/evm/index.mjs +8 -1200
- package/dist/chains/evm/index.mjs.map +1 -1
- package/dist/chains/solana/index.d.mts +1 -1
- package/dist/chains/solana/index.js.map +1 -1
- package/dist/chains/solana/index.mjs +4 -486
- package/dist/chains/solana/index.mjs.map +1 -1
- package/dist/chains/stacks/index.d.mts +559 -0
- package/dist/chains/stacks/index.js +1207 -0
- package/dist/chains/stacks/index.js.map +1 -0
- package/dist/chains/stacks/index.mjs +71 -0
- package/dist/chains/stacks/index.mjs.map +1 -0
- package/dist/chains/starknet/index.d.mts +4 -5
- package/dist/chains/starknet/index.js +1 -13
- package/dist/chains/starknet/index.js.map +1 -1
- package/dist/chains/starknet/index.mjs +5 -503
- package/dist/chains/starknet/index.mjs.map +1 -1
- package/dist/chains/sui/index.d.mts +4 -4
- package/dist/chains/sui/index.js +2 -2
- package/dist/chains/sui/index.js.map +1 -1
- package/dist/chains/sui/index.mjs +5 -529
- package/dist/chains/sui/index.mjs.map +1 -1
- package/dist/chunk-5T6KPH7A.mjs +1082 -0
- package/dist/chunk-5T6KPH7A.mjs.map +1 -0
- package/dist/chunk-72ZA3OYQ.mjs +20 -0
- package/dist/chunk-72ZA3OYQ.mjs.map +1 -0
- package/dist/chunk-F3YAGZSW.mjs +269 -0
- package/dist/chunk-F3YAGZSW.mjs.map +1 -0
- package/dist/chunk-GWJRKDSA.mjs +549 -0
- package/dist/chunk-GWJRKDSA.mjs.map +1 -0
- package/dist/chunk-M3MM4YMF.mjs +417 -0
- package/dist/chunk-M3MM4YMF.mjs.map +1 -0
- package/dist/chunk-MLXQHIH2.mjs +426 -0
- package/dist/chunk-MLXQHIH2.mjs.map +1 -0
- package/dist/chunk-N4A2RMUN.mjs +216 -0
- package/dist/chunk-N4A2RMUN.mjs.map +1 -0
- package/dist/chunk-NUWSMJFJ.mjs +179 -0
- package/dist/chunk-NUWSMJFJ.mjs.map +1 -0
- package/dist/chunk-OVMMTL6H.mjs +330 -0
- package/dist/chunk-OVMMTL6H.mjs.map +1 -0
- package/dist/chunk-PDHZ5X5O.mjs +565 -0
- package/dist/chunk-PDHZ5X5O.mjs.map +1 -0
- package/dist/chunk-Q5O3M5LP.mjs +422 -0
- package/dist/chunk-Q5O3M5LP.mjs.map +1 -0
- package/dist/chunk-QDO6NQ7P.mjs +840 -0
- package/dist/chunk-QDO6NQ7P.mjs.map +1 -0
- package/dist/chunk-QT4ZZ4GM.mjs +509 -0
- package/dist/chunk-QT4ZZ4GM.mjs.map +1 -0
- package/dist/chunk-SXXGTQIR.mjs +464 -0
- package/dist/chunk-SXXGTQIR.mjs.map +1 -0
- package/dist/chunk-USDA5JTN.mjs +1249 -0
- package/dist/chunk-USDA5JTN.mjs.map +1 -0
- package/dist/chunk-V636MIV3.mjs +52 -0
- package/dist/chunk-V636MIV3.mjs.map +1 -0
- package/dist/chunk-X7BZMSPQ.mjs +407 -0
- package/dist/chunk-X7BZMSPQ.mjs.map +1 -0
- package/dist/chunk-YCUJZ6Z7.mjs +829 -0
- package/dist/chunk-YCUJZ6Z7.mjs.map +1 -0
- package/dist/constants.d.mts +1 -1
- package/dist/constants.js +26 -12
- package/dist/constants.js.map +1 -1
- package/dist/constants.mjs +16 -375
- package/dist/constants.mjs.map +1 -1
- package/dist/index-DDalBhAm.d.mts +243 -0
- package/dist/index.d.mts +2511 -556
- package/dist/index.js +15216 -10262
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +4125 -7839
- package/dist/index.mjs.map +1 -1
- package/dist/passkey.d.mts +182 -0
- package/dist/passkey.js +914 -0
- package/dist/passkey.js.map +1 -0
- package/dist/passkey.mjs +15 -0
- package/dist/passkey.mjs.map +1 -0
- package/dist/payload.js.map +1 -1
- package/dist/payload.mjs +25 -244
- package/dist/payload.mjs.map +1 -1
- package/dist/portfolio-V347KZOL.mjs +13 -0
- package/dist/portfolio-V347KZOL.mjs.map +1 -0
- package/dist/queries/index.js +145 -12
- package/dist/queries/index.js.map +1 -1
- package/dist/queries/index.mjs +14 -1496
- package/dist/queries/index.mjs.map +1 -1
- package/dist/{types-FJL7j6gQ.d.ts → types-B7V5VNbO.d.mts} +6 -2
- package/dist/{types-ChIsqCiw.d.mts → types-DP2CQT8p.d.mts} +12 -1
- package/dist/types.d.mts +16 -0
- package/dist/types.js.map +1 -1
- package/dist/utils.js +25 -11
- package/dist/utils.js.map +1 -1
- package/dist/utils.mjs +19 -371
- package/dist/utils.mjs.map +1 -1
- package/dist/wormhole.js.map +1 -1
- package/dist/wormhole.mjs +25 -397
- package/dist/wormhole.mjs.map +1 -1
- package/package.json +28 -3
- package/scripts/patch-noble-curves.js +78 -0
- package/dist/chains/aptos/index.d.ts +0 -145
- package/dist/chains/evm/index.d.ts +0 -5
- package/dist/chains/solana/index.d.ts +0 -116
- package/dist/chains/starknet/index.d.ts +0 -172
- package/dist/chains/sui/index.d.ts +0 -182
- package/dist/constants.d.ts +0 -150
- package/dist/index-0NXfbk0z.d.ts +0 -637
- package/dist/index-D0dLVjTA.d.mts +0 -637
- package/dist/index.d.ts +0 -3123
- package/dist/payload.d.ts +0 -125
- package/dist/queries/index.d.ts +0 -148
- package/dist/types-ChIsqCiw.d.ts +0 -565
- package/dist/types-FJL7j6gQ.d.mts +0 -172
- package/dist/types.d.ts +0 -407
- package/dist/utils.d.ts +0 -81
- package/dist/wormhole.d.ts +0 -167
package/dist/constants.mjs
CHANGED
|
@@ -1,378 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
TERRA: 3,
|
|
18
|
-
BSC: 4,
|
|
19
|
-
POLYGON: 5,
|
|
20
|
-
AVALANCHE: 6,
|
|
21
|
-
OASIS: 7,
|
|
22
|
-
ALGORAND: 8,
|
|
23
|
-
AURORA: 9,
|
|
24
|
-
FANTOM: 10,
|
|
25
|
-
KARURA: 11,
|
|
26
|
-
ACALA: 12,
|
|
27
|
-
KLAYTN: 13,
|
|
28
|
-
CELO: 14,
|
|
29
|
-
NEAR: 15,
|
|
30
|
-
MOONBEAM: 16,
|
|
31
|
-
NEON: 17,
|
|
32
|
-
TERRA2: 18,
|
|
33
|
-
INJECTIVE: 19,
|
|
34
|
-
OSMOSIS: 20,
|
|
35
|
-
SUI: 21,
|
|
36
|
-
APTOS: 22,
|
|
37
|
-
ARBITRUM: 23,
|
|
38
|
-
OPTIMISM: 24,
|
|
39
|
-
GNOSIS: 25,
|
|
40
|
-
PYTHNET: 26,
|
|
41
|
-
XPLA: 28,
|
|
42
|
-
BASE: 30,
|
|
43
|
-
SEI: 32,
|
|
44
|
-
ROOTSTOCK: 33,
|
|
45
|
-
SCROLL: 34,
|
|
46
|
-
MANTLE: 35,
|
|
47
|
-
BLAST: 36,
|
|
48
|
-
XLAYER: 37,
|
|
49
|
-
LINEA: 38,
|
|
50
|
-
BERACHAIN: 39,
|
|
51
|
-
SEIEVM: 40
|
|
52
|
-
},
|
|
53
|
-
TESTNET: {
|
|
54
|
-
SOLANA_DEVNET: 1,
|
|
55
|
-
GOERLI: 2,
|
|
56
|
-
BSC_TESTNET: 4,
|
|
57
|
-
POLYGON_MUMBAI: 5,
|
|
58
|
-
AVALANCHE_FUJI: 6,
|
|
59
|
-
FANTOM_TESTNET: 10,
|
|
60
|
-
CELO_ALFAJORES: 14,
|
|
61
|
-
MOONBASE_ALPHA: 16,
|
|
62
|
-
SUI_TESTNET: 21,
|
|
63
|
-
APTOS_TESTNET: 22,
|
|
64
|
-
SEPOLIA: 10002,
|
|
65
|
-
ARBITRUM_SEPOLIA: 10003,
|
|
66
|
-
BASE_SEPOLIA: 10004,
|
|
67
|
-
OPTIMISM_SEPOLIA: 10005,
|
|
68
|
-
HOLESKY: 10006,
|
|
69
|
-
POLYGON_SEPOLIA: 10007,
|
|
70
|
-
SEI_ATLANTIC_2: 10066,
|
|
71
|
-
// Sei Arctic-1 testnet (EVM)
|
|
72
|
-
STARKNET_SEPOLIA: 50001
|
|
73
|
-
// Custom bridge (non-Wormhole, relayer-attested)
|
|
74
|
-
}
|
|
75
|
-
};
|
|
76
|
-
var WORMHOLE_CHAIN_IDS_FLAT = {
|
|
77
|
-
// Mainnets
|
|
78
|
-
SOLANA: 1,
|
|
79
|
-
ETHEREUM: 2,
|
|
80
|
-
TERRA: 3,
|
|
81
|
-
BSC: 4,
|
|
82
|
-
POLYGON: 5,
|
|
83
|
-
AVALANCHE: 6,
|
|
84
|
-
OASIS: 7,
|
|
85
|
-
ALGORAND: 8,
|
|
86
|
-
AURORA: 9,
|
|
87
|
-
FANTOM: 10,
|
|
88
|
-
KARURA: 11,
|
|
89
|
-
ACALA: 12,
|
|
90
|
-
KLAYTN: 13,
|
|
91
|
-
CELO: 14,
|
|
92
|
-
NEAR: 15,
|
|
93
|
-
MOONBEAM: 16,
|
|
94
|
-
NEON: 17,
|
|
95
|
-
TERRA2: 18,
|
|
96
|
-
INJECTIVE: 19,
|
|
97
|
-
OSMOSIS: 20,
|
|
98
|
-
SUI: 21,
|
|
99
|
-
APTOS: 22,
|
|
100
|
-
ARBITRUM: 23,
|
|
101
|
-
OPTIMISM: 24,
|
|
102
|
-
GNOSIS: 25,
|
|
103
|
-
PYTHNET: 26,
|
|
104
|
-
XPLA: 28,
|
|
105
|
-
BASE: 30,
|
|
106
|
-
SEI: 32,
|
|
107
|
-
ROOTSTOCK: 33,
|
|
108
|
-
SCROLL: 34,
|
|
109
|
-
MANTLE: 35,
|
|
110
|
-
BLAST: 36,
|
|
111
|
-
XLAYER: 37,
|
|
112
|
-
LINEA: 38,
|
|
113
|
-
BERACHAIN: 39,
|
|
114
|
-
SEIEVM: 40,
|
|
115
|
-
// Testnets
|
|
116
|
-
SOLANA_DEVNET: 1,
|
|
117
|
-
GOERLI: 2,
|
|
118
|
-
BSC_TESTNET: 4,
|
|
119
|
-
POLYGON_MUMBAI: 5,
|
|
120
|
-
AVALANCHE_FUJI: 6,
|
|
121
|
-
FANTOM_TESTNET: 10,
|
|
122
|
-
CELO_ALFAJORES: 14,
|
|
123
|
-
MOONBASE_ALPHA: 16,
|
|
124
|
-
SUI_TESTNET: 21,
|
|
125
|
-
APTOS_TESTNET: 22,
|
|
126
|
-
ARBITRUM_SEPOLIA: 10003,
|
|
127
|
-
BASE_SEPOLIA: 10004,
|
|
128
|
-
OPTIMISM_SEPOLIA: 10005,
|
|
129
|
-
POLYGON_SEPOLIA: 10007,
|
|
130
|
-
HOLESKY: 10006,
|
|
131
|
-
STARKNET_SEPOLIA: 50001
|
|
132
|
-
// Custom bridge (non-Wormhole)
|
|
133
|
-
};
|
|
134
|
-
var TESTNET_CHAINS = {
|
|
135
|
-
baseSepolia: {
|
|
136
|
-
name: "Base Sepolia",
|
|
137
|
-
chainId: 84532,
|
|
138
|
-
wormholeChainId: 10004,
|
|
139
|
-
rpcUrl: "https://sepolia.base.org",
|
|
140
|
-
// Public CORS-friendly RPC
|
|
141
|
-
explorerUrl: "https://sepolia.basescan.org",
|
|
142
|
-
isEvm: true,
|
|
143
|
-
contracts: {
|
|
144
|
-
hub: "0x66D87dE68327f48A099c5B9bE97020Feab9a7c82",
|
|
145
|
-
vaultFactory: "0xCFaEb5652aa2Ee60b2229dC8895B4159749C7e53",
|
|
146
|
-
vaultImplementation: "0x0d13367C16c6f0B24eD275CC67C7D9f42878285c",
|
|
147
|
-
wormholeCoreBridge: "0x79A1027a6A159502049F10906D333EC57E95F083",
|
|
148
|
-
tokenBridge: "0x86F55A04690fd7815A3D802bD587e83eA888B239"
|
|
149
|
-
}
|
|
150
|
-
},
|
|
151
|
-
optimismSepolia: {
|
|
152
|
-
name: "Optimism Sepolia",
|
|
153
|
-
chainId: 11155420,
|
|
154
|
-
wormholeChainId: 10005,
|
|
155
|
-
rpcUrl: "https://sepolia.optimism.io",
|
|
156
|
-
explorerUrl: "https://sepolia-optimism.etherscan.io",
|
|
157
|
-
isEvm: true,
|
|
158
|
-
contracts: {
|
|
159
|
-
vaultFactory: "0xA5653d54079ABeCe780F8d9597B2bc4B09fe464A",
|
|
160
|
-
vaultImplementation: "0x8099b1406485d2255ff89Ce5Ea18520802AFC150",
|
|
161
|
-
wormholeCoreBridge: "0x31377888146f3253211EFEf5c676D41ECe7D58Fe",
|
|
162
|
-
tokenBridge: "0x99737Ec4B815d816c49A385943baf0380e75c0Ac"
|
|
163
|
-
}
|
|
164
|
-
},
|
|
165
|
-
arbitrumSepolia: {
|
|
166
|
-
name: "Arbitrum Sepolia",
|
|
167
|
-
chainId: 421614,
|
|
168
|
-
wormholeChainId: 10003,
|
|
169
|
-
rpcUrl: "https://sepolia-rollup.arbitrum.io/rpc",
|
|
170
|
-
explorerUrl: "https://sepolia.arbiscan.io",
|
|
171
|
-
isEvm: true,
|
|
172
|
-
contracts: {
|
|
173
|
-
vaultFactory: "0xd36D3D5DB59d78f1E33813490F72DABC15C9B07c",
|
|
174
|
-
vaultImplementation: "0xB10ACf39eBF17fc33F722cBD955b7aeCB0611bc4",
|
|
175
|
-
wormholeCoreBridge: "0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35",
|
|
176
|
-
tokenBridge: "0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e"
|
|
177
|
-
}
|
|
178
|
-
},
|
|
179
|
-
seiTestnet: {
|
|
180
|
-
name: "Sei Atlantic-2",
|
|
181
|
-
chainId: 1328,
|
|
182
|
-
wormholeChainId: 40,
|
|
183
|
-
rpcUrl: "https://evm-rpc-testnet.sei-apis.com",
|
|
184
|
-
explorerUrl: "https://seitrace.com/?chain=atlantic-2",
|
|
185
|
-
isEvm: true,
|
|
186
|
-
contracts: {
|
|
187
|
-
vaultFactory: "0x07F608AFf6d63b68029488b726d895c4Bb593038",
|
|
188
|
-
vaultImplementation: "0xD66153fccFB6731fB6c4944FbD607ba86A76a1f6",
|
|
189
|
-
wormholeCoreBridge: "0x0000000000000000000000000000000000000000"
|
|
190
|
-
// Mock - not yet deployed
|
|
191
|
-
}
|
|
192
|
-
},
|
|
193
|
-
solanaDevnet: {
|
|
194
|
-
name: "Solana Devnet",
|
|
195
|
-
chainId: 0,
|
|
196
|
-
wormholeChainId: 1,
|
|
197
|
-
rpcUrl: "https://api.devnet.solana.com",
|
|
198
|
-
explorerUrl: "https://explorer.solana.com",
|
|
199
|
-
isEvm: false,
|
|
200
|
-
contracts: {
|
|
201
|
-
hub: "AnyXHsqq9c2BiW4WgBcj6Aye7Ua7a7L7iSuwpfJxECJM",
|
|
202
|
-
wormholeCoreBridge: "3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5",
|
|
203
|
-
tokenBridge: "DZnkkTmCiFWfYTfT41X3Rd1kDgozqzxWaHqsw6W4x2oe"
|
|
204
|
-
}
|
|
205
|
-
},
|
|
206
|
-
aptosTestnet: {
|
|
207
|
-
name: "Aptos Testnet",
|
|
208
|
-
chainId: 0,
|
|
209
|
-
wormholeChainId: 22,
|
|
210
|
-
rpcUrl: "https://fullnode.testnet.aptoslabs.com/v1",
|
|
211
|
-
explorerUrl: "https://explorer.aptoslabs.com",
|
|
212
|
-
isEvm: false,
|
|
213
|
-
contracts: {
|
|
214
|
-
hub: "0x0237e04f74b991b5b6030a793779663033f4ff4a1682a9e66c1f41fc1ec3e2a4",
|
|
215
|
-
wormholeCoreBridge: "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625",
|
|
216
|
-
tokenBridge: "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f"
|
|
217
|
-
}
|
|
218
|
-
},
|
|
219
|
-
suiTestnet: {
|
|
220
|
-
name: "Sui Testnet",
|
|
221
|
-
chainId: 0,
|
|
222
|
-
wormholeChainId: 21,
|
|
223
|
-
rpcUrl: "https://fullnode.testnet.sui.io:443",
|
|
224
|
-
explorerUrl: "https://suiscan.xyz/testnet",
|
|
225
|
-
isEvm: false,
|
|
226
|
-
contracts: {
|
|
227
|
-
hub: "0x35e99fdbbc1cde7e093da6f9e758ba2c4a077904bd64caee2fa6db5e6c4e9e37",
|
|
228
|
-
wormholeCoreBridge: "0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790"
|
|
229
|
-
}
|
|
230
|
-
},
|
|
231
|
-
starknetSepolia: {
|
|
232
|
-
name: "Starknet Sepolia",
|
|
233
|
-
chainId: 0,
|
|
234
|
-
// Native Starknet chain ID (SN_SEPOLIA = 0x534e5f5345504f4c4941)
|
|
235
|
-
wormholeChainId: 50001,
|
|
236
|
-
// Custom chain ID (50000+ reserved for non-Wormhole chains)
|
|
237
|
-
rpcUrl: "https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/tsOnfTBZDKMXcUA26OED-",
|
|
238
|
-
explorerUrl: "https://sepolia.starkscan.co",
|
|
239
|
-
isEvm: false,
|
|
240
|
-
contracts: {
|
|
241
|
-
// Starknet spoke contract
|
|
242
|
-
hub: "0x68adcc730ed6c355200d00f763825448497b9cdf7936ca121711e078c88e811",
|
|
243
|
-
// Custom bridge contract (NOT Wormhole)
|
|
244
|
-
wormholeCoreBridge: "0x2c458c1ae64556482b05cc2d3ee5b032ed114d68429dda2062c9849a5a725f8"
|
|
245
|
-
},
|
|
246
|
-
// Hub chain ID that Starknet bridge validates (Base Sepolia = 10004)
|
|
247
|
-
hubChainId: 10004
|
|
248
|
-
}
|
|
249
|
-
};
|
|
250
|
-
var MAINNET_CHAINS = {
|
|
251
|
-
ethereum: {
|
|
252
|
-
name: "Ethereum",
|
|
253
|
-
chainId: 1,
|
|
254
|
-
wormholeChainId: 2,
|
|
255
|
-
rpcUrl: "https://eth.llamarpc.com",
|
|
256
|
-
explorerUrl: "https://etherscan.io",
|
|
257
|
-
isEvm: true,
|
|
258
|
-
contracts: {
|
|
259
|
-
wormholeCoreBridge: "0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B",
|
|
260
|
-
tokenBridge: "0x3ee18B2214AFF97000D974cf647E7C347E8fa585"
|
|
261
|
-
}
|
|
262
|
-
},
|
|
263
|
-
base: {
|
|
264
|
-
name: "Base",
|
|
265
|
-
chainId: 8453,
|
|
266
|
-
wormholeChainId: 30,
|
|
267
|
-
rpcUrl: "https://mainnet.base.org",
|
|
268
|
-
explorerUrl: "https://basescan.org",
|
|
269
|
-
isEvm: true,
|
|
270
|
-
contracts: {
|
|
271
|
-
wormholeCoreBridge: "0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6",
|
|
272
|
-
tokenBridge: "0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627"
|
|
273
|
-
}
|
|
274
|
-
},
|
|
275
|
-
optimism: {
|
|
276
|
-
name: "Optimism",
|
|
277
|
-
chainId: 10,
|
|
278
|
-
wormholeChainId: 24,
|
|
279
|
-
rpcUrl: "https://mainnet.optimism.io",
|
|
280
|
-
explorerUrl: "https://optimistic.etherscan.io",
|
|
281
|
-
isEvm: true,
|
|
282
|
-
contracts: {
|
|
283
|
-
wormholeCoreBridge: "0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722",
|
|
284
|
-
tokenBridge: "0x1D68124e65faFC907325e3EDbF8c4d84499DAa8b"
|
|
285
|
-
}
|
|
286
|
-
},
|
|
287
|
-
arbitrum: {
|
|
288
|
-
name: "Arbitrum",
|
|
289
|
-
chainId: 42161,
|
|
290
|
-
wormholeChainId: 23,
|
|
291
|
-
rpcUrl: "https://arb1.arbitrum.io/rpc",
|
|
292
|
-
explorerUrl: "https://arbiscan.io",
|
|
293
|
-
isEvm: true,
|
|
294
|
-
contracts: {
|
|
295
|
-
wormholeCoreBridge: "0xa5f208e072434bC67592E4C49C1B991BA79BCA46",
|
|
296
|
-
tokenBridge: "0x0b2402144Bb366A632D14B83F244D2e0e21bD39c"
|
|
297
|
-
}
|
|
298
|
-
},
|
|
299
|
-
polygon: {
|
|
300
|
-
name: "Polygon",
|
|
301
|
-
chainId: 137,
|
|
302
|
-
wormholeChainId: 5,
|
|
303
|
-
rpcUrl: "https://polygon-rpc.com",
|
|
304
|
-
explorerUrl: "https://polygonscan.com",
|
|
305
|
-
isEvm: true,
|
|
306
|
-
contracts: {
|
|
307
|
-
wormholeCoreBridge: "0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7",
|
|
308
|
-
tokenBridge: "0x5a58505a96D1dbf8dF91cB21B54419FC36e93fdE"
|
|
309
|
-
}
|
|
310
|
-
},
|
|
311
|
-
solana: {
|
|
312
|
-
name: "Solana",
|
|
313
|
-
chainId: 0,
|
|
314
|
-
wormholeChainId: 1,
|
|
315
|
-
rpcUrl: "https://api.mainnet-beta.solana.com",
|
|
316
|
-
explorerUrl: "https://explorer.solana.com",
|
|
317
|
-
isEvm: false,
|
|
318
|
-
contracts: {
|
|
319
|
-
wormholeCoreBridge: "worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth",
|
|
320
|
-
tokenBridge: "wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb"
|
|
321
|
-
}
|
|
322
|
-
},
|
|
323
|
-
aptos: {
|
|
324
|
-
name: "Aptos",
|
|
325
|
-
chainId: 0,
|
|
326
|
-
wormholeChainId: 22,
|
|
327
|
-
rpcUrl: "https://fullnode.mainnet.aptoslabs.com/v1",
|
|
328
|
-
explorerUrl: "https://explorer.aptoslabs.com",
|
|
329
|
-
isEvm: false,
|
|
330
|
-
contracts: {
|
|
331
|
-
wormholeCoreBridge: "0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625",
|
|
332
|
-
tokenBridge: "0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f"
|
|
333
|
-
}
|
|
334
|
-
},
|
|
335
|
-
sui: {
|
|
336
|
-
name: "Sui",
|
|
337
|
-
chainId: 0,
|
|
338
|
-
wormholeChainId: 21,
|
|
339
|
-
rpcUrl: "https://fullnode.mainnet.sui.io:443",
|
|
340
|
-
explorerUrl: "https://suiscan.xyz/mainnet",
|
|
341
|
-
isEvm: false,
|
|
342
|
-
contracts: {
|
|
343
|
-
wormholeCoreBridge: "0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c"
|
|
344
|
-
}
|
|
345
|
-
}
|
|
346
|
-
};
|
|
347
|
-
var WORMHOLE_API = {
|
|
348
|
-
MAINNET: "https://api.wormholescan.io",
|
|
349
|
-
TESTNET: "https://api.testnet.wormholescan.io",
|
|
350
|
-
GUARDIAN_RPC_MAINNET: "https://wormhole-v2-mainnet-api.certus.one",
|
|
351
|
-
GUARDIAN_RPC_TESTNET: "https://wormhole-v2-testnet-api.certus.one"
|
|
352
|
-
};
|
|
353
|
-
var HUB_ABI = [
|
|
354
|
-
"function authenticateAndDispatch((bytes authenticatorData, string clientDataJSON, uint256 challengeIndex, uint256 typeIndex, uint256 r, uint256 s) auth, uint256 publicKeyX, uint256 publicKeyY, uint16 targetChain, bytes actionPayload) external payable returns (uint64 sequence)",
|
|
355
|
-
"function authenticateRawAndDispatch(uint256 r, uint256 s, bytes32 messageHash, uint256 publicKeyX, uint256 publicKeyY, uint16 targetChain, bytes actionPayload, uint256 nonce) external payable returns (uint64 sequence)",
|
|
356
|
-
"function getNonce(bytes32 userKeyHash) external view returns (uint256)",
|
|
357
|
-
"function encodeTransferAction(address token, address recipient, uint256 amount) external pure returns (bytes)",
|
|
358
|
-
"function encodeExecuteAction(address target, uint256 value, bytes data) external pure returns (bytes)",
|
|
359
|
-
"function encodeBridgeAction(bytes32 token, uint256 amount, uint16 targetChain, bytes32 recipient) external pure returns (bytes)",
|
|
360
|
-
"function messageFee() external view returns (uint256)",
|
|
361
|
-
"event Dispatched(bytes32 indexed userKeyHash, uint16 targetChain, uint256 nonce, uint64 sequence, bytes actionPayload)"
|
|
362
|
-
];
|
|
363
|
-
var VAULT_FACTORY_ABI = [
|
|
364
|
-
"function createVault(bytes32 userKeyHash) external returns (address)",
|
|
365
|
-
"function getVault(bytes32 userKeyHash) external view returns (address)",
|
|
366
|
-
"function vaultExists(bytes32 userKeyHash) external view returns (bool)",
|
|
367
|
-
"event VaultCreated(bytes32 indexed userKeyHash, address vault)"
|
|
368
|
-
];
|
|
369
|
-
var VAULT_ABI = [
|
|
370
|
-
"function execute(address target, uint256 value, bytes data) external returns (bytes)",
|
|
371
|
-
"function executeFromHub(bytes32 vaaHash, uint16 emitterChain, bytes32 emitterAddress, bytes payload) external",
|
|
372
|
-
"function owner() external view returns (bytes32)",
|
|
373
|
-
"function hub() external view returns (address)",
|
|
374
|
-
"receive() external payable"
|
|
375
|
-
];
|
|
1
|
+
import {
|
|
2
|
+
ACTION_BRIDGE,
|
|
3
|
+
ACTION_CONFIG,
|
|
4
|
+
ACTION_EXECUTE,
|
|
5
|
+
ACTION_TRANSFER,
|
|
6
|
+
ACTION_TYPES,
|
|
7
|
+
HUB_ABI,
|
|
8
|
+
MAINNET_CHAINS,
|
|
9
|
+
PROTOCOL_VERSION,
|
|
10
|
+
TESTNET_CHAINS,
|
|
11
|
+
VAULT_ABI,
|
|
12
|
+
VAULT_FACTORY_ABI,
|
|
13
|
+
WORMHOLE_API,
|
|
14
|
+
WORMHOLE_CHAIN_IDS,
|
|
15
|
+
WORMHOLE_CHAIN_IDS_FLAT
|
|
16
|
+
} from "./chunk-X7BZMSPQ.mjs";
|
|
376
17
|
export {
|
|
377
18
|
ACTION_BRIDGE,
|
|
378
19
|
ACTION_CONFIG,
|
package/dist/constants.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/constants.ts"],"sourcesContent":["/**\n * Veridex Protocol SDK - Constants and Chain Configurations\n */\n\nimport type { ChainConfig } from './types.js';\n\n// ============================================================================\n// Action Type Constants\n// ============================================================================\n\nexport const ACTION_TYPES = {\n TRANSFER: 1,\n EXECUTE: 2,\n CONFIG: 3,\n BRIDGE: 4,\n} as const;\n\nexport const ACTION_TRANSFER = 1;\nexport const ACTION_EXECUTE = 2;\nexport const ACTION_CONFIG = 3;\nexport const ACTION_BRIDGE = 4;\n\n// Protocol version\nexport const PROTOCOL_VERSION = 1;\n\n// ============================================================================\n// Wormhole Chain IDs\n// ============================================================================\n\n/**\n * Wormhole Chain IDs organized by network\n * @see https://docs.wormhole.com/wormhole/reference/constants\n */\nexport const WORMHOLE_CHAIN_IDS = {\n MAINNET: {\n SOLANA: 1,\n ETHEREUM: 2,\n TERRA: 3,\n BSC: 4,\n POLYGON: 5,\n AVALANCHE: 6,\n OASIS: 7,\n ALGORAND: 8,\n AURORA: 9,\n FANTOM: 10,\n KARURA: 11,\n ACALA: 12,\n KLAYTN: 13,\n CELO: 14,\n NEAR: 15,\n MOONBEAM: 16,\n NEON: 17,\n TERRA2: 18,\n INJECTIVE: 19,\n OSMOSIS: 20,\n SUI: 21,\n APTOS: 22,\n ARBITRUM: 23,\n OPTIMISM: 24,\n GNOSIS: 25,\n PYTHNET: 26,\n XPLA: 28,\n BASE: 30,\n SEI: 32,\n ROOTSTOCK: 33,\n SCROLL: 34,\n MANTLE: 35,\n BLAST: 36,\n XLAYER: 37,\n LINEA: 38,\n BERACHAIN: 39,\n SEIEVM: 40,\n },\n TESTNET: {\n SOLANA_DEVNET: 1,\n GOERLI: 2,\n BSC_TESTNET: 4,\n POLYGON_MUMBAI: 5,\n AVALANCHE_FUJI: 6,\n FANTOM_TESTNET: 10,\n CELO_ALFAJORES: 14,\n MOONBASE_ALPHA: 16,\n SUI_TESTNET: 21,\n APTOS_TESTNET: 22,\n SEPOLIA: 10002,\n ARBITRUM_SEPOLIA: 10003,\n BASE_SEPOLIA: 10004,\n OPTIMISM_SEPOLIA: 10005,\n HOLESKY: 10006,\n POLYGON_SEPOLIA: 10007,\n SEI_ATLANTIC_2: 10066, // Sei Arctic-1 testnet (EVM)\n STARKNET_SEPOLIA: 50001, // Custom bridge (non-Wormhole, relayer-attested)\n },\n} as const;\n\n// Legacy flat exports for backward compatibility\nexport const WORMHOLE_CHAIN_IDS_FLAT = {\n // Mainnets\n SOLANA: 1,\n ETHEREUM: 2,\n TERRA: 3,\n BSC: 4,\n POLYGON: 5,\n AVALANCHE: 6,\n OASIS: 7,\n ALGORAND: 8,\n AURORA: 9,\n FANTOM: 10,\n KARURA: 11,\n ACALA: 12,\n KLAYTN: 13,\n CELO: 14,\n NEAR: 15,\n MOONBEAM: 16,\n NEON: 17,\n TERRA2: 18,\n INJECTIVE: 19,\n OSMOSIS: 20,\n SUI: 21,\n APTOS: 22,\n ARBITRUM: 23,\n OPTIMISM: 24,\n GNOSIS: 25,\n PYTHNET: 26,\n XPLA: 28,\n BASE: 30,\n SEI: 32,\n ROOTSTOCK: 33,\n SCROLL: 34,\n MANTLE: 35,\n BLAST: 36,\n XLAYER: 37,\n LINEA: 38,\n BERACHAIN: 39,\n SEIEVM: 40,\n\n // Testnets\n SOLANA_DEVNET: 1,\n GOERLI: 2,\n BSC_TESTNET: 4,\n POLYGON_MUMBAI: 5,\n AVALANCHE_FUJI: 6,\n FANTOM_TESTNET: 10,\n CELO_ALFAJORES: 14,\n MOONBASE_ALPHA: 16,\n SUI_TESTNET: 21,\n APTOS_TESTNET: 22,\n ARBITRUM_SEPOLIA: 10003,\n BASE_SEPOLIA: 10004,\n OPTIMISM_SEPOLIA: 10005,\n POLYGON_SEPOLIA: 10007,\n HOLESKY: 10006,\n STARKNET_SEPOLIA: 50001, // Custom bridge (non-Wormhole)\n} as const;\n\n// ============================================================================\n// Testnet Chain Configurations\n// ============================================================================\n\nexport const TESTNET_CHAINS: Record<string, ChainConfig> = {\n baseSepolia: {\n name: 'Base Sepolia',\n chainId: 84532,\n wormholeChainId: 10004,\n rpcUrl: 'https://sepolia.base.org', // Public CORS-friendly RPC\n explorerUrl: 'https://sepolia.basescan.org',\n isEvm: true,\n contracts: {\n hub: '0x66D87dE68327f48A099c5B9bE97020Feab9a7c82',\n vaultFactory: '0xCFaEb5652aa2Ee60b2229dC8895B4159749C7e53',\n vaultImplementation: '0x0d13367C16c6f0B24eD275CC67C7D9f42878285c',\n wormholeCoreBridge: '0x79A1027a6A159502049F10906D333EC57E95F083',\n tokenBridge: '0x86F55A04690fd7815A3D802bD587e83eA888B239',\n },\n },\n optimismSepolia: {\n name: 'Optimism Sepolia',\n chainId: 11155420,\n wormholeChainId: 10005,\n rpcUrl: 'https://sepolia.optimism.io',\n explorerUrl: 'https://sepolia-optimism.etherscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0xA5653d54079ABeCe780F8d9597B2bc4B09fe464A',\n vaultImplementation: '0x8099b1406485d2255ff89Ce5Ea18520802AFC150',\n wormholeCoreBridge: '0x31377888146f3253211EFEf5c676D41ECe7D58Fe',\n tokenBridge: '0x99737Ec4B815d816c49A385943baf0380e75c0Ac',\n },\n },\n arbitrumSepolia: {\n name: 'Arbitrum Sepolia',\n chainId: 421614,\n wormholeChainId: 10003,\n rpcUrl: 'https://sepolia-rollup.arbitrum.io/rpc',\n explorerUrl: 'https://sepolia.arbiscan.io',\n isEvm: true,\n contracts: {\n vaultFactory: '0xd36D3D5DB59d78f1E33813490F72DABC15C9B07c',\n vaultImplementation: '0xB10ACf39eBF17fc33F722cBD955b7aeCB0611bc4',\n wormholeCoreBridge: '0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35',\n tokenBridge: '0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e',\n },\n },\n seiTestnet: {\n name: 'Sei Atlantic-2',\n chainId: 1328,\n wormholeChainId: 40,\n rpcUrl: 'https://evm-rpc-testnet.sei-apis.com',\n explorerUrl: 'https://seitrace.com/?chain=atlantic-2',\n isEvm: true,\n contracts: {\n vaultFactory: '0x07F608AFf6d63b68029488b726d895c4Bb593038',\n vaultImplementation: '0xD66153fccFB6731fB6c4944FbD607ba86A76a1f6',\n wormholeCoreBridge: '0x0000000000000000000000000000000000000000', // Mock - not yet deployed\n },\n },\n solanaDevnet: {\n name: 'Solana Devnet',\n chainId: 0,\n wormholeChainId: 1,\n rpcUrl: 'https://api.devnet.solana.com',\n explorerUrl: 'https://explorer.solana.com',\n isEvm: false,\n contracts: {\n hub: 'AnyXHsqq9c2BiW4WgBcj6Aye7Ua7a7L7iSuwpfJxECJM',\n wormholeCoreBridge: '3u8hJUVTA4jH1wYAyUur7FFZVQ8H635K3tSHHF4ssjQ5',\n tokenBridge: 'DZnkkTmCiFWfYTfT41X3Rd1kDgozqzxWaHqsw6W4x2oe',\n },\n },\n aptosTestnet: {\n name: 'Aptos Testnet',\n chainId: 0,\n wormholeChainId: 22,\n rpcUrl: 'https://fullnode.testnet.aptoslabs.com/v1',\n explorerUrl: 'https://explorer.aptoslabs.com',\n isEvm: false,\n contracts: {\n hub: '0x0237e04f74b991b5b6030a793779663033f4ff4a1682a9e66c1f41fc1ec3e2a4',\n wormholeCoreBridge: '0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625',\n tokenBridge: '0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f',\n },\n },\n suiTestnet: {\n name: 'Sui Testnet',\n chainId: 0,\n wormholeChainId: 21,\n rpcUrl: 'https://fullnode.testnet.sui.io:443',\n explorerUrl: 'https://suiscan.xyz/testnet',\n isEvm: false,\n contracts: {\n hub: '0x35e99fdbbc1cde7e093da6f9e758ba2c4a077904bd64caee2fa6db5e6c4e9e37',\n wormholeCoreBridge: '0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790',\n },\n },\n starknetSepolia: {\n name: 'Starknet Sepolia',\n chainId: 0, // Native Starknet chain ID (SN_SEPOLIA = 0x534e5f5345504f4c4941)\n wormholeChainId: 50001, // Custom chain ID (50000+ reserved for non-Wormhole chains)\n rpcUrl: 'https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/tsOnfTBZDKMXcUA26OED-',\n explorerUrl: 'https://sepolia.starkscan.co',\n isEvm: false,\n contracts: {\n // Starknet spoke contract\n hub: '0x68adcc730ed6c355200d00f763825448497b9cdf7936ca121711e078c88e811',\n // Custom bridge contract (NOT Wormhole)\n wormholeCoreBridge: '0x2c458c1ae64556482b05cc2d3ee5b032ed114d68429dda2062c9849a5a725f8',\n },\n // Hub chain ID that Starknet bridge validates (Base Sepolia = 10004)\n hubChainId: 10004,\n },\n};\n\n// ============================================================================\n// Mainnet Chain Configurations\n// ============================================================================\n\nexport const MAINNET_CHAINS: Record<string, ChainConfig> = {\n ethereum: {\n name: 'Ethereum',\n chainId: 1,\n wormholeChainId: 2,\n rpcUrl: 'https://eth.llamarpc.com',\n explorerUrl: 'https://etherscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x98f3c9e6E3fAce36bAAd05FE09d375Ef1464288B',\n tokenBridge: '0x3ee18B2214AFF97000D974cf647E7C347E8fa585',\n },\n },\n base: {\n name: 'Base',\n chainId: 8453,\n wormholeChainId: 30,\n rpcUrl: 'https://mainnet.base.org',\n explorerUrl: 'https://basescan.org',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xbebdb6C8ddC678FfA9f8748f85C815C556Dd8ac6',\n tokenBridge: '0x8d2de8d2f73F1F4cAB472AC9A881C9b123C79627',\n },\n },\n optimism: {\n name: 'Optimism',\n chainId: 10,\n wormholeChainId: 24,\n rpcUrl: 'https://mainnet.optimism.io',\n explorerUrl: 'https://optimistic.etherscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xEe91C335eab126dF5fDB3797EA9d6aD93aeC9722',\n tokenBridge: '0x1D68124e65faFC907325e3EDbF8c4d84499DAa8b',\n },\n },\n arbitrum: {\n name: 'Arbitrum',\n chainId: 42161,\n wormholeChainId: 23,\n rpcUrl: 'https://arb1.arbitrum.io/rpc',\n explorerUrl: 'https://arbiscan.io',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0xa5f208e072434bC67592E4C49C1B991BA79BCA46',\n tokenBridge: '0x0b2402144Bb366A632D14B83F244D2e0e21bD39c',\n },\n },\n polygon: {\n name: 'Polygon',\n chainId: 137,\n wormholeChainId: 5,\n rpcUrl: 'https://polygon-rpc.com',\n explorerUrl: 'https://polygonscan.com',\n isEvm: true,\n contracts: {\n wormholeCoreBridge: '0x7A4B5a56256163F07b2C80A7cA55aBE66c4ec4d7',\n tokenBridge: '0x5a58505a96D1dbf8dF91cB21B54419FC36e93fdE',\n },\n },\n solana: {\n name: 'Solana',\n chainId: 0,\n wormholeChainId: 1,\n rpcUrl: 'https://api.mainnet-beta.solana.com',\n explorerUrl: 'https://explorer.solana.com',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: 'worm2ZoG2kUd4vFXhvjh93UUH596ayRfgQ2MgjNMTth',\n tokenBridge: 'wormDTUJ6AWPNvk59vGQbDvGJmqbDTdgWgAqcLBCgUb',\n },\n },\n aptos: {\n name: 'Aptos',\n chainId: 0,\n wormholeChainId: 22,\n rpcUrl: 'https://fullnode.mainnet.aptoslabs.com/v1',\n explorerUrl: 'https://explorer.aptoslabs.com',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: '0x5bc11445584a763c1fa7ed39081f1b920954da14e04b32440cba863d03e19625',\n tokenBridge: '0x576410486a2da45eee6c949c995670112ddf2fbeedab20350d506328eefc9d4f',\n },\n },\n sui: {\n name: 'Sui',\n chainId: 0,\n wormholeChainId: 21,\n rpcUrl: 'https://fullnode.mainnet.sui.io:443',\n explorerUrl: 'https://suiscan.xyz/mainnet',\n isEvm: false,\n contracts: {\n wormholeCoreBridge: '0xaeab97f96cf9877fee2883315d459552b2b921edc16d7ceac6eab944dd88919c',\n },\n },\n};\n\n// ============================================================================\n// Wormhole API Endpoints\n// ============================================================================\n\nexport const WORMHOLE_API = {\n MAINNET: 'https://api.wormholescan.io',\n TESTNET: 'https://api.testnet.wormholescan.io',\n GUARDIAN_RPC_MAINNET: 'https://wormhole-v2-mainnet-api.certus.one',\n GUARDIAN_RPC_TESTNET: 'https://wormhole-v2-testnet-api.certus.one',\n} as const;\n\n// ============================================================================\n// Hub Contract ABI (minimal)\n// ============================================================================\n\nexport const HUB_ABI = [\n 'function authenticateAndDispatch((bytes authenticatorData, string clientDataJSON, uint256 challengeIndex, uint256 typeIndex, uint256 r, uint256 s) auth, uint256 publicKeyX, uint256 publicKeyY, uint16 targetChain, bytes actionPayload) external payable returns (uint64 sequence)',\n 'function authenticateRawAndDispatch(uint256 r, uint256 s, bytes32 messageHash, uint256 publicKeyX, uint256 publicKeyY, uint16 targetChain, bytes actionPayload, uint256 nonce) external payable returns (uint64 sequence)',\n 'function getNonce(bytes32 userKeyHash) external view returns (uint256)',\n 'function encodeTransferAction(address token, address recipient, uint256 amount) external pure returns (bytes)',\n 'function encodeExecuteAction(address target, uint256 value, bytes data) external pure returns (bytes)',\n 'function encodeBridgeAction(bytes32 token, uint256 amount, uint16 targetChain, bytes32 recipient) external pure returns (bytes)',\n 'function messageFee() external view returns (uint256)',\n 'event Dispatched(bytes32 indexed userKeyHash, uint16 targetChain, uint256 nonce, uint64 sequence, bytes actionPayload)',\n] as const;\n\n// ============================================================================\n// Vault Factory ABI (minimal)\n// ============================================================================\n\nexport const VAULT_FACTORY_ABI = [\n 'function createVault(bytes32 userKeyHash) external returns (address)',\n 'function getVault(bytes32 userKeyHash) external view returns (address)',\n 'function vaultExists(bytes32 userKeyHash) external view returns (bool)',\n 'event VaultCreated(bytes32 indexed userKeyHash, address vault)',\n] as const;\n\n// ============================================================================\n// Vault ABI (minimal)\n// ============================================================================\n\nexport const VAULT_ABI = [\n 'function execute(address target, uint256 value, bytes data) external returns (bytes)',\n 'function executeFromHub(bytes32 vaaHash, uint16 emitterChain, bytes32 emitterAddress, bytes payload) external',\n 'function owner() external view returns (bytes32)',\n 'function hub() external view returns (address)',\n 'receive() external payable',\n] as const;\n"],"mappings":"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","names":[]}
|
|
1
|
+
{"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
|
|
@@ -0,0 +1,243 @@
|
|
|
1
|
+
import { E as EVMClient } from './EVMClient-DtqvdfUP.mjs';
|
|
2
|
+
import { b as SessionConfig, d as SessionManagerConfig, a as SessionKey, A as ActionParams, c as SessionSignature, g as SessionSignedAction, f as SessionEventCallback } from './types-B7V5VNbO.mjs';
|
|
3
|
+
import { PasskeyCredential } from './passkey.mjs';
|
|
4
|
+
import { RegisterSessionParams, RevokeSessionParams } from './types.mjs';
|
|
5
|
+
import { ethers } from 'ethers';
|
|
6
|
+
|
|
7
|
+
/**
|
|
8
|
+
* Veridex Protocol SDK - Session Manager
|
|
9
|
+
*
|
|
10
|
+
* Manages ephemeral session keys for fast, native L1-speed transactions
|
|
11
|
+
* after initial biometric authentication.
|
|
12
|
+
*
|
|
13
|
+
* Key Features:
|
|
14
|
+
* - One-time Passkey auth to create session
|
|
15
|
+
* - Instant software-backed signing for subsequent transactions
|
|
16
|
+
* - Query-based validation on Spokes (no VAA wait)
|
|
17
|
+
* - ~400ms transactions after initial setup
|
|
18
|
+
* - Secure encrypted storage (AES-GCM)
|
|
19
|
+
* - Auto-refresh before expiry
|
|
20
|
+
* - Per-session value limits
|
|
21
|
+
*/
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* Interface for Hub contract interactions
|
|
25
|
+
*
|
|
26
|
+
* This should be implemented by chain clients (e.g., EVMHubClientAdapter).
|
|
27
|
+
*/
|
|
28
|
+
interface HubClient {
|
|
29
|
+
/**
|
|
30
|
+
* Register a session on the Hub
|
|
31
|
+
*
|
|
32
|
+
* @param params Registration parameters with Passkey signature
|
|
33
|
+
* @returns Promise that resolves when registration completes
|
|
34
|
+
*/
|
|
35
|
+
registerSession(params: RegisterSessionParams): Promise<void>;
|
|
36
|
+
/**
|
|
37
|
+
* Revoke a session on the Hub
|
|
38
|
+
*
|
|
39
|
+
* @param params Revocation parameters with Passkey signature
|
|
40
|
+
* @returns Promise that resolves when revocation completes
|
|
41
|
+
*/
|
|
42
|
+
revokeSession(params: RevokeSessionParams): Promise<void>;
|
|
43
|
+
/**
|
|
44
|
+
* Revoke all sessions for an identity on the Hub (emergency wipe).
|
|
45
|
+
*
|
|
46
|
+
* @param params WebAuthn-signed revocation covering all sessions.
|
|
47
|
+
* @returns Number of sessions revoked.
|
|
48
|
+
*/
|
|
49
|
+
revokeAllSessions?(params: RevokeSessionParams): Promise<number>;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Manages session key lifecycle and signing operations
|
|
53
|
+
*
|
|
54
|
+
* Usage:
|
|
55
|
+
* ```typescript
|
|
56
|
+
* const manager = new SessionManager(credential, hubClient, passkeySign, config);
|
|
57
|
+
*
|
|
58
|
+
* // Create session (requires biometric)
|
|
59
|
+
* const session = await manager.createSession();
|
|
60
|
+
*
|
|
61
|
+
* // Sign actions instantly (no biometric)
|
|
62
|
+
* const signature = await manager.signWithSession(action);
|
|
63
|
+
*
|
|
64
|
+
* // Revoke session (requires biometric)
|
|
65
|
+
* await manager.revokeSession();
|
|
66
|
+
* ```
|
|
67
|
+
*/
|
|
68
|
+
declare class SessionManager {
|
|
69
|
+
private credential;
|
|
70
|
+
private hubClient;
|
|
71
|
+
private passkeySign;
|
|
72
|
+
private currentSession;
|
|
73
|
+
private storage;
|
|
74
|
+
private config;
|
|
75
|
+
private refreshTimer;
|
|
76
|
+
private eventCallbacks;
|
|
77
|
+
private debug;
|
|
78
|
+
/**
|
|
79
|
+
* @param credential User's Passkey credential (for Hub interaction)
|
|
80
|
+
* @param hubClient Hub client for on-chain session operations
|
|
81
|
+
* @param passkeySign Function to sign challenges with Passkey
|
|
82
|
+
* @param config Session configuration
|
|
83
|
+
* @param managerConfig SessionManager configuration
|
|
84
|
+
*/
|
|
85
|
+
constructor(credential: PasskeyCredential, hubClient: HubClient, passkeySign: (challenge: Uint8Array) => Promise<any>, config: Partial<SessionConfig>, managerConfig?: SessionManagerConfig);
|
|
86
|
+
/**
|
|
87
|
+
* Create a new session (requires biometric authentication)
|
|
88
|
+
*
|
|
89
|
+
* Steps:
|
|
90
|
+
* 1. Generate ephemeral secp256k1 key pair
|
|
91
|
+
* 2. Sign session registration with Passkey
|
|
92
|
+
* 3. Register session on Hub contract
|
|
93
|
+
* 4. Store session securely (encrypted)
|
|
94
|
+
* 5. Start auto-refresh timer (if enabled)
|
|
95
|
+
*
|
|
96
|
+
* @returns Created session key
|
|
97
|
+
* @throws SessionError if registration fails
|
|
98
|
+
*/
|
|
99
|
+
createSession(): Promise<SessionKey>;
|
|
100
|
+
/**
|
|
101
|
+
* Load existing session from storage
|
|
102
|
+
*
|
|
103
|
+
* @returns Loaded session or null if no valid session exists
|
|
104
|
+
*/
|
|
105
|
+
loadSession(): Promise<SessionKey | null>;
|
|
106
|
+
/**
|
|
107
|
+
* Revoke the current session (requires biometric authentication)
|
|
108
|
+
*
|
|
109
|
+
* @throws SessionError if no active session or revocation fails
|
|
110
|
+
*/
|
|
111
|
+
revokeSession(): Promise<void>;
|
|
112
|
+
/**
|
|
113
|
+
* Revoke **all** sessions for this identity (emergency wipe).
|
|
114
|
+
*
|
|
115
|
+
* Requires a WebAuthn biometric prompt. If the Hub client does not
|
|
116
|
+
* support batch revocation the method falls back to revoking the
|
|
117
|
+
* local session only and throws so the caller knows the on-chain
|
|
118
|
+
* wipe did not happen.
|
|
119
|
+
*/
|
|
120
|
+
revokeAllSessions(): Promise<number>;
|
|
121
|
+
/**
|
|
122
|
+
* Sign an action with the session key (instant, no biometric)
|
|
123
|
+
*
|
|
124
|
+
* @param action Action parameters to sign
|
|
125
|
+
* @returns Session signature
|
|
126
|
+
* @throws SessionError if no active session, expired, or value exceeds limit
|
|
127
|
+
*/
|
|
128
|
+
signWithSession(action: ActionParams): Promise<SessionSignature>;
|
|
129
|
+
/**
|
|
130
|
+
* Sign an action and prepare for submission
|
|
131
|
+
*
|
|
132
|
+
* @param action Action parameters
|
|
133
|
+
* @returns Session-signed action ready for submission
|
|
134
|
+
*/
|
|
135
|
+
signAction(action: ActionParams): Promise<SessionSignedAction>;
|
|
136
|
+
/**
|
|
137
|
+
* Check if a session is currently active
|
|
138
|
+
*
|
|
139
|
+
* @returns True if an active, non-expired session exists
|
|
140
|
+
*/
|
|
141
|
+
isActive(): boolean;
|
|
142
|
+
/**
|
|
143
|
+
* Get current session information (if active)
|
|
144
|
+
*
|
|
145
|
+
* @returns Current session or null
|
|
146
|
+
*/
|
|
147
|
+
getSession(): SessionKey | null;
|
|
148
|
+
/**
|
|
149
|
+
* Get time remaining until session expiry (in seconds)
|
|
150
|
+
*
|
|
151
|
+
* @returns Seconds until expiry, or 0 if no active session
|
|
152
|
+
*/
|
|
153
|
+
getTimeRemaining(): number;
|
|
154
|
+
/**
|
|
155
|
+
* Schedule automatic session refresh
|
|
156
|
+
*/
|
|
157
|
+
private scheduleRefresh;
|
|
158
|
+
/**
|
|
159
|
+
* Refresh the current session (creates a new session)
|
|
160
|
+
*
|
|
161
|
+
* @returns New session key
|
|
162
|
+
*/
|
|
163
|
+
refreshSession(): Promise<SessionKey>;
|
|
164
|
+
/**
|
|
165
|
+
* Register an event callback
|
|
166
|
+
*/
|
|
167
|
+
on(callback: SessionEventCallback): void;
|
|
168
|
+
/**
|
|
169
|
+
* Unregister an event callback
|
|
170
|
+
*/
|
|
171
|
+
off(callback: SessionEventCallback): void;
|
|
172
|
+
/**
|
|
173
|
+
* Emit a session event
|
|
174
|
+
*/
|
|
175
|
+
private emit;
|
|
176
|
+
/**
|
|
177
|
+
* Log debug message (if debug enabled)
|
|
178
|
+
*/
|
|
179
|
+
private log;
|
|
180
|
+
/**
|
|
181
|
+
* Cleanup resources
|
|
182
|
+
*/
|
|
183
|
+
dispose(): void;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
/**
|
|
187
|
+
* Veridex Protocol SDK - EVM Hub Client Adapter
|
|
188
|
+
*
|
|
189
|
+
* Adapts EVMClient to work with SessionManager's HubClient interface.
|
|
190
|
+
* Provides a clean integration layer between session management and chain clients.
|
|
191
|
+
*/
|
|
192
|
+
|
|
193
|
+
/**
|
|
194
|
+
* Adapter that makes EVMClient compatible with SessionManager's HubClient interface
|
|
195
|
+
*
|
|
196
|
+
* Usage:
|
|
197
|
+
* ```typescript
|
|
198
|
+
* const hubAdapter = new EVMHubClientAdapter(evmClient, signer);
|
|
199
|
+
* const sessionManager = new SessionManager(
|
|
200
|
+
* credential,
|
|
201
|
+
* hubAdapter,
|
|
202
|
+
* config
|
|
203
|
+
* );
|
|
204
|
+
* ```
|
|
205
|
+
*/
|
|
206
|
+
declare class EVMHubClientAdapter implements HubClient {
|
|
207
|
+
private evmClient;
|
|
208
|
+
private signer;
|
|
209
|
+
constructor(evmClient: EVMClient, signer: ethers.Signer);
|
|
210
|
+
/**
|
|
211
|
+
* Register a session on the Hub
|
|
212
|
+
*
|
|
213
|
+
* @param params Registration parameters with Passkey signature
|
|
214
|
+
* @returns Promise that resolves when registration completes
|
|
215
|
+
*/
|
|
216
|
+
registerSession(params: RegisterSessionParams): Promise<void>;
|
|
217
|
+
/**
|
|
218
|
+
* Revoke a session on the Hub
|
|
219
|
+
*
|
|
220
|
+
* @param params Revocation parameters with Passkey signature
|
|
221
|
+
* @returns Promise that resolves when revocation completes
|
|
222
|
+
*/
|
|
223
|
+
revokeSession(params: RevokeSessionParams): Promise<void>;
|
|
224
|
+
/**
|
|
225
|
+
* Revoke all sessions for an identity on the Hub.
|
|
226
|
+
*
|
|
227
|
+
* Currently delegates to the single-revoke path since the Hub contract
|
|
228
|
+
* does not yet expose a batch-revoke entry point. Subclasses or future
|
|
229
|
+
* Hub versions can override this with a true batch call.
|
|
230
|
+
*
|
|
231
|
+
* @param params Revocation parameters with Passkey signature
|
|
232
|
+
* @returns Number of sessions revoked (always 1 for now)
|
|
233
|
+
*/
|
|
234
|
+
revokeAllSessions(params: RevokeSessionParams): Promise<number>;
|
|
235
|
+
/**
|
|
236
|
+
* Update the signer (e.g., when switching accounts)
|
|
237
|
+
*
|
|
238
|
+
* @param signer New Ethereum signer
|
|
239
|
+
*/
|
|
240
|
+
updateSigner(signer: ethers.Signer): void;
|
|
241
|
+
}
|
|
242
|
+
|
|
243
|
+
export { EVMHubClientAdapter as E, type HubClient as H, SessionManager as S };
|