@veridex/sdk 1.1.0 → 1.1.1

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 (83) hide show
  1. package/dist/auth/prepareAuth.js +107 -32
  2. package/dist/auth/prepareAuth.js.map +1 -1
  3. package/dist/auth/prepareAuth.mjs +6 -6
  4. package/dist/chains/aptos/index.js.map +1 -1
  5. package/dist/chains/aptos/index.mjs +3 -3
  6. package/dist/chains/avalanche/index.js.map +1 -1
  7. package/dist/chains/avalanche/index.mjs +4 -4
  8. package/dist/chains/evm/index.d.mts +2 -2
  9. package/dist/chains/evm/index.js.map +1 -1
  10. package/dist/chains/evm/index.mjs +3 -3
  11. package/dist/chains/solana/index.js.map +1 -1
  12. package/dist/chains/solana/index.mjs +3 -3
  13. package/dist/chains/stacks/index.d.mts +1 -1
  14. package/dist/chains/stacks/index.js.map +1 -1
  15. package/dist/chains/stacks/index.mjs +3 -3
  16. package/dist/chains/starknet/index.d.mts +1 -1
  17. package/dist/chains/starknet/index.js.map +1 -1
  18. package/dist/chains/starknet/index.mjs +3 -3
  19. package/dist/chains/sui/index.d.mts +1 -1
  20. package/dist/chains/sui/index.js.map +1 -1
  21. package/dist/chains/sui/index.mjs +3 -3
  22. package/dist/{chunk-Q5O3M5LP.mjs → chunk-2TS375ET.mjs} +2 -2
  23. package/dist/{chunk-QT4ZZ4GM.mjs → chunk-5FDOTI5G.mjs} +2 -2
  24. package/dist/{chunk-5T6KPH7A.mjs → chunk-CSU4IV2F.mjs} +2 -2
  25. package/dist/{chunk-YCUJZ6Z7.mjs → chunk-CTYDGO6E.mjs} +63 -6
  26. package/dist/chunk-CTYDGO6E.mjs.map +1 -0
  27. package/dist/{chunk-SXXGTQIR.mjs → chunk-E3SU36C2.mjs} +2 -2
  28. package/dist/{chunk-NUWSMJFJ.mjs → chunk-EFIXFA6V.mjs} +2 -2
  29. package/dist/{chunk-MLXQHIH2.mjs → chunk-GM5DKEHD.mjs} +2 -2
  30. package/dist/{chunk-GWJRKDSA.mjs → chunk-GOWXQPTW.mjs} +3 -3
  31. package/dist/{chunk-OVMMTL6H.mjs → chunk-ICGB3AHI.mjs} +2 -2
  32. package/dist/{chunk-QDO6NQ7P.mjs → chunk-M3GUNREX.mjs} +20 -3
  33. package/dist/{chunk-QDO6NQ7P.mjs.map → chunk-M3GUNREX.mjs.map} +1 -1
  34. package/dist/{chunk-N4A2RMUN.mjs → chunk-PEGOXMBU.mjs} +2 -2
  35. package/dist/{chunk-X7BZMSPQ.mjs → chunk-RD6ZYUVG.mjs} +52 -30
  36. package/dist/chunk-RD6ZYUVG.mjs.map +1 -0
  37. package/dist/{chunk-F3YAGZSW.mjs → chunk-TPEP6XUA.mjs} +2 -2
  38. package/dist/{chunk-M3MM4YMF.mjs → chunk-UPO55SBK.mjs} +2 -2
  39. package/dist/{chunk-USDA5JTN.mjs → chunk-YBN2VC6E.mjs} +2 -2
  40. package/dist/{chunk-PDHZ5X5O.mjs → chunk-YYT3V7CI.mjs} +2 -2
  41. package/dist/constants.d.mts +2 -2
  42. package/dist/constants.js +51 -29
  43. package/dist/constants.js.map +1 -1
  44. package/dist/constants.mjs +1 -1
  45. package/dist/{index-DDalBhAm.d.mts → index-CySMITQ9.d.mts} +9 -6
  46. package/dist/index.d.mts +41 -13
  47. package/dist/index.js +445 -147
  48. package/dist/index.js.map +1 -1
  49. package/dist/index.mjs +327 -127
  50. package/dist/index.mjs.map +1 -1
  51. package/dist/passkey.js +57 -4
  52. package/dist/passkey.js.map +1 -1
  53. package/dist/passkey.mjs +3 -3
  54. package/dist/payload.js.map +1 -1
  55. package/dist/payload.mjs +2 -2
  56. package/dist/portfolio-JA4OTF7Y.mjs +13 -0
  57. package/dist/queries/index.js +49 -27
  58. package/dist/queries/index.js.map +1 -1
  59. package/dist/queries/index.mjs +5 -5
  60. package/dist/{types-B7V5VNbO.d.mts → types-DWx-5jmz.d.mts} +12 -3
  61. package/dist/utils.js +49 -27
  62. package/dist/utils.js.map +1 -1
  63. package/dist/utils.mjs +2 -2
  64. package/dist/wormhole.js.map +1 -1
  65. package/dist/wormhole.mjs +2 -2
  66. package/package.json +1 -1
  67. package/dist/chunk-X7BZMSPQ.mjs.map +0 -1
  68. package/dist/chunk-YCUJZ6Z7.mjs.map +0 -1
  69. package/dist/portfolio-V347KZOL.mjs +0 -13
  70. /package/dist/{chunk-Q5O3M5LP.mjs.map → chunk-2TS375ET.mjs.map} +0 -0
  71. /package/dist/{chunk-QT4ZZ4GM.mjs.map → chunk-5FDOTI5G.mjs.map} +0 -0
  72. /package/dist/{chunk-5T6KPH7A.mjs.map → chunk-CSU4IV2F.mjs.map} +0 -0
  73. /package/dist/{chunk-SXXGTQIR.mjs.map → chunk-E3SU36C2.mjs.map} +0 -0
  74. /package/dist/{chunk-NUWSMJFJ.mjs.map → chunk-EFIXFA6V.mjs.map} +0 -0
  75. /package/dist/{chunk-MLXQHIH2.mjs.map → chunk-GM5DKEHD.mjs.map} +0 -0
  76. /package/dist/{chunk-GWJRKDSA.mjs.map → chunk-GOWXQPTW.mjs.map} +0 -0
  77. /package/dist/{chunk-OVMMTL6H.mjs.map → chunk-ICGB3AHI.mjs.map} +0 -0
  78. /package/dist/{chunk-N4A2RMUN.mjs.map → chunk-PEGOXMBU.mjs.map} +0 -0
  79. /package/dist/{chunk-F3YAGZSW.mjs.map → chunk-TPEP6XUA.mjs.map} +0 -0
  80. /package/dist/{chunk-M3MM4YMF.mjs.map → chunk-UPO55SBK.mjs.map} +0 -0
  81. /package/dist/{chunk-USDA5JTN.mjs.map → chunk-YBN2VC6E.mjs.map} +0 -0
  82. /package/dist/{chunk-PDHZ5X5O.mjs.map → chunk-YYT3V7CI.mjs.map} +0 -0
  83. /package/dist/{portfolio-V347KZOL.mjs.map → portfolio-JA4OTF7Y.mjs.map} +0 -0
