@veridex/sdk 1.1.0 → 1.1.2

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 (93) hide show
  1. package/dist/{EVMClient-DtqvdfUP.d.mts → EVMClient-Bmy9czkE.d.mts} +2 -0
  2. package/dist/auth/prepareAuth.js +107 -32
  3. package/dist/auth/prepareAuth.js.map +1 -1
  4. package/dist/auth/prepareAuth.mjs +6 -6
  5. package/dist/chains/aptos/index.js.map +1 -1
  6. package/dist/chains/aptos/index.mjs +3 -3
  7. package/dist/chains/avalanche/index.d.mts +1 -1
  8. package/dist/chains/avalanche/index.js +59 -11
  9. package/dist/chains/avalanche/index.js.map +1 -1
  10. package/dist/chains/avalanche/index.mjs +4 -4
  11. package/dist/chains/evm/index.d.mts +3 -3
  12. package/dist/chains/evm/index.js +59 -11
  13. package/dist/chains/evm/index.js.map +1 -1
  14. package/dist/chains/evm/index.mjs +3 -3
  15. package/dist/chains/solana/index.js.map +1 -1
  16. package/dist/chains/solana/index.mjs +3 -3
  17. package/dist/chains/stacks/index.d.mts +1 -1
  18. package/dist/chains/stacks/index.js.map +1 -1
  19. package/dist/chains/stacks/index.mjs +3 -3
  20. package/dist/chains/starknet/index.d.mts +1 -1
  21. package/dist/chains/starknet/index.js.map +1 -1
  22. package/dist/chains/starknet/index.mjs +3 -3
  23. package/dist/chains/stellar/index.d.mts +312 -0
  24. package/dist/chains/stellar/index.js +300 -0
  25. package/dist/chains/stellar/index.js.map +1 -0
  26. package/dist/chains/stellar/index.mjs +260 -0
  27. package/dist/chains/stellar/index.mjs.map +1 -0
  28. package/dist/chains/sui/index.d.mts +1 -1
  29. package/dist/chains/sui/index.js.map +1 -1
  30. package/dist/chains/sui/index.mjs +3 -3
  31. package/dist/{chunk-Q5O3M5LP.mjs → chunk-2TS375ET.mjs} +2 -2
  32. package/dist/{chunk-QT4ZZ4GM.mjs → chunk-5FDOTI5G.mjs} +2 -2
  33. package/dist/{chunk-N4A2RMUN.mjs → chunk-AFHWA4CZ.mjs} +2 -2
  34. package/dist/{chunk-5T6KPH7A.mjs → chunk-CSU4IV2F.mjs} +2 -2
  35. package/dist/{chunk-YCUJZ6Z7.mjs → chunk-CTYDGO6E.mjs} +63 -6
  36. package/dist/chunk-CTYDGO6E.mjs.map +1 -0
  37. package/dist/{chunk-USDA5JTN.mjs → chunk-DZUNCSI5.mjs} +61 -13
  38. package/dist/chunk-DZUNCSI5.mjs.map +1 -0
  39. package/dist/{chunk-SXXGTQIR.mjs → chunk-E3SU36C2.mjs} +2 -2
  40. package/dist/{chunk-NUWSMJFJ.mjs → chunk-EFIXFA6V.mjs} +2 -2
  41. package/dist/{chunk-MLXQHIH2.mjs → chunk-GM5DKEHD.mjs} +2 -2
  42. package/dist/{chunk-GWJRKDSA.mjs → chunk-GOWXQPTW.mjs} +3 -3
  43. package/dist/{chunk-OVMMTL6H.mjs → chunk-ICGB3AHI.mjs} +2 -2
  44. package/dist/{chunk-QDO6NQ7P.mjs → chunk-M3GUNREX.mjs} +20 -3
  45. package/dist/{chunk-QDO6NQ7P.mjs.map → chunk-M3GUNREX.mjs.map} +1 -1
  46. package/dist/{chunk-X7BZMSPQ.mjs → chunk-RD6ZYUVG.mjs} +52 -30
  47. package/dist/chunk-RD6ZYUVG.mjs.map +1 -0
  48. package/dist/{chunk-F3YAGZSW.mjs → chunk-TPEP6XUA.mjs} +2 -2
  49. package/dist/{chunk-M3MM4YMF.mjs → chunk-UPO55SBK.mjs} +2 -2
  50. package/dist/{chunk-PDHZ5X5O.mjs → chunk-YYT3V7CI.mjs} +2 -2
  51. package/dist/constants.d.mts +2 -2
  52. package/dist/constants.js +51 -29
  53. package/dist/constants.js.map +1 -1
  54. package/dist/constants.mjs +1 -1
  55. package/dist/{index-DDalBhAm.d.mts → index-CKKUV4J7.d.mts} +10 -7
  56. package/dist/index.d.mts +43 -14
  57. package/dist/index.js +512 -159
  58. package/dist/index.js.map +1 -1
  59. package/dist/index.mjs +335 -128
  60. package/dist/index.mjs.map +1 -1
  61. package/dist/passkey.js +57 -4
  62. package/dist/passkey.js.map +1 -1
  63. package/dist/passkey.mjs +3 -3
  64. package/dist/payload.js.map +1 -1
  65. package/dist/payload.mjs +2 -2
  66. package/dist/portfolio-JA4OTF7Y.mjs +13 -0
  67. package/dist/queries/index.js +49 -27
  68. package/dist/queries/index.js.map +1 -1
  69. package/dist/queries/index.mjs +5 -5
  70. package/dist/{types-B7V5VNbO.d.mts → types-C564CfsE.d.mts} +33 -4
  71. package/dist/utils.js +49 -27
  72. package/dist/utils.js.map +1 -1
  73. package/dist/utils.mjs +2 -2
  74. package/dist/wormhole.js.map +1 -1
  75. package/dist/wormhole.mjs +2 -2
  76. package/package.json +8 -1
  77. package/dist/chunk-USDA5JTN.mjs.map +0 -1
  78. package/dist/chunk-X7BZMSPQ.mjs.map +0 -1
  79. package/dist/chunk-YCUJZ6Z7.mjs.map +0 -1
  80. package/dist/portfolio-V347KZOL.mjs +0 -13
  81. /package/dist/{chunk-Q5O3M5LP.mjs.map → chunk-2TS375ET.mjs.map} +0 -0
  82. /package/dist/{chunk-QT4ZZ4GM.mjs.map → chunk-5FDOTI5G.mjs.map} +0 -0
  83. /package/dist/{chunk-N4A2RMUN.mjs.map → chunk-AFHWA4CZ.mjs.map} +0 -0
  84. /package/dist/{chunk-5T6KPH7A.mjs.map → chunk-CSU4IV2F.mjs.map} +0 -0
  85. /package/dist/{chunk-SXXGTQIR.mjs.map → chunk-E3SU36C2.mjs.map} +0 -0
  86. /package/dist/{chunk-NUWSMJFJ.mjs.map → chunk-EFIXFA6V.mjs.map} +0 -0
  87. /package/dist/{chunk-MLXQHIH2.mjs.map → chunk-GM5DKEHD.mjs.map} +0 -0
  88. /package/dist/{chunk-GWJRKDSA.mjs.map → chunk-GOWXQPTW.mjs.map} +0 -0
  89. /package/dist/{chunk-OVMMTL6H.mjs.map → chunk-ICGB3AHI.mjs.map} +0 -0
  90. /package/dist/{chunk-F3YAGZSW.mjs.map → chunk-TPEP6XUA.mjs.map} +0 -0
  91. /package/dist/{chunk-M3MM4YMF.mjs.map → chunk-UPO55SBK.mjs.map} +0 -0
  92. /package/dist/{chunk-PDHZ5X5O.mjs.map → chunk-YYT3V7CI.mjs.map} +0 -0
  93. /package/dist/{portfolio-V347KZOL.mjs.map → portfolio-JA4OTF7Y.mjs.map} +0 -0
