@veridex/sdk 1.1.5 → 1.1.7

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 (102) hide show
  1. package/dist/{EVMClient-Bmy9czkE.d.mts → EVMClient-DqDiFak8.d.mts} +1 -1
  2. package/dist/auth/prepareAuth.d.mts +5 -4
  3. package/dist/auth/prepareAuth.js +143 -1422
  4. package/dist/auth/prepareAuth.js.map +1 -1
  5. package/dist/auth/prepareAuth.mjs +17 -96
  6. package/dist/auth/prepareAuth.mjs.map +1 -1
  7. package/dist/chains/aptos/index.d.mts +1 -1
  8. package/dist/chains/aptos/index.js +11 -33
  9. package/dist/chains/aptos/index.js.map +1 -1
  10. package/dist/chains/aptos/index.mjs +2 -2
  11. package/dist/chains/avalanche/index.d.mts +2 -2
  12. package/dist/chains/avalanche/index.js +19 -115
  13. package/dist/chains/avalanche/index.js.map +1 -1
  14. package/dist/chains/avalanche/index.mjs +3 -3
  15. package/dist/chains/evm/index.d.mts +5 -4
  16. package/dist/chains/evm/index.js +19 -115
  17. package/dist/chains/evm/index.js.map +1 -1
  18. package/dist/chains/evm/index.mjs +2 -2
  19. package/dist/chains/solana/index.d.mts +1 -1
  20. package/dist/chains/solana/index.js +11 -33
  21. package/dist/chains/solana/index.js.map +1 -1
  22. package/dist/chains/solana/index.mjs +2 -2
  23. package/dist/chains/stacks/index.d.mts +1 -1
  24. package/dist/chains/stacks/index.js +11 -38
  25. package/dist/chains/stacks/index.js.map +1 -1
  26. package/dist/chains/stacks/index.mjs +2 -2
  27. package/dist/chains/starknet/index.d.mts +36 -2
  28. package/dist/chains/starknet/index.js +208 -37
  29. package/dist/chains/starknet/index.js.map +1 -1
  30. package/dist/chains/starknet/index.mjs +9 -4
  31. package/dist/chains/stellar/index.d.mts +2 -1
  32. package/dist/chains/sui/index.d.mts +1 -1
  33. package/dist/chains/sui/index.js +11 -27
  34. package/dist/chains/sui/index.js.map +1 -1
  35. package/dist/chains/sui/index.mjs +2 -2
  36. package/dist/{chunk-ZNIVNPGF.mjs → chunk-3PCAVZUZ.mjs} +173 -37
  37. package/dist/chunk-3PCAVZUZ.mjs.map +1 -0
  38. package/dist/{chunk-DQOW3G7M.mjs → chunk-6BINP4RT.mjs} +48 -9
  39. package/dist/{chunk-DQOW3G7M.mjs.map → chunk-6BINP4RT.mjs.map} +1 -1
  40. package/dist/{chunk-7KN6Y4GX.mjs → chunk-AK5HWYX4.mjs} +12 -40
  41. package/dist/chunk-AK5HWYX4.mjs.map +1 -0
  42. package/dist/{chunk-QVTADARB.mjs → chunk-FPSCAGYS.mjs} +12 -35
  43. package/dist/chunk-FPSCAGYS.mjs.map +1 -0
  44. package/dist/{chunk-USVZH4QC.mjs → chunk-H3WRT6Y4.mjs} +20 -117
  45. package/dist/chunk-H3WRT6Y4.mjs.map +1 -0
  46. package/dist/{chunk-GXJUY2SC.mjs → chunk-MNH22BM2.mjs} +12 -35
  47. package/dist/chunk-MNH22BM2.mjs.map +1 -0
  48. package/dist/chunk-N42LPFPJ.mjs +177 -0
  49. package/dist/chunk-N42LPFPJ.mjs.map +1 -0
  50. package/dist/{chunk-D57UJ4L5.mjs → chunk-NKSRF45N.mjs} +12 -29
  51. package/dist/chunk-NKSRF45N.mjs.map +1 -0
  52. package/dist/{chunk-BJH5HJL5.mjs → chunk-SKZLZFE2.mjs} +91 -65
  53. package/dist/chunk-SKZLZFE2.mjs.map +1 -0
  54. package/dist/{chunk-NVRAQPSF.mjs → chunk-UF5NWMSQ.mjs} +20 -4
  55. package/dist/chunk-UF5NWMSQ.mjs.map +1 -0
  56. package/dist/chunk-WC4X3MAO.mjs +58 -0
  57. package/dist/chunk-WC4X3MAO.mjs.map +1 -0
  58. package/dist/{chunk-5FH67KLG.mjs → chunk-XHDOSV2F.mjs} +2 -2
  59. package/dist/{index-CKKUV4J7.d.mts → index-D1nb2JV9.d.mts} +2 -2
  60. package/dist/index-qyOqd8tx.d.mts +517 -0
  61. package/dist/index.d.mts +30 -366
  62. package/dist/index.js +2412 -2486
  63. package/dist/index.js.map +1 -1
  64. package/dist/index.mjs +986 -55
  65. package/dist/index.mjs.map +1 -1
  66. package/dist/passkey-fh8bo2w-.d.mts +241 -0
  67. package/dist/passkey.d.mts +2 -182
  68. package/dist/passkey.js +86 -7
  69. package/dist/passkey.js.map +1 -1
  70. package/dist/passkey.mjs +2 -1
  71. package/dist/payload.d.mts +22 -28
  72. package/dist/payload.js +50 -9
  73. package/dist/payload.js.map +1 -1
  74. package/dist/payload.mjs +7 -3
  75. package/dist/platform/index.d.mts +3 -0
  76. package/dist/platform/index.js +216 -0
  77. package/dist/platform/index.js.map +1 -0
  78. package/dist/platform/index.mjs +21 -0
  79. package/dist/platform/index.mjs.map +1 -0
  80. package/dist/{portfolio-W2FQ2G3O.mjs → portfolio-MLP2JIFK.mjs} +2 -3
  81. package/dist/queries/index.mjs +324 -10
  82. package/dist/queries/index.mjs.map +1 -1
  83. package/dist/{types-DP2CQT8p.d.mts → types-CdlEbixV.d.mts} +12 -1
  84. package/dist/types.d.mts +1 -0
  85. package/dist/types.js.map +1 -1
  86. package/package.json +7 -1
  87. package/dist/chunk-72ZA3OYQ.mjs +0 -20
  88. package/dist/chunk-72ZA3OYQ.mjs.map +0 -1
  89. package/dist/chunk-7KN6Y4GX.mjs.map +0 -1
  90. package/dist/chunk-BJH5HJL5.mjs.map +0 -1
  91. package/dist/chunk-D57UJ4L5.mjs.map +0 -1
  92. package/dist/chunk-GXJUY2SC.mjs.map +0 -1
  93. package/dist/chunk-NVRAQPSF.mjs.map +0 -1
  94. package/dist/chunk-QVTADARB.mjs.map +0 -1
  95. package/dist/chunk-USVZH4QC.mjs.map +0 -1
  96. package/dist/chunk-XDIIFIW6.mjs +0 -330
  97. package/dist/chunk-XDIIFIW6.mjs.map +0 -1
  98. package/dist/chunk-ZNIVNPGF.mjs.map +0 -1
  99. package/dist/chunk-ZXMTPBSP.mjs +0 -857
  100. package/dist/chunk-ZXMTPBSP.mjs.map +0 -1
  101. /package/dist/{chunk-5FH67KLG.mjs.map → chunk-XHDOSV2F.mjs.map} +0 -0
  102. /package/dist/{portfolio-W2FQ2G3O.mjs.map → portfolio-MLP2JIFK.mjs.map} +0 -0
