@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.
Files changed (132) hide show
  1. package/LICENSE +170 -21
  2. package/README.md +574 -117
  3. package/dist/EVMClient-DtqvdfUP.d.mts +376 -0
  4. package/dist/auth/prepareAuth.d.mts +25 -0
  5. package/dist/auth/prepareAuth.js +2406 -0
  6. package/dist/auth/prepareAuth.js.map +1 -0
  7. package/dist/auth/prepareAuth.mjs +151 -0
  8. package/dist/auth/prepareAuth.mjs.map +1 -0
  9. package/dist/chains/aptos/index.d.mts +6 -5
  10. package/dist/chains/aptos/index.js +66 -39
  11. package/dist/chains/aptos/index.js.map +1 -1
  12. package/dist/chains/aptos/index.mjs +5 -547
  13. package/dist/chains/aptos/index.mjs.map +1 -1
  14. package/dist/chains/avalanche/index.d.mts +137 -0
  15. package/dist/chains/avalanche/index.js +1555 -0
  16. package/dist/chains/avalanche/index.js.map +1 -0
  17. package/dist/chains/avalanche/index.mjs +10 -0
  18. package/dist/chains/avalanche/index.mjs.map +1 -0
  19. package/dist/chains/evm/index.d.mts +5 -3
  20. package/dist/chains/evm/index.js +165 -3
  21. package/dist/chains/evm/index.js.map +1 -1
  22. package/dist/chains/evm/index.mjs +8 -1200
  23. package/dist/chains/evm/index.mjs.map +1 -1
  24. package/dist/chains/solana/index.d.mts +1 -1
  25. package/dist/chains/solana/index.js.map +1 -1
  26. package/dist/chains/solana/index.mjs +4 -486
  27. package/dist/chains/solana/index.mjs.map +1 -1
  28. package/dist/chains/stacks/index.d.mts +559 -0
  29. package/dist/chains/stacks/index.js +1207 -0
  30. package/dist/chains/stacks/index.js.map +1 -0
  31. package/dist/chains/stacks/index.mjs +71 -0
  32. package/dist/chains/stacks/index.mjs.map +1 -0
  33. package/dist/chains/starknet/index.d.mts +4 -5
  34. package/dist/chains/starknet/index.js +1 -13
  35. package/dist/chains/starknet/index.js.map +1 -1
  36. package/dist/chains/starknet/index.mjs +5 -503
  37. package/dist/chains/starknet/index.mjs.map +1 -1
  38. package/dist/chains/sui/index.d.mts +4 -4
  39. package/dist/chains/sui/index.js +2 -2
  40. package/dist/chains/sui/index.js.map +1 -1
  41. package/dist/chains/sui/index.mjs +5 -529
  42. package/dist/chains/sui/index.mjs.map +1 -1
  43. package/dist/chunk-5T6KPH7A.mjs +1082 -0
  44. package/dist/chunk-5T6KPH7A.mjs.map +1 -0
  45. package/dist/chunk-72ZA3OYQ.mjs +20 -0
  46. package/dist/chunk-72ZA3OYQ.mjs.map +1 -0
  47. package/dist/chunk-F3YAGZSW.mjs +269 -0
  48. package/dist/chunk-F3YAGZSW.mjs.map +1 -0
  49. package/dist/chunk-GWJRKDSA.mjs +549 -0
  50. package/dist/chunk-GWJRKDSA.mjs.map +1 -0
  51. package/dist/chunk-M3MM4YMF.mjs +417 -0
  52. package/dist/chunk-M3MM4YMF.mjs.map +1 -0
  53. package/dist/chunk-MLXQHIH2.mjs +426 -0
  54. package/dist/chunk-MLXQHIH2.mjs.map +1 -0
  55. package/dist/chunk-N4A2RMUN.mjs +216 -0
  56. package/dist/chunk-N4A2RMUN.mjs.map +1 -0
  57. package/dist/chunk-NUWSMJFJ.mjs +179 -0
  58. package/dist/chunk-NUWSMJFJ.mjs.map +1 -0
  59. package/dist/chunk-OVMMTL6H.mjs +330 -0
  60. package/dist/chunk-OVMMTL6H.mjs.map +1 -0
  61. package/dist/chunk-PDHZ5X5O.mjs +565 -0
  62. package/dist/chunk-PDHZ5X5O.mjs.map +1 -0
  63. package/dist/chunk-Q5O3M5LP.mjs +422 -0
  64. package/dist/chunk-Q5O3M5LP.mjs.map +1 -0
  65. package/dist/chunk-QDO6NQ7P.mjs +840 -0
  66. package/dist/chunk-QDO6NQ7P.mjs.map +1 -0
  67. package/dist/chunk-QT4ZZ4GM.mjs +509 -0
  68. package/dist/chunk-QT4ZZ4GM.mjs.map +1 -0
  69. package/dist/chunk-SXXGTQIR.mjs +464 -0
  70. package/dist/chunk-SXXGTQIR.mjs.map +1 -0
  71. package/dist/chunk-USDA5JTN.mjs +1249 -0
  72. package/dist/chunk-USDA5JTN.mjs.map +1 -0
  73. package/dist/chunk-V636MIV3.mjs +52 -0
  74. package/dist/chunk-V636MIV3.mjs.map +1 -0
  75. package/dist/chunk-X7BZMSPQ.mjs +407 -0
  76. package/dist/chunk-X7BZMSPQ.mjs.map +1 -0
  77. package/dist/chunk-YCUJZ6Z7.mjs +829 -0
  78. package/dist/chunk-YCUJZ6Z7.mjs.map +1 -0
  79. package/dist/constants.d.mts +1 -1
  80. package/dist/constants.js +26 -12
  81. package/dist/constants.js.map +1 -1
  82. package/dist/constants.mjs +16 -375
  83. package/dist/constants.mjs.map +1 -1
  84. package/dist/index-DDalBhAm.d.mts +243 -0
  85. package/dist/index.d.mts +2511 -556
  86. package/dist/index.js +15216 -10262
  87. package/dist/index.js.map +1 -1
  88. package/dist/index.mjs +4125 -7839
  89. package/dist/index.mjs.map +1 -1
  90. package/dist/passkey.d.mts +182 -0
  91. package/dist/passkey.js +914 -0
  92. package/dist/passkey.js.map +1 -0
  93. package/dist/passkey.mjs +15 -0
  94. package/dist/passkey.mjs.map +1 -0
  95. package/dist/payload.js.map +1 -1
  96. package/dist/payload.mjs +25 -244
  97. package/dist/payload.mjs.map +1 -1
  98. package/dist/portfolio-V347KZOL.mjs +13 -0
  99. package/dist/portfolio-V347KZOL.mjs.map +1 -0
  100. package/dist/queries/index.js +145 -12
  101. package/dist/queries/index.js.map +1 -1
  102. package/dist/queries/index.mjs +14 -1496
  103. package/dist/queries/index.mjs.map +1 -1
  104. package/dist/{types-FJL7j6gQ.d.ts → types-B7V5VNbO.d.mts} +6 -2
  105. package/dist/{types-ChIsqCiw.d.mts → types-DP2CQT8p.d.mts} +12 -1
  106. package/dist/types.d.mts +16 -0
  107. package/dist/types.js.map +1 -1
  108. package/dist/utils.js +25 -11
  109. package/dist/utils.js.map +1 -1
  110. package/dist/utils.mjs +19 -371
  111. package/dist/utils.mjs.map +1 -1
  112. package/dist/wormhole.js.map +1 -1
  113. package/dist/wormhole.mjs +25 -397
  114. package/dist/wormhole.mjs.map +1 -1
  115. package/package.json +28 -3
  116. package/scripts/patch-noble-curves.js +78 -0
  117. package/dist/chains/aptos/index.d.ts +0 -145
  118. package/dist/chains/evm/index.d.ts +0 -5
  119. package/dist/chains/solana/index.d.ts +0 -116
  120. package/dist/chains/starknet/index.d.ts +0 -172
  121. package/dist/chains/sui/index.d.ts +0 -182
  122. package/dist/constants.d.ts +0 -150
  123. package/dist/index-0NXfbk0z.d.ts +0 -637
  124. package/dist/index-D0dLVjTA.d.mts +0 -637
  125. package/dist/index.d.ts +0 -3123
  126. package/dist/payload.d.ts +0 -125
  127. package/dist/queries/index.d.ts +0 -148
  128. package/dist/types-ChIsqCiw.d.ts +0 -565
  129. package/dist/types-FJL7j6gQ.d.mts +0 -172
  130. package/dist/types.d.ts +0 -407
  131. package/dist/utils.d.ts +0 -81
  132. package/dist/wormhole.d.ts +0 -167
@@ -1,378 +1,19 @@
1
- // src/constants.ts
2
- var ACTION_TYPES = {
3
- TRANSFER: 1,
4
- EXECUTE: 2,
5
- CONFIG: 3,
6
- BRIDGE: 4
7
- };
8
- var ACTION_TRANSFER = 1;
9
- var ACTION_EXECUTE = 2;
10
- var ACTION_CONFIG = 3;
11
- var ACTION_BRIDGE = 4;
12
- var PROTOCOL_VERSION = 1;
13
- var WORMHOLE_CHAIN_IDS = {
14
- MAINNET: {
15
- SOLANA: 1,
16
- ETHEREUM: 2,
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,
@@ -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 };