@@ -1,9 +1,9 @@
1
1
  import {
2
2
  AvalancheClient
3
- } from "../../chunk-N4A2RMUN.mjs";
4
- import "../../chunk-USDA5JTN.mjs";
5
- import "../../chunk-F3YAGZSW.mjs";
6
- import "../../chunk-X7BZMSPQ.mjs";
3
+ } from "../../chunk-AFHWA4CZ.mjs";
4
+ import "../../chunk-DZUNCSI5.mjs";
5
+ import "../../chunk-TPEP6XUA.mjs";
6
+ import "../../chunk-RD6ZYUVG.mjs";
7
7
  export {
8
8
  AvalancheClient
9
9
  };
@@ -1,7 +1,7 @@
1
- export { E as EVMClient, a as EVMClientConfig } from '../../EVMClient-DtqvdfUP.mjs';
2
- export { E as EVMHubClientAdapter } from '../../index-DDalBhAm.mjs';
1
+ export { E as EVMClient, a as EVMClientConfig } from '../../EVMClient-Bmy9czkE.mjs';
2
+ export { E as EVMHubClientAdapter } from '../../index-CKKUV4J7.mjs';
3
3
  import '../../types.mjs';
4
4
  import 'ethers';
5
5
  import '../../types-DP2CQT8p.mjs';
6
- import '../../types-B7V5VNbO.mjs';
6
+ import '../../types-C564CfsE.mjs';
7
7
  import '../../passkey.mjs';