@@ -52,13 +52,12 @@ var TESTNET_CHAINS = {
52
52
  chainId: 84532,
53
53
  wormholeChainId: 10004,
54
54
  rpcUrl: "https://sepolia.base.org",
55
- // Public CORS-friendly RPC
56
55
  explorerUrl: "https://sepolia.basescan.org",
57
56
  isEvm: true,
58
57
  contracts: {
59
- hub: "0x23a39c294891703146c3607e1FEEB5Fe78F7F28d",
60
- vaultFactory: "0x31e8dc9428575334739754Ab2bdB0E8b9Dc707FD",
61
- vaultImplementation: "0xD65E996CD6d5B01689dc54ad30B51f1D88a100f5",
58
+ hub: "0xD5D29b6EaeE6FF4b765e704298a7e48D22607059",
59
+ vaultFactory: "0xb25b73D5FeD5693dcd1Bb78f8e33387B59A022EC",
60
+ vaultImplementation: "0x2CB8397df988c1880d9e5cFfF65bfC22D7D90EE6",
62
61
  wormholeCoreBridge: "0x79A1027a6A159502049F10906D333EC57E95F083",
63
62
  tokenBridge: "0x86F55A04690fd7815A3D802bD587e83eA888B239"
64
63
  }
@@ -71,8 +70,8 @@ var TESTNET_CHAINS = {
71
70
  explorerUrl: "https://sepolia.etherscan.io",
72
71
  isEvm: true,
73
72
  contracts: {
74
- vaultFactory: "0x52a6dc19C11b3B53B434Fc7f6D31F8b62ed18F0a",
75
- vaultImplementation: "0xfab72dd1fd3AD79f738B49506f32251B60c95f01",
73
+ vaultFactory: "0x265c10763B4d16AD970bC3d7670c645e37f63AF4",
74
+ vaultImplementation: "0x942426C94652ebC48f4f404928016B95ADb1DA25",
76
75
  wormholeCoreBridge: "0x4a8bc80Ed5a4067f1CCf107057b8270E0cC11A78",
77
76
  tokenBridge: "0xDB5492265f6038831E89f495670FF909aDe94bd9"
78
77
  }
@@ -85,8 +84,8 @@ var TESTNET_CHAINS = {
85
84
  explorerUrl: "https://sepolia-optimism.etherscan.io",
86
85
  isEvm: true,
87
86
  contracts: {
88
- vaultFactory: "0x347feeaBB5655a7a80b56D8D554DA30BE6c28225",
89
- vaultImplementation: "0x26C4FD8fC66150ef5964562F7A69271fB0cd02A4",
87
+ vaultFactory: "0x3c5e4aCdC8Cd53ae5ae603B4c511885191fBb868",
88
+ vaultImplementation: "0xA45dBF322c5A3028687fEEB161603d3BCe02e119",
90
89
  wormholeCoreBridge: "0x31377888146f3253211EFEf5c676D41ECe7D58Fe",
91
90
  tokenBridge: "0x99737Ec4B815d816c49A385943baf0380e75c0Ac"
92
91
  }
@@ -99,24 +98,52 @@ var TESTNET_CHAINS = {
99
98
  explorerUrl: "https://sepolia.arbiscan.io",
100
99
  isEvm: true,
101
100
  contracts: {
102
- vaultFactory: "0x708eEE22621A64CDF51d98d3e8D97902D7dF52dD",
103
- vaultImplementation: "0x9f74Dc14A98E59df7AEC5571a2B9E329153dF5Cd",
101
+ vaultFactory: "0xB9C3e6bad3c6f26956be4a4bb5a366376Fd3045D",
102
+ vaultImplementation: "0x8601881b94B68B09b485f407317686103d3CB681",
104
103
  wormholeCoreBridge: "0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35",
105
104
  tokenBridge: "0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e"
106
105
  }
107
106
  },
108
- seiTestnet: {
109
- name: "Sei Atlantic-2",
110
- chainId: 1328,
111
- wormholeChainId: 40,
112
- rpcUrl: "https://evm-rpc-testnet.sei-apis.com",
113
- explorerUrl: "https://seitrace.com/?chain=atlantic-2",
107
+ monadTestnet: {
108
+ name: "Monad Testnet",
109
+ chainId: 10143,
110
+ wormholeChainId: 10048,
111
+ rpcUrl: "https://testnet-rpc.monad.xyz",
112
+ explorerUrl: "https://testnet.monadexplorer.com",
113
+ isEvm: true,
114
+ contracts: {
115
+ vaultFactory: "0xbE9B9c39956448DA75Ac97E5e3dE17e34171660A",
116
+ vaultImplementation: "0x500853DCc54Fd1A707ec9d443032Bb7748f426d3",
117
+ wormholeCoreBridge: "0xBB73cB66C26740F31d1FabDC6b7A46a038A300dd",
118
+ tokenBridge: "0x0000000000000000000000000000000000000000"
119
+ }
120
+ },
121
+ avalancheFuji: {
122
+ name: "Avalanche Fuji",
123
+ chainId: 43113,
124
+ wormholeChainId: 6,
125
+ rpcUrl: "https://api.avax-test.network/ext/bc/C/rpc",
126
+ explorerUrl: "https://testnet.snowtrace.io",
127
+ isEvm: true,
128
+ contracts: {
129
+ vaultFactory: "0x50F2c37584823A6cc293bd0d7647D558d05CA4C1",
130
+ vaultImplementation: "0x53d4D3943d0E524836f0B1955AbB216449F538fF",
131
+ wormholeCoreBridge: "0x7bbcE28e64B3F8b84d876Ab298393c38ad7aac4C",
132
+ tokenBridge: "0x61E44E506Ca5659E6c0bba9b678586fA2d729756"
133
+ }
134
+ },
135
+ polygonAmoy: {
136
+ name: "Polygon Amoy",
137
+ chainId: 80002,
138
+ wormholeChainId: 10007,
139
+ rpcUrl: "https://rpc-amoy.polygon.technology",
140
+ explorerUrl: "https://amoy.polygonscan.com",
114
141
  isEvm: true,
115
142
  contracts: {
116
143
  vaultFactory: "0x07F608AFf6d63b68029488b726d895c4Bb593038",
117
144
  vaultImplementation: "0xD66153fccFB6731fB6c4944FbD607ba86A76a1f6",
118
- wormholeCoreBridge: "0x0000000000000000000000000000000000000000"
119
- // Mock - not yet deployed
145
+ wormholeCoreBridge: "0x6b9C8671cdDC8dEab9c719bB87cBd3e782bA6a35",
146
+ tokenBridge: "0xC7A204bDBFe983FCD8d8E61D02b475D4073fF97e"
120
147
  }
121
148
  },
122
149
  solanaDevnet: {
@@ -153,26 +180,21 @@ var TESTNET_CHAINS = {
153
180
  explorerUrl: "https://suiscan.xyz/testnet",
154
181
  isEvm: false,
155
182
  contracts: {
156
- hub: "0x7f6b9a3f9dba7ac6b20d180a9274f525c23a2a9f7e5445218c595c3696c55667",
183
+ hub: "0x1f8f9b79561525275c2de4579a1e5243cfe789656ec666485b7737f4784c1bfc",
157
184
  wormholeCoreBridge: "0x31358d198147da50db32eda2562951d53973a0c0ad5ed738e9b17d88b213d790"
158
185
  }
159
186
  },
160
187
  starknetSepolia: {
161
188
  name: "Starknet Sepolia",
162
189
  chainId: 0,
163
- // Native Starknet chain ID (SN_SEPOLIA = 0x534e5f5345504f4c4941)
164
190
  wormholeChainId: 50001,
165
- // Custom chain ID (50000+ reserved for non-Wormhole chains)
166
- rpcUrl: "https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/tsOnfTBZDKMXcUA26OED-",
191
+ rpcUrl: "https://starknet-sepolia-rpc.publicnode.com",
167
192
  explorerUrl: "https://sepolia.starkscan.co",
168
193
  isEvm: false,
169
194
  contracts: {
170
- // Starknet spoke contract
171
- hub: "0x46139177b8a1d7187cf35fbcddca637882a1d6f50d91f048c59d1322eee9ede",
172
- // Custom bridge contract (NOT Wormhole)
173
- wormholeCoreBridge: "0x700488242f8f03248b2311edddc394f0408a18c36181446eabd265067809c83"
195
+ hub: "0x1c87ca930ad46a5fef167f2d03d6df5b1dd6cdb841955c059edabb0566ff2d6",
196
+ wormholeCoreBridge: "0x30280c19d413eef7515c479186f206498c7f5077e30cb7277ce753d35adab00"
174
197
  },
175
- // Hub chain ID that Starknet bridge validates (Base Sepolia = 10004)
176
198
  hubChainId: 10004
177
199
  }
178
200
  };
@@ -338,6 +360,59 @@ function computeKeyHash(publicKeyX, publicKeyY) {
338
360
  );
339
361
  }
340
362
 
363
+ // src/core/relayerUrl.ts
364
+ var API_ROOT = "/api/v1";
365
+ function trimTrailingSlashes(value) {
366
+ return value.trim().replace(/\/+$/, "");
367
+ }
368
+ function normalizeRelayerOrigin(value) {
369
+ const trimmed = trimTrailingSlashes(value);
370
+ if (!trimmed) {
371
+ return "";
372
+ }
373
+ if (trimmed.startsWith("/")) {
374
+ return trimmed.replace(/\/api\/v1$/i, "");
375
+ }
376
+ try {
377
+ const url = new URL(trimmed);
378
+ url.pathname = url.pathname.replace(/\/api\/v1$/i, "").replace(/\/+$/, "");
379
+ return url.toString().replace(/\/+$/, "");
380
+ } catch {
381
+ return trimmed.replace(/\/api\/v1$/i, "");
382
+ }
383
+ }
384
+ function buildRelayerApiUrl(baseUrl, path) {
385
+ const normalizedPath = path.startsWith("/") ? path : `/${path}`;
386
+ const trimmed = trimTrailingSlashes(baseUrl);
387
+ if (!trimmed) {
388
+ return `${API_ROOT}${normalizedPath}`;
389
+ }
390
+ if (trimmed.startsWith("/")) {
391
+ if (/\/api\/v1$/i.test(trimmed) || /\/api\/auth\/relay$/i.test(trimmed)) {
392
+ return `${trimmed}${normalizedPath}`;
393
+ }
394
+ return `${trimmed}${normalizedPath}`;
395
+ }
396
+ try {
397
+ const url = new URL(trimmed);
398
+ if (/\/api\/v1$/i.test(url.pathname) || /\/api\/auth\/relay$/i.test(url.pathname)) {
399
+ url.pathname = `${url.pathname.replace(/\/+$/, "")}${normalizedPath}`;
400
+ return url.toString();
401
+ }
402
+ if (!url.pathname || url.pathname === "/") {
403
+ url.pathname = `${API_ROOT}${normalizedPath}`;
404
+ return url.toString();
405
+ }
406
+ url.pathname = `${url.pathname.replace(/\/+$/, "")}${normalizedPath}`;
407
+ return url.toString();
408
+ } catch {
409
+ if (/\/api\/v1$/i.test(trimmed) || /\/api\/auth\/relay$/i.test(trimmed)) {
410
+ return `${trimmed}${normalizedPath}`;
411
+ }
412
+ return `${trimmed}${API_ROOT}${normalizedPath}`;
413
+ }
414
+ }
415
+
341
416
  // src/core/PasskeyManager.ts
342
417
  var VERIDEX_RP_ID = "veridex.network";
343
418
  function detectRpId(forceLocal) {
@@ -365,7 +440,7 @@ var PasskeyManager = class _PasskeyManager {
365
440
  timeout: config.timeout ?? 6e4,
366
441
  userVerification: config.userVerification ?? "required",
367
442
  authenticatorAttachment: config.authenticatorAttachment ?? "platform",
368
- relayerUrl: config.relayerUrl ?? ""
443
+ relayerUrl: normalizeRelayerOrigin(config.relayerUrl ?? "")
369
444
  };
370
445
  }
371
446
  static isSupported() {
@@ -636,7 +711,7 @@ var PasskeyManager = class _PasskeyManager {
636
711
  return false;
637
712
  }
638
713
  try {
639
- const response = await fetch(`${this.config.relayerUrl}/api/v1/credential`, {
714
+ const response = await fetch(buildRelayerApiUrl(this.config.relayerUrl, "/credential"), {
640
715
  method: "POST",
641
716
  headers: { "Content-Type": "application/json" },
642
717
  body: JSON.stringify({
@@ -668,7 +743,7 @@ var PasskeyManager = class _PasskeyManager {
668
743
  }
669
744
  try {
670
745
  const response = await fetch(
671
- `${this.config.relayerUrl}/api/v1/credential/by-id/${encodeURIComponent(credentialId)}`
746
+ buildRelayerApiUrl(this.config.relayerUrl, `/credential/by-id/${encodeURIComponent(credentialId)}`)
672
747
  );
673
748
  if (!response.ok) {
674
749
  return null;
@@ -707,7 +782,7 @@ var PasskeyManager = class _PasskeyManager {
707
782
  }
708
783
  try {
709
784
  const response = await fetch(
710
- `${this.config.relayerUrl}/api/v1/credential/${encodeURIComponent(keyHash)}`
785
+ buildRelayerApiUrl(this.config.relayerUrl, `/credential/${encodeURIComponent(keyHash)}`)
711
786
  );
712
787
  if (!response.ok) {
713
788
  return null;
@@ -2168,7 +2243,7 @@ var CHAIN_PRESETS = {
2168
2243
  chainId: 0,
2169
2244
  wormholeChainId: 50001,
2170
2245
  // Custom bridge (non-Wormhole)
2171
- rpcUrl: "https://starknet-sepolia.g.alchemy.com/starknet/version/rpc/v0_7/tsOnfTBZDKMXcUA26OED-",
2246
+ rpcUrl: "https://starknet-sepolia-rpc.publicnode.com",
2172
2247
  explorerUrl: "https://sepolia.starkscan.co",
2173
2248
  isEvm: false,
2174
2249
  contracts: {