@@ -103,6 +103,7 @@ function padTo32Bytes(address) {
103
103
  }
104
104
  return "0x" + hex.padStart(64, "0");
105
105
  }
106
+ var CHALLENGE_DOMAIN = import_ethers.ethers.sha256(import_ethers.ethers.toUtf8Bytes("veridex.challenge.v1"));
106
107
 
107
108
  // src/chains/evm/EVMClient.ts
108
109
  var PROXY_BYTECODE_PREFIX = "0x3d602d80600a3d3981f3363d3d373d3d3d363d73";
@@ -394,129 +395,32 @@ var EVMClient = class {
394
395
  );
395
396
  }
396
397
  async dispatch(signature, publicKeyX, publicKeyY, targetChain, actionPayload, nonce, signer) {
397
- const hubWithSigner = this.hubContract.connect(signer);
398
- const signatureTuple = {
399
- authenticatorData: signature.authenticatorData,
400
- clientDataJSON: signature.clientDataJSON,
401
- challengeIndex: signature.challengeIndex,
402
- typeIndex: signature.typeIndex,
403
- r: signature.r,
404
- s: signature.s
405
- };
406
- const messageFee = await this.getMessageFee();
407
- const tx = await hubWithSigner.dispatch(
408
- signatureTuple,
409
- publicKeyX,
410
- publicKeyY,
411
- targetChain,
412
- actionPayload,
413
- nonce,
414
- { value: messageFee }
415
- );
416
- const receipt = await tx.wait();
417
- const dispatchEvent = receipt.logs.find((log) => {
418
- try {
419
- const parsed = hubWithSigner.interface.parseLog(log);
420
- return parsed?.name === "ActionDispatched";
421
- } catch {
422
- return false;
423
- }
424
- });
425
- let sequence = 0n;
426
- if (dispatchEvent) {
427
- const parsed = hubWithSigner.interface.parseLog(dispatchEvent);
428
- sequence = BigInt(parsed?.args?.sequence?.toString() ?? "0");
429
- }
430
- const keyHash = import_ethers2.ethers.keccak256(
431
- import_ethers2.ethers.AbiCoder.defaultAbiCoder().encode(
432
- ["uint256", "uint256"],
433
- [publicKeyX, publicKeyY]
434
- )
398
+ void signature;
399
+ void publicKeyX;
400
+ void publicKeyY;
401
+ void targetChain;
402
+ void actionPayload;
403
+ void nonce;
404
+ void signer;
405
+ throw new Error(
406
+ "Direct Hub dispatch requires pinned v3 destination metadata. Use VeridexSDK.transferViaRelayer() or bridgeViaRelayer()."
435
407
  );
436
- return {
437
- transactionHash: receipt.hash,
438
- sequence,
439
- userKeyHash: keyHash,
440
- targetChain,
441
- blockNumber: receipt.blockNumber
442
- };
443
408
  }
444
409
  /**
445
410
  * Dispatch an action to the Hub via relayer (gasless)
446
411
  * The relayer pays for gas and submits the transaction on behalf of the user
447
412
  */
448
413
  async dispatchGasless(signature, publicKeyX, publicKeyY, targetChain, actionPayload, nonce, relayerUrl) {
449
- const keyHash = import_ethers2.ethers.keccak256(
450
- import_ethers2.ethers.AbiCoder.defaultAbiCoder().encode(
451
- ["uint256", "uint256"],
452
- [publicKeyX, publicKeyY]
453
- )
414
+ void signature;
415
+ void publicKeyX;
416
+ void publicKeyY;
417
+ void targetChain;
418
+ void actionPayload;
419
+ void nonce;
420
+ void relayerUrl;
421
+ throw new Error(
422
+ "ChainClient.dispatchGasless() cannot bind v3 destination metadata. Use VeridexSDK.transferViaRelayer() or bridgeViaRelayer()."
454
423
  );
455
- const message = import_ethers2.ethers.keccak256(
456
- import_ethers2.ethers.AbiCoder.defaultAbiCoder().encode(
457
- ["bytes32", "uint16", "bytes", "uint256"],
458
- [keyHash, targetChain, actionPayload, nonce]
459
- )
460
- );
461
- const request = {
462
- messageHash: message,
463
- r: "0x" + signature.r.toString(16).padStart(64, "0"),
464
- s: "0x" + signature.s.toString(16).padStart(64, "0"),
465
- publicKeyX: "0x" + publicKeyX.toString(16).padStart(64, "0"),
466
- publicKeyY: "0x" + publicKeyY.toString(16).padStart(64, "0"),
467
- targetChain,
468
- actionPayload,
469
- nonce: Number(nonce)
470
- };
471
- const MAX_ATTEMPTS = 3;
472
- const baseDelayMs = 1e3;
473
- const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
474
- let response;
475
- let lastError;
476
- for (let attempt = 1; attempt <= MAX_ATTEMPTS; attempt++) {
477
- try {
478
- response = await fetch(`${relayerUrl}/api/v1/submit`, {
479
- method: "POST",
480
- headers: {
481
- "Content-Type": "application/json"
482
- },
483
- body: JSON.stringify(request)
484
- });
485
- const retryable = response.status >= 500 || response.status === 408 || response.status === 429;
486
- if (!retryable) {
487
- break;
488
- }
489
- if (attempt === MAX_ATTEMPTS) break;
490
- const retryAfter = response.headers.get("retry-after");
491
- const explicitDelay = retryAfter ? parseInt(retryAfter, 10) * 1e3 : 0;
492
- const backoff = explicitDelay > 0 ? explicitDelay : baseDelayMs * 2 ** (attempt - 1) + Math.floor(Math.random() * 200);
493
- await sleep(backoff);
494
- } catch (err) {
495
- lastError = err;
496
- if (attempt === MAX_ATTEMPTS) break;
497
- const backoff = baseDelayMs * 2 ** (attempt - 1) + Math.floor(Math.random() * 200);
498
- await sleep(backoff);
499
- }
500
- }
501
- if (!response) {
502
- throw new Error(
503
- `Relayer submission failed after ${MAX_ATTEMPTS} attempts: ${lastError instanceof Error ? lastError.message : String(lastError)}`
504
- );
505
- }
506
- if (!response.ok) {
507
- const error = await response.json().catch(() => ({ error: response.statusText }));
508
- throw new Error(`Relayer submission failed: ${error.error || response.statusText}`);
509
- }
510
- const result = await response.json();
511
- if (!result.success) {
512
- throw new Error(`Relayer submission failed: ${result.error}`);
513
- }
514
- return {
515
- transactionHash: result.txHash,
516
- sequence: BigInt(result.sequence || "0"),
517
- userKeyHash: keyHash,
518
- targetChain
519
- };
520
424
  }
521
425
  async getVaultAddress(userKeyHash) {
522
426
  try {