@@ -117,7 +117,9 @@ var ERC20_ABI = [
117
117
  var HUB_ABI = [
118
118
  "function dispatch(tuple(bytes authenticatorData, string clientDataJSON, uint256 challengeIndex, uint256 typeIndex, uint256 r, uint256 s) signature, uint256 publicKeyX, uint256 publicKeyY, uint16 targetChain, bytes actionPayload, uint256 nonce) payable returns (uint64 sequence)",
119
119
  "function userNonces(bytes32 userKeyHash) view returns (uint256)",
120
- "function getMessageFee() view returns (uint256)",
120
+ // Hub exposes the Wormhole core bridge address; message fee is read from the
121
+ // bridge directly (getMessageFee() was removed from the Hub).
122
+ "function wormhole() view returns (address)",
121
123
  "function getVaultAddress(bytes32 userKeyHash) view returns (address)",
122
124
  "function vaultExists(bytes32 userKeyHash) view returns (bool)",
123
125
  "function createVault(bytes32 userKeyHash) returns (address)",
@@ -174,6 +176,8 @@ var EVMClient = class {
174
176
  hubContract;
175
177
  factoryContract = null;
176
178
  cachedImplementation = null;
179
+ cachedWormholeAddress = null;
180
+ cachedMessageFee = null;
177
181
  constructor(config) {
178
182
  this.config = {
179
183
  name: config.name ?? `EVM Chain ${config.chainId}`,
@@ -346,8 +350,24 @@ var EVMClient = class {
346
350
  return Number(count);
347
351
  }
348
352
  async getMessageFee() {
349
- const fee = await this.hubContract.getMessageFee();
350
- return BigInt(fee.toString());
353
+ const now = Date.now();
354
+ if (this.cachedMessageFee && this.cachedMessageFee.expiresAt > now) {
355
+ return this.cachedMessageFee.value;
356
+ }
357
+ let wormholeAddress = this.config.contracts.wormholeCoreBridge ?? this.cachedWormholeAddress;
358
+ if (!wormholeAddress) {
359
+ wormholeAddress = await this.hubContract.wormhole();
360
+ this.cachedWormholeAddress = wormholeAddress;
361
+ }
362
+ const wormhole = new import_ethers2.ethers.Contract(
363
+ wormholeAddress,
364
+ ["function messageFee() view returns (uint256)"],
365
+ this.provider
366
+ );
367
+ const fee = await wormhole.messageFee();
368
+ const value = BigInt(fee.toString());
369
+ this.cachedMessageFee = { value, expiresAt: now + 3e4 };
370
+ return value;
351
371
  }
352
372
  async buildTransferPayload(params) {
353
373
  return encodeTransferAction(
@@ -446,13 +466,41 @@ var EVMClient = class {
446
466
  actionPayload,
447
467
  nonce: Number(nonce)
448
468
  };
449
- const response = await fetch(`${relayerUrl}/api/v1/submit`, {
450
- method: "POST",
451
- headers: {
452
- "Content-Type": "application/json"
453
- },
454
- body: JSON.stringify(request)
455
- });
469
+ const MAX_ATTEMPTS = 3;
470
+ const baseDelayMs = 1e3;
471
+ const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
472
+ let response;
473
+ let lastError;
474
+ for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
475
+ try {
476
+ response = await fetch(`${relayerUrl}/api/v1/submit`, {
477
+ method: "POST",
478
+ headers: {
479
+ "Content-Type": "application/json"
480
+ },
481
+ body: JSON.stringify(request)
482
+ });
483
+ const retryable = response.status >= 500 || response.status === 408 || response.status === 429;
484
+ if (!retryable) {
485
+ break;
486
+ }
487
+ if (attempt === MAX_ATTEMPTS) break;
488
+ const retryAfter = response.headers.get("retry-after");
489
+ const explicitDelay = retryAfter ? parseInt(retryAfter, 10) * 1e3 : 0;
490
+ const backoff = explicitDelay > 0 ? explicitDelay : baseDelayMs * 2 ** (attempt - 1) + Math.floor(Math.random() * 200);
491
+ await sleep(backoff);
492
+ } catch (err) {
493
+ lastError = err;
494
+ if (attempt === MAX_ATTEMPTS) break;
495
+ const backoff = baseDelayMs * 2 ** (attempt - 1) + Math.floor(Math.random() * 200);
496
+ await sleep(backoff);
497
+ }
498
+ }
499
+ if (!response) {
500
+ throw new Error(
501
+ `Relayer submission failed after ${MAX_ATTEMPTS} attempts: ${lastError instanceof Error ? lastError.message : String(lastError)}`
502
+ );
503
+ }
456
504
  if (!response.ok) {
457
505
  const error = await response.json().catch(() => ({ error: response.statusText }));
458
506
  throw new Error(`Relayer submission failed: ${error.error || response.statusText}`);
@@ -1283,7 +1331,7 @@ var EVMClient = class {
1283
1331
  async executeTransactionProposal(proposalId, signer) {
1284
1332
  const s = signer;
1285
1333
  const hub = this.hubContract.connect(s);
1286
- const fee = await this.hubContract.getMessageFee();
1334
+ const fee = await this.getMessageFee();
1287
1335
  const tx = await hub.executeTransactionProposal(proposalId, { value: fee });
1288
1336
  const receipt = await tx.wait();
1289
1337
  const sequence = this._extractSequenceFromReceipt(receipt);