@payai/x402-evm 2.4.0 → 2.4.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 (33) hide show
  1. package/dist/cjs/exact/client/index.js.map +1 -1
  2. package/dist/cjs/exact/facilitator/index.js +21 -2
  3. package/dist/cjs/exact/facilitator/index.js.map +1 -1
  4. package/dist/cjs/exact/server/index.d.ts +0 -8
  5. package/dist/cjs/exact/server/index.js +14 -19
  6. package/dist/cjs/exact/server/index.js.map +1 -1
  7. package/dist/cjs/exact/v1/client/index.js.map +1 -1
  8. package/dist/cjs/exact/v1/facilitator/index.js.map +1 -1
  9. package/dist/cjs/index.js.map +1 -1
  10. package/dist/cjs/upto/server/index.d.ts +0 -8
  11. package/dist/cjs/upto/server/index.js +12 -19
  12. package/dist/cjs/upto/server/index.js.map +1 -1
  13. package/dist/cjs/v1/index.js.map +1 -1
  14. package/dist/esm/{chunk-RYT6M3PA.mjs → chunk-ERK2ZPOY.mjs} +21 -1
  15. package/dist/esm/{chunk-RYT6M3PA.mjs.map → chunk-ERK2ZPOY.mjs.map} +1 -1
  16. package/dist/esm/{chunk-NSFLAANF.mjs → chunk-F3OOHBAW.mjs} +11 -2
  17. package/dist/esm/{chunk-NSFLAANF.mjs.map → chunk-F3OOHBAW.mjs.map} +1 -1
  18. package/dist/esm/{chunk-D6RXZXOS.mjs → chunk-FQJR4RCF.mjs} +2 -2
  19. package/dist/esm/exact/client/index.mjs +2 -2
  20. package/dist/esm/exact/facilitator/index.mjs +4 -3
  21. package/dist/esm/exact/facilitator/index.mjs.map +1 -1
  22. package/dist/esm/exact/server/index.d.mts +0 -8
  23. package/dist/esm/exact/server/index.mjs +3 -19
  24. package/dist/esm/exact/server/index.mjs.map +1 -1
  25. package/dist/esm/exact/v1/client/index.mjs +1 -1
  26. package/dist/esm/exact/v1/facilitator/index.mjs +1 -1
  27. package/dist/esm/index.mjs +2 -2
  28. package/dist/esm/upto/server/index.d.mts +0 -8
  29. package/dist/esm/upto/server/index.mjs +3 -19
  30. package/dist/esm/upto/server/index.mjs.map +1 -1
  31. package/dist/esm/v1/index.mjs +1 -1
  32. package/package.json +1 -1
  33. /package/dist/esm/{chunk-D6RXZXOS.mjs.map → chunk-FQJR4RCF.mjs.map} +0 -0
@@ -535,6 +535,25 @@ async function diagnoseEip3009SimulationFailure(signer, erc20Address, payload, r
535
535
  }
536
536
  return { isValid: false, invalidReason: ErrEip3009SimulationFailed, payer };
537
537
  }
538
+ function parseEip3009TransferError(error) {
539
+ const msg = error instanceof Error ? error.message : String(error);
540
+ if (/authorization.*(expired|valid before)/i.test(msg) || /AuthorizationExpired/i.test(msg)) {
541
+ return ErrValidBeforeExpired;
542
+ }
543
+ if (/authorization.*not.*valid|AuthorizationNotYetValid/i.test(msg)) {
544
+ return ErrValidAfterInFuture;
545
+ }
546
+ if (/authorization.*used|AuthorizationAlreadyUsed|AuthorizationUsedOrCanceled/i.test(msg)) {
547
+ return ErrEip3009NonceAlreadyUsed;
548
+ }
549
+ if (/transfer.*exceeds.*balance|insufficient.*balance|ERC20InsufficientBalance/i.test(msg)) {
550
+ return ErrEip3009InsufficientBalance;
551
+ }
552
+ if (/invalid.*signature|SignerMismatch|InvalidSignatureV|InvalidSignatureS/i.test(msg)) {
553
+ return ErrInvalidSignature;
554
+ }
555
+ return ErrTransactionFailed;
556
+ }
538
557
  async function executeTransferWithAuthorization(signer, erc20Address, payload) {
539
558
  const { signature } = (0, import_viem3.parseErc6492Signature)(payload.signature);
540
559
  const signatureLength = signature.startsWith("0x") ? signature.length - 2 : signature.length;
@@ -755,10 +774,10 @@ async function settleEIP3009(signer, payload, requirements, eip3009Payload, conf
755
774
  network: payload.accepted.network,
756
775
  payer
757
776
  };
758
- } catch {
777
+ } catch (error) {
759
778
  return {
760
779
  success: false,
761
- errorReason: ErrTransactionFailed,
780
+ errorReason: parseEip3009TransferError(error),
762
781
  transaction: "",
763
782
  network: payload.accepted.network,
764
783
  payer