@piprail/sdk 1.1.1 → 1.3.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.
package/dist/index.cjs CHANGED
@@ -20,7 +20,7 @@
20
20
 
21
21
 
22
22
 
23
- var _chunkNK64H3RMcjs = require('./chunk-NK64H3RM.cjs');
23
+ var _chunkYJPWIK5Lcjs = require('./chunk-YJPWIK5L.cjs');
24
24
 
25
25
  // src/drivers/registry.ts
26
26
  var byFamily = /* @__PURE__ */ new Map();
@@ -39,6 +39,7 @@ function familyForChain(chain) {
39
39
  if (chain.startsWith("tron")) return "tron";
40
40
  if (chain.startsWith("sui")) return "sui";
41
41
  if (chain.startsWith("near")) return "near";
42
+ if (chain.startsWith("aptos")) return "aptos";
42
43
  return "evm";
43
44
  }
44
45
  return "evm";
@@ -47,13 +48,13 @@ function resolveNetwork(opts) {
47
48
  const family = familyForChain(opts.chain);
48
49
  const driver = byFamily.get(family);
49
50
  if (!driver) {
50
- throw new (0, _chunkNK64H3RMcjs.UnsupportedNetworkError)(
51
+ throw new (0, _chunkYJPWIK5Lcjs.UnsupportedNetworkError)(
51
52
  `No driver registered for the "${family}" family \u2014 it may not be mounted yet (use the async resolveNetwork()).`
52
53
  );
53
54
  }
54
55
  const net = driver.resolve(opts);
55
56
  if (!net) {
56
- throw new (0, _chunkNK64H3RMcjs.UnsupportedNetworkError)(
57
+ throw new (0, _chunkYJPWIK5Lcjs.UnsupportedNetworkError)(
57
58
  `The ${family} driver didn't recognise this chain input.`
58
59
  );
59
60
  }
@@ -82,6 +83,8 @@ var _viem = require('viem');
82
83
 
83
84
 
84
85
 
86
+
87
+
85
88
 
86
89
  var _chains = require('viem/chains');
87
90
  var CHAINS = {
@@ -210,6 +213,28 @@ var CHAINS = {
210
213
  USDC: { address: "0xa00C59fF5a080D2b954d0c75e46E22a0c371235a", decimals: 6, symbol: "USDC" },
211
214
  USDT: { address: "0x88f7F2b685F9692caf8c478f5BADF09eE9B1Cc13", decimals: 6, symbol: "USDT" }
212
215
  }
216
+ },
217
+ // HyperEVM (Hyperliquid, chainId 999) — native Circle USDC, verified on-chain
218
+ // 2026-06-04 (eth_chainId 0x3e7; USDC symbol "USDC", decimals 6). HyperEVM's
219
+ // "USDT" is USDT0 (LayerZero/omnichain), not Circle/Tether-native, so it's
220
+ // intentionally omitted; pass it as a custom { address, decimals } if needed.
221
+ // The highest-activity EVM venue of 2025–26 (perps DEX + on-chain agent vaults).
222
+ hyperevm: {
223
+ chain: _chains.hyperEvm,
224
+ tokens: {
225
+ USDC: { address: "0xb88339CB7199b77E23DB6E890353E22632Ba630f", decimals: 6, symbol: "USDC" }
226
+ }
227
+ },
228
+ // Monad (chainId 143) — native Circle USDC, verified on-chain 2026-06-04
229
+ // (eth_chainId 0x8f; USDC symbol "USDC", decimals 6; CCTP V2). Monad's "USDT"
230
+ // is USDT0 (LayerZero/omnichain), not Circle/Tether-native, so it's
231
+ // intentionally omitted; pass it as a custom { address, decimals } if needed.
232
+ // The biggest new EVM L1 of 2025 (parallel EVM, ~10k TPS).
233
+ monad: {
234
+ chain: _chains.monad,
235
+ tokens: {
236
+ USDC: { address: "0x754704Bc059F8C67012fEd69BC8A327a5aafb603", decimals: 6, symbol: "USDC" }
237
+ }
213
238
  }
214
239
  };
215
240
  function isViemChain(input) {
@@ -273,12 +298,12 @@ function createWalletAdapter(config, resolved) {
273
298
  }
274
299
  const wc = config.walletClient;
275
300
  if (!wc.account) {
276
- throw new (0, _chunkNK64H3RMcjs.WrongFamilyError)(
301
+ throw new (0, _chunkYJPWIK5Lcjs.WrongFamilyError)(
277
302
  "chain is EVM; the provided walletClient has no attached account. Use `createWalletClient({ account, chain, transport })`, or pass { privateKey }."
278
303
  );
279
304
  }
280
305
  if (wc.chain && wc.chain.id !== resolved.chainId) {
281
- throw new (0, _chunkNK64H3RMcjs.WrongChainError)(
306
+ throw new (0, _chunkYJPWIK5Lcjs.WrongChainError)(
282
307
  `PipRailClient: walletClient is on chain ${wc.chain.id} but the SDK was configured with chain ${resolved.chainId}. They must match.`
283
308
  );
284
309
  }
@@ -581,15 +606,15 @@ function makeEvmNetwork(resolved) {
581
606
  const info = resolved.tokens[token.toUpperCase()];
582
607
  if (!info) {
583
608
  const known = Object.keys(resolved.tokens).join(", ") || "(none built in)";
584
- throw new (0, _chunkNK64H3RMcjs.UnknownTokenError)(
609
+ throw new (0, _chunkYJPWIK5Lcjs.UnknownTokenError)(
585
610
  `token "${token}" isn't built in for ${resolved.chain.name} (known: ${known}). Pass { address, decimals } instead, or use 'native'.`
586
611
  );
587
612
  }
588
613
  return { asset: info.address, decimals: info.decimals, symbol: info.symbol };
589
614
  }
590
- _chunkNK64H3RMcjs.rejectForeignToken.call(void 0, token, "evm", network);
615
+ _chunkYJPWIK5Lcjs.rejectForeignToken.call(void 0, token, "evm", network);
591
616
  if (!("address" in token)) {
592
- throw new (0, _chunkNK64H3RMcjs.WrongFamilyError)(
617
+ throw new (0, _chunkYJPWIK5Lcjs.WrongFamilyError)(
593
618
  `chain ${network} is EVM; a custom token must be { address, decimals }.`
594
619
  );
595
620
  }
@@ -621,14 +646,14 @@ function makeEvmNetwork(resolved) {
621
646
  },
622
647
  assertValidPayTo(payTo) {
623
648
  if (!_viem.isAddress.call(void 0, payTo)) {
624
- throw new (0, _chunkNK64H3RMcjs.WrongFamilyError)(
649
+ throw new (0, _chunkYJPWIK5Lcjs.WrongFamilyError)(
625
650
  `chain ${network} is EVM, but payTo "${payTo}" is not a valid 0x address.`
626
651
  );
627
652
  }
628
653
  },
629
654
  bindWallet(wallet) {
630
655
  if (typeof wallet !== "object" || wallet === null || !("privateKey" in wallet) && !("walletClient" in wallet)) {
631
- throw new (0, _chunkNK64H3RMcjs.WrongFamilyError)(
656
+ throw new (0, _chunkYJPWIK5Lcjs.WrongFamilyError)(
632
657
  `chain ${network} is EVM; wallet must be { privateKey } or { walletClient }.`
633
658
  );
634
659
  }
@@ -645,12 +670,12 @@ function makeEvmNetwork(resolved) {
645
670
  });
646
671
  } catch (err) {
647
672
  if (isViemInsufficientFunds(err)) {
648
- throw new (0, _chunkNK64H3RMcjs.InsufficientFundsError)(
673
+ throw new (0, _chunkYJPWIK5Lcjs.InsufficientFundsError)(
649
674
  err instanceof Error ? err.message : "Insufficient funds for payment.",
650
675
  { cause: err }
651
676
  );
652
677
  }
653
- throw _nullishCoalesce(_chunkNK64H3RMcjs.toInsufficientFundsError.call(void 0, err), () => ( err));
678
+ throw _nullishCoalesce(_chunkYJPWIK5Lcjs.toInsufficientFundsError.call(void 0, err), () => ( err));
654
679
  }
655
680
  },
656
681
  async confirm(ref, minConfirmations) {
@@ -661,7 +686,7 @@ function makeEvmNetwork(resolved) {
661
686
  });
662
687
  return { height: receipt.blockNumber.toString() };
663
688
  } catch (err) {
664
- throw new (0, _chunkNK64H3RMcjs.ConfirmationTimeoutError)(
689
+ throw new (0, _chunkYJPWIK5Lcjs.ConfirmationTimeoutError)(
665
690
  `EVM tx ${ref} did not reach ${minConfirmations} confirmation(s) in time.`,
666
691
  { cause: err }
667
692
  );
@@ -672,7 +697,7 @@ function makeEvmNetwork(resolved) {
672
697
  const gasLimit = accept.asset === "native" ? 21000n : 65000n;
673
698
  try {
674
699
  const gasPrice = await publicClient.getGasPrice();
675
- return _chunkNK64H3RMcjs.nativeCost.call(void 0, {
700
+ return _chunkYJPWIK5Lcjs.nativeCost.call(void 0, {
676
701
  symbol,
677
702
  decimals,
678
703
  fee: gasPrice * gasLimit,
@@ -681,7 +706,7 @@ function makeEvmNetwork(resolved) {
681
706
  });
682
707
  } catch (e10) {
683
708
  const gasPrice = 5000000000n;
684
- return _chunkNK64H3RMcjs.nativeCost.call(void 0, {
709
+ return _chunkYJPWIK5Lcjs.nativeCost.call(void 0, {
685
710
  symbol,
686
711
  decimals,
687
712
  fee: gasPrice * gasLimit,
@@ -713,9 +738,9 @@ var loaders = {
713
738
  solana: async () => {
714
739
  let mod;
715
740
  try {
716
- mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./solana-CRLWAM7C.cjs")));
741
+ mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./solana-RJPNEFSN.cjs")));
717
742
  } catch (cause) {
718
- throw new (0, _chunkNK64H3RMcjs.MissingDriverError)(
743
+ throw new (0, _chunkYJPWIK5Lcjs.MissingDriverError)(
719
744
  `Solana selected, but its packages aren't installed. Run: npm install @solana/web3.js @solana/spl-token bs58`,
720
745
  { cause }
721
746
  );
@@ -725,9 +750,9 @@ var loaders = {
725
750
  ton: async () => {
726
751
  let mod;
727
752
  try {
728
- mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./ton-OVSQZ4OM.cjs")));
753
+ mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./ton-C4KTFXDL.cjs")));
729
754
  } catch (cause) {
730
- throw new (0, _chunkNK64H3RMcjs.MissingDriverError)(
755
+ throw new (0, _chunkYJPWIK5Lcjs.MissingDriverError)(
731
756
  `TON selected, but its packages aren't installed. Run: npm install @ton/ton @ton/core @ton/crypto`,
732
757
  { cause }
733
758
  );
@@ -737,9 +762,9 @@ var loaders = {
737
762
  stellar: async () => {
738
763
  let mod;
739
764
  try {
740
- mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./stellar-LIGJKRRK.cjs")));
765
+ mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./stellar-SUGNX52Z.cjs")));
741
766
  } catch (cause) {
742
- throw new (0, _chunkNK64H3RMcjs.MissingDriverError)(
767
+ throw new (0, _chunkYJPWIK5Lcjs.MissingDriverError)(
743
768
  `Stellar selected, but its package isn't installed. Run: npm install @stellar/stellar-sdk`,
744
769
  { cause }
745
770
  );
@@ -749,9 +774,9 @@ var loaders = {
749
774
  xrpl: async () => {
750
775
  let mod;
751
776
  try {
752
- mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./xrpl-QECPQCFS.cjs")));
777
+ mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./xrpl-N6ZAJRGC.cjs")));
753
778
  } catch (cause) {
754
- throw new (0, _chunkNK64H3RMcjs.MissingDriverError)(
779
+ throw new (0, _chunkYJPWIK5Lcjs.MissingDriverError)(
755
780
  `XRPL selected, but its package isn't installed. Run: npm install xrpl`,
756
781
  { cause }
757
782
  );
@@ -761,9 +786,9 @@ var loaders = {
761
786
  tron: async () => {
762
787
  let mod;
763
788
  try {
764
- mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./tron-V3A6L3X3.cjs")));
789
+ mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./tron-DTU7NPEM.cjs")));
765
790
  } catch (cause) {
766
- throw new (0, _chunkNK64H3RMcjs.MissingDriverError)(
791
+ throw new (0, _chunkYJPWIK5Lcjs.MissingDriverError)(
767
792
  `Tron selected, but its package isn't installed. Run: npm install tronweb`,
768
793
  { cause }
769
794
  );
@@ -773,9 +798,9 @@ var loaders = {
773
798
  sui: async () => {
774
799
  let mod;
775
800
  try {
776
- mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./sui-JLVWFDOS.cjs")));
801
+ mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./sui-HZWPHVU4.cjs")));
777
802
  } catch (cause) {
778
- throw new (0, _chunkNK64H3RMcjs.MissingDriverError)(
803
+ throw new (0, _chunkYJPWIK5Lcjs.MissingDriverError)(
779
804
  `Sui selected, but its package isn't installed. Run: npm install @mysten/sui`,
780
805
  { cause }
781
806
  );
@@ -785,14 +810,26 @@ var loaders = {
785
810
  near: async () => {
786
811
  let mod;
787
812
  try {
788
- mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./near-VZ6XGVNJ.cjs")));
813
+ mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./near-DISWUB7Y.cjs")));
789
814
  } catch (cause) {
790
- throw new (0, _chunkNK64H3RMcjs.MissingDriverError)(
815
+ throw new (0, _chunkYJPWIK5Lcjs.MissingDriverError)(
791
816
  `NEAR selected, but its package isn't installed. Run: npm install near-api-js`,
792
817
  { cause }
793
818
  );
794
819
  }
795
820
  registerDriver(mod.nearDriver);
821
+ },
822
+ aptos: async () => {
823
+ let mod;
824
+ try {
825
+ mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./aptos-T3MNKUPB.cjs")));
826
+ } catch (cause) {
827
+ throw new (0, _chunkYJPWIK5Lcjs.MissingDriverError)(
828
+ `Aptos selected, but its package isn't installed. Run: npm install @aptos-labs/ts-sdk`,
829
+ { cause }
830
+ );
831
+ }
832
+ registerDriver(mod.aptosDriver);
796
833
  }
797
834
  };
798
835
  var inFlight = /* @__PURE__ */ new Map();
@@ -859,7 +896,7 @@ function evaluatePolicy(intent, policy, spentForAssetBase) {
859
896
  }
860
897
  }
861
898
  if (policy.maxAmount !== void 0) {
862
- const cap = _chunkNK64H3RMcjs.floorUnits.call(void 0, policy.maxAmount, intent.decimals);
899
+ const cap = _chunkYJPWIK5Lcjs.floorUnits.call(void 0, policy.maxAmount, intent.decimals);
863
900
  if (intent.amountBase > cap) {
864
901
  return deny(
865
902
  `payment of ${intent.amountBase} base units exceeds policy.maxAmount ` + `(${policy.maxAmount} ${_nullishCoalesce(intent.symbol, () => ( ""))}).`.trimEnd()
@@ -867,7 +904,7 @@ function evaluatePolicy(intent, policy, spentForAssetBase) {
867
904
  }
868
905
  }
869
906
  if (policy.maxTotal !== void 0) {
870
- const cap = _chunkNK64H3RMcjs.floorUnits.call(void 0, policy.maxTotal, intent.decimals);
907
+ const cap = _chunkYJPWIK5Lcjs.floorUnits.call(void 0, policy.maxTotal, intent.decimals);
871
908
  if (spentForAssetBase + intent.amountBase > cap) {
872
909
  return deny(
873
910
  `this payment would push spend on ${_nullishCoalesce(intent.symbol, () => ( intent.asset))} past policy.maxTotal (${policy.maxTotal}); already spent ${spentForAssetBase} base units.`
@@ -917,7 +954,7 @@ var SpendLedger = (_class = class {constructor() { _class.prototype.__init.call(
917
954
  symbol: b.symbol,
918
955
  decimals: b.decimals,
919
956
  totalBase: b.total.toString(),
920
- totalFormatted: _chunkNK64H3RMcjs.formatUnits.call(void 0, b.total, b.decimals),
957
+ totalFormatted: _chunkYJPWIK5Lcjs.formatUnits.call(void 0, b.total, b.decimals),
921
958
  count: b.count
922
959
  })),
923
960
  records: [...this.records]
@@ -1044,7 +1081,7 @@ var PipRailClient = (_class2 = class {
1044
1081
  async fetch(url, init) {
1045
1082
  const body = _optionalChain([init, 'optionalAccess', _9 => _9.body]);
1046
1083
  if (body !== void 0 && body !== null && !isReplayableBodyInit(body)) {
1047
- throw new (0, _chunkNK64H3RMcjs.NonReplayableBodyError)(
1084
+ throw new (0, _chunkYJPWIK5Lcjs.NonReplayableBodyError)(
1048
1085
  "fetch(): init.body is not replayable. Pass a string, FormData, URLSearchParams, ArrayBuffer, or Blob \u2014 not a ReadableStream."
1049
1086
  );
1050
1087
  }
@@ -1070,7 +1107,7 @@ var PipRailClient = (_class2 = class {
1070
1107
  async resolveChallenge(url, response) {
1071
1108
  const challenge = await parseChallenge(response);
1072
1109
  if (!challenge) {
1073
- throw new (0, _chunkNK64H3RMcjs.InvalidEnvelopeError)(
1110
+ throw new (0, _chunkYJPWIK5Lcjs.InvalidEnvelopeError)(
1074
1111
  "402 response did not include a parseable x402 challenge."
1075
1112
  );
1076
1113
  }
@@ -1080,7 +1117,7 @@ var PipRailClient = (_class2 = class {
1080
1117
  );
1081
1118
  if (candidates.length === 0) {
1082
1119
  const networks = challenge.accepts.map((a) => a.network).join(", ");
1083
- throw new (0, _chunkNK64H3RMcjs.NoCompatibleAcceptError)(
1120
+ throw new (0, _chunkYJPWIK5Lcjs.NoCompatibleAcceptError)(
1084
1121
  `No accepts[] entry for ${net.network} (challenge offered: ${networks || "none"}).`
1085
1122
  );
1086
1123
  }
@@ -1095,7 +1132,7 @@ var PipRailClient = (_class2 = class {
1095
1132
  * driver's describeAsset) + the policy verdict + a symbol-mismatch flag. */
1096
1133
  buildQuote(net, accept, url, description) {
1097
1134
  if (!/^\d+$/.test(accept.amount)) {
1098
- throw new (0, _chunkNK64H3RMcjs.InvalidEnvelopeError)(
1135
+ throw new (0, _chunkYJPWIK5Lcjs.InvalidEnvelopeError)(
1099
1136
  `challenge amount "${accept.amount}" is not a base-unit integer.`
1100
1137
  );
1101
1138
  }
@@ -1103,7 +1140,7 @@ var PipRailClient = (_class2 = class {
1103
1140
  const described = net.describeAsset(accept.asset);
1104
1141
  const decimals = _nullishCoalesce(_optionalChain([described, 'optionalAccess', _10 => _10.decimals]), () => ( accept.extra.decimals));
1105
1142
  const symbol = _nullishCoalesce(_optionalChain([described, 'optionalAccess', _11 => _11.symbol]), () => ( accept.extra.symbol));
1106
- const amountFormatted = _chunkNK64H3RMcjs.formatUnits.call(void 0, amountBase, decimals);
1143
+ const amountFormatted = _chunkYJPWIK5Lcjs.formatUnits.call(void 0, amountBase, decimals);
1107
1144
  const intent = {
1108
1145
  host: hostOf(url),
1109
1146
  chain: this.opts.chain,
@@ -1143,7 +1180,7 @@ var PipRailClient = (_class2 = class {
1143
1180
  * throwing PaymentDeclinedError, before any funds move. */
1144
1181
  async authorize(quote) {
1145
1182
  if (!quote.withinPolicy) {
1146
- throw new (0, _chunkNK64H3RMcjs.PaymentDeclinedError)(
1183
+ throw new (0, _chunkYJPWIK5Lcjs.PaymentDeclinedError)(
1147
1184
  `Payment refused by policy: ${_nullishCoalesce(quote.policyReason, () => ( "not allowed"))}`
1148
1185
  );
1149
1186
  }
@@ -1153,12 +1190,12 @@ var PipRailClient = (_class2 = class {
1153
1190
  try {
1154
1191
  approved = await hook(quote);
1155
1192
  } catch (err) {
1156
- throw new (0, _chunkNK64H3RMcjs.PaymentDeclinedError)("onBeforePay threw \u2014 refusing to pay.", {
1193
+ throw new (0, _chunkYJPWIK5Lcjs.PaymentDeclinedError)("onBeforePay threw \u2014 refusing to pay.", {
1157
1194
  cause: err
1158
1195
  });
1159
1196
  }
1160
1197
  if (!approved) {
1161
- throw new (0, _chunkNK64H3RMcjs.PaymentDeclinedError)(
1198
+ throw new (0, _chunkYJPWIK5Lcjs.PaymentDeclinedError)(
1162
1199
  `onBeforePay declined ${quote.amountFormatted} ${_nullishCoalesce(quote.symbol, () => ( ""))}`.trimEnd() + ` on ${quote.network}.`
1163
1200
  );
1164
1201
  }
@@ -1182,7 +1219,7 @@ var PipRailClient = (_class2 = class {
1182
1219
  }
1183
1220
  async payAndConfirm(net, wallet, accept) {
1184
1221
  if (!net.supports(accept.network)) {
1185
- throw new (0, _chunkNK64H3RMcjs.WrongChainError)(
1222
+ throw new (0, _chunkYJPWIK5Lcjs.WrongChainError)(
1186
1223
  `Challenge expects ${accept.network} but client is on ${net.network}.`
1187
1224
  );
1188
1225
  }
@@ -1235,7 +1272,7 @@ var PipRailClient = (_class2 = class {
1235
1272
  });
1236
1273
  } catch (err) {
1237
1274
  if (timeoutController.signal.aborted) {
1238
- throw new (0, _chunkNK64H3RMcjs.PaymentTimeoutError)(
1275
+ throw new (0, _chunkYJPWIK5Lcjs.PaymentTimeoutError)(
1239
1276
  `Server did not respond within ${this.retryTimeoutMs}ms after broadcasting payment ${ref}. Re-verify or re-submit ref=${ref} \u2014 do NOT re-pay.`,
1240
1277
  { cause: err, ref }
1241
1278
  );
@@ -1257,7 +1294,7 @@ var PipRailClient = (_class2 = class {
1257
1294
  kind: "payment-failed",
1258
1295
  reason: `server returned 402 after broadcasting payment ${ref}${unconfirmedNote} (${why})`
1259
1296
  });
1260
- throw new (0, _chunkNK64H3RMcjs.MaxRetriesExceededError)(
1297
+ throw new (0, _chunkYJPWIK5Lcjs.MaxRetriesExceededError)(
1261
1298
  `Server still returned 402 after ${attempts} attempt(s) with on-chain proof ref=${ref}${unconfirmedNote}. Last server rejection: ${why}. Re-verify or re-submit ref=${ref} before retrying \u2014 never re-pay (it would double-spend).`,
1262
1299
  { ref }
1263
1300
  );
@@ -1365,7 +1402,7 @@ function paymentTools(client) {
1365
1402
  receipt: parseReceipt(res)
1366
1403
  };
1367
1404
  } catch (err) {
1368
- if (err instanceof _chunkNK64H3RMcjs.PaymentDeclinedError) {
1405
+ if (err instanceof _chunkYJPWIK5Lcjs.PaymentDeclinedError) {
1369
1406
  return { declined: true, reason: err.message };
1370
1407
  }
1371
1408
  throw err;
@@ -1414,7 +1451,7 @@ function createPaymentGate(options) {
1414
1451
  }
1415
1452
  net.assertValidPayTo(payTo);
1416
1453
  const { asset, decimals, symbol } = net.resolveToken(a.token);
1417
- const amountBase = _chunkNK64H3RMcjs.parseUnits.call(void 0, a.amount, decimals);
1454
+ const amountBase = _chunkYJPWIK5Lcjs.parseUnits.call(void 0, a.amount, decimals);
1418
1455
  return { net, asset, decimals, symbol, amountBase, amountFormatted: a.amount, payTo };
1419
1456
  })
1420
1457
  );
@@ -1693,4 +1730,4 @@ function encodeXPaymentHeader(input) {
1693
1730
 
1694
1731
 
1695
1732
 
1696
- exports.CHAINS = CHAINS; exports.ConfirmationTimeoutError = _chunkNK64H3RMcjs.ConfirmationTimeoutError; exports.EIP3009_TYPES = EIP3009_TYPES; exports.EXACT_NETWORK_SLUGS = EXACT_NETWORK_SLUGS; exports.InsufficientFundsError = _chunkNK64H3RMcjs.InsufficientFundsError; exports.InvalidEnvelopeError = _chunkNK64H3RMcjs.InvalidEnvelopeError; exports.MaxRetriesExceededError = _chunkNK64H3RMcjs.MaxRetriesExceededError; exports.MissingDriverError = _chunkNK64H3RMcjs.MissingDriverError; exports.NoCompatibleAcceptError = _chunkNK64H3RMcjs.NoCompatibleAcceptError; exports.NonReplayableBodyError = _chunkNK64H3RMcjs.NonReplayableBodyError; exports.PaymentDeclinedError = _chunkNK64H3RMcjs.PaymentDeclinedError; exports.PaymentTimeoutError = _chunkNK64H3RMcjs.PaymentTimeoutError; exports.PipRailClient = PipRailClient; exports.PipRailError = _chunkNK64H3RMcjs.PipRailError; exports.RecipientNotReadyError = _chunkNK64H3RMcjs.RecipientNotReadyError; exports.UnknownTokenError = _chunkNK64H3RMcjs.UnknownTokenError; exports.UnsupportedNetworkError = _chunkNK64H3RMcjs.UnsupportedNetworkError; exports.WrongChainError = _chunkNK64H3RMcjs.WrongChainError; exports.WrongFamilyError = _chunkNK64H3RMcjs.WrongFamilyError; exports.buildChallengeHeader = buildChallengeHeader; exports.buildExactAuthorization = buildExactAuthorization; exports.buildReceiptHeader = buildReceiptHeader; exports.buildSignatureHeader = buildSignatureHeader; exports.chainIdForExactNetwork = chainIdForExactNetwork; exports.createPaymentGate = createPaymentGate; exports.encodeXPaymentHeader = encodeXPaymentHeader; exports.evaluatePolicy = evaluatePolicy; exports.parseChallenge = parseChallenge; exports.parseExactRequirements = parseExactRequirements; exports.parseReceipt = parseReceipt; exports.parseSignatureHeader = parseSignatureHeader; exports.paymentTools = paymentTools; exports.pickAccept = pickAccept; exports.registerDriver = registerDriver; exports.requirePayment = requirePayment; exports.resolveChain = resolveChain; exports.toInsufficientFundsError = _chunkNK64H3RMcjs.toInsufficientFundsError; exports.toInvalidBody = toInvalidBody;
1733
+ exports.CHAINS = CHAINS; exports.ConfirmationTimeoutError = _chunkYJPWIK5Lcjs.ConfirmationTimeoutError; exports.EIP3009_TYPES = EIP3009_TYPES; exports.EXACT_NETWORK_SLUGS = EXACT_NETWORK_SLUGS; exports.InsufficientFundsError = _chunkYJPWIK5Lcjs.InsufficientFundsError; exports.InvalidEnvelopeError = _chunkYJPWIK5Lcjs.InvalidEnvelopeError; exports.MaxRetriesExceededError = _chunkYJPWIK5Lcjs.MaxRetriesExceededError; exports.MissingDriverError = _chunkYJPWIK5Lcjs.MissingDriverError; exports.NoCompatibleAcceptError = _chunkYJPWIK5Lcjs.NoCompatibleAcceptError; exports.NonReplayableBodyError = _chunkYJPWIK5Lcjs.NonReplayableBodyError; exports.PaymentDeclinedError = _chunkYJPWIK5Lcjs.PaymentDeclinedError; exports.PaymentTimeoutError = _chunkYJPWIK5Lcjs.PaymentTimeoutError; exports.PipRailClient = PipRailClient; exports.PipRailError = _chunkYJPWIK5Lcjs.PipRailError; exports.RecipientNotReadyError = _chunkYJPWIK5Lcjs.RecipientNotReadyError; exports.UnknownTokenError = _chunkYJPWIK5Lcjs.UnknownTokenError; exports.UnsupportedNetworkError = _chunkYJPWIK5Lcjs.UnsupportedNetworkError; exports.WrongChainError = _chunkYJPWIK5Lcjs.WrongChainError; exports.WrongFamilyError = _chunkYJPWIK5Lcjs.WrongFamilyError; exports.buildChallengeHeader = buildChallengeHeader; exports.buildExactAuthorization = buildExactAuthorization; exports.buildReceiptHeader = buildReceiptHeader; exports.buildSignatureHeader = buildSignatureHeader; exports.chainIdForExactNetwork = chainIdForExactNetwork; exports.createPaymentGate = createPaymentGate; exports.encodeXPaymentHeader = encodeXPaymentHeader; exports.evaluatePolicy = evaluatePolicy; exports.parseChallenge = parseChallenge; exports.parseExactRequirements = parseExactRequirements; exports.parseReceipt = parseReceipt; exports.parseSignatureHeader = parseSignatureHeader; exports.paymentTools = paymentTools; exports.pickAccept = pickAccept; exports.registerDriver = registerDriver; exports.requirePayment = requirePayment; exports.resolveChain = resolveChain; exports.toInsufficientFundsError = _chunkYJPWIK5Lcjs.toInsufficientFundsError; exports.toInvalidBody = toInvalidBody;
package/dist/index.d.cts CHANGED
@@ -838,7 +838,7 @@ declare const CHAINS: {
838
838
  gasPrice: bigint;
839
839
  maxFeePerBlobGas?: undefined | undefined;
840
840
  maxFeePerGas?: undefined | undefined;
841
- maxPriorityFeePerGas?: undefined | undefined;
841
+ maxPriorityFeePerGas? /** Native coin metadata. Defaults to 18-decimal ETH. */: undefined | undefined;
842
842
  isSystemTx?: undefined | undefined;
843
843
  mint?: undefined | undefined;
844
844
  sourceHash?: undefined | undefined;
@@ -1580,7 +1580,7 @@ declare const CHAINS: {
1580
1580
  yParity: number;
1581
1581
  accessList: viem.AccessList;
1582
1582
  authorizationList?: undefined | undefined;
1583
- blobVersionedHashes? /** EVM chain id, e.g. 5000 for Mantle. */: undefined | undefined;
1583
+ blobVersionedHashes?: undefined | undefined;
1584
1584
  chainId: number;
1585
1585
  type: "eip1559";
1586
1586
  gasPrice?: undefined | undefined;
@@ -2982,7 +2982,7 @@ declare const CHAINS: {
2982
2982
  } | {
2983
2983
  blockHash: `0x${string}` | null;
2984
2984
  blockNumber: bigint | null;
2985
- blockTimestamp? /** JSON-RPC endpoint. */: bigint | undefined;
2985
+ blockTimestamp?: bigint | undefined;
2986
2986
  from: abitype.Address;
2987
2987
  gas: bigint;
2988
2988
  hash: viem.Hash;
@@ -3340,7 +3340,9 @@ declare const CHAINS: {
3340
3340
  value: bigint;
3341
3341
  yParity: number;
3342
3342
  accessList: viem.AccessList;
3343
- authorizationList?: undefined | undefined;
3343
+ authorizationList
3344
+ /** JSON-RPC endpoint. */
3345
+ ? /** JSON-RPC endpoint. */: undefined | undefined;
3344
3346
  blobVersionedHashes?: undefined | undefined;
3345
3347
  chainId: number;
3346
3348
  type: "eip2930";
@@ -3614,6 +3616,122 @@ declare const CHAINS: {
3614
3616
  };
3615
3617
  };
3616
3618
  };
3619
+ hyperevm: {
3620
+ chain: {
3621
+ blockExplorers: {
3622
+ readonly default: {
3623
+ readonly name: "HyperEVMScan";
3624
+ readonly url: "https://hyperevmscan.io";
3625
+ };
3626
+ };
3627
+ blockTime?: number | undefined | undefined;
3628
+ contracts: {
3629
+ readonly multicall3: {
3630
+ readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
3631
+ readonly blockCreated: 13051;
3632
+ };
3633
+ };
3634
+ ensTlds?: readonly string[] | undefined;
3635
+ id: 999;
3636
+ name: "HyperEVM";
3637
+ nativeCurrency: {
3638
+ readonly name: "HYPE";
3639
+ readonly symbol: "HYPE";
3640
+ readonly decimals: 18;
3641
+ };
3642
+ experimental_preconfirmationTime?: number | undefined | undefined;
3643
+ rpcUrls: {
3644
+ readonly default: {
3645
+ readonly http: readonly ["https://rpc.hyperliquid.xyz/evm"];
3646
+ };
3647
+ };
3648
+ sourceId?: number | undefined | undefined;
3649
+ testnet: false;
3650
+ custom?: Record<string, unknown> | undefined;
3651
+ extendSchema?: Record<string, unknown> | undefined;
3652
+ fees?: viem.ChainFees<undefined> | undefined;
3653
+ formatters?: undefined;
3654
+ prepareTransactionRequest?: ((args: viem.PrepareTransactionRequestParameters, options: {
3655
+ client: viem.Client;
3656
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
3657
+ }) => Promise<viem.PrepareTransactionRequestParameters>) | [fn: ((args: viem.PrepareTransactionRequestParameters, options: {
3658
+ client: viem.Client;
3659
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
3660
+ }) => Promise<viem.PrepareTransactionRequestParameters>) | undefined, options: {
3661
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
3662
+ }] | undefined;
3663
+ serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
3664
+ verifyHash?: ((client: viem.Client, parameters: viem.VerifyHashActionParameters) => Promise<viem.VerifyHashActionReturnType>) | undefined;
3665
+ };
3666
+ tokens: {
3667
+ USDC: {
3668
+ address: "0xb88339CB7199b77E23DB6E890353E22632Ba630f";
3669
+ decimals: number;
3670
+ symbol: string;
3671
+ };
3672
+ };
3673
+ };
3674
+ monad: {
3675
+ chain: {
3676
+ blockExplorers: {
3677
+ readonly default: {
3678
+ readonly name: "MonadVision";
3679
+ readonly url: "https://monadvision.com";
3680
+ };
3681
+ readonly monadscan: {
3682
+ readonly name: "Monadscan";
3683
+ readonly url: "https://monadscan.com";
3684
+ readonly apiUrl: "https://api.monadscan.com/api";
3685
+ };
3686
+ };
3687
+ blockTime: 400;
3688
+ contracts: {
3689
+ readonly multicall3: {
3690
+ readonly address: "0xcA11bde05977b3631167028862bE2a173976CA11";
3691
+ readonly blockCreated: 9248132;
3692
+ };
3693
+ };
3694
+ ensTlds?: readonly string[] | undefined;
3695
+ id: 143;
3696
+ name: "Monad";
3697
+ nativeCurrency: {
3698
+ readonly name: "Monad";
3699
+ readonly symbol: "MON";
3700
+ readonly decimals: 18;
3701
+ };
3702
+ experimental_preconfirmationTime?: number | undefined | undefined;
3703
+ rpcUrls: {
3704
+ readonly default: {
3705
+ readonly http: readonly ["https://rpc.monad.xyz", "https://rpc1.monad.xyz"];
3706
+ readonly webSocket: readonly ["wss://rpc.monad.xyz", "wss://rpc1.monad.xyz"];
3707
+ };
3708
+ };
3709
+ sourceId?: number | undefined | undefined;
3710
+ testnet: false;
3711
+ custom?: Record<string, unknown> | undefined;
3712
+ extendSchema?: Record<string, unknown> | undefined;
3713
+ fees?: viem.ChainFees<undefined> | undefined;
3714
+ formatters?: undefined;
3715
+ prepareTransactionRequest?: ((args: viem.PrepareTransactionRequestParameters, options: {
3716
+ client: viem.Client;
3717
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
3718
+ }) => Promise<viem.PrepareTransactionRequestParameters>) | [fn: ((args: viem.PrepareTransactionRequestParameters, options: {
3719
+ client: viem.Client;
3720
+ phase: "beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters";
3721
+ }) => Promise<viem.PrepareTransactionRequestParameters>) | undefined, options: {
3722
+ runAt: readonly ("beforeFillTransaction" | "beforeFillParameters" | "afterFillParameters")[];
3723
+ }] | undefined;
3724
+ serializers?: viem.ChainSerializers<undefined, viem.TransactionSerializable> | undefined;
3725
+ verifyHash?: ((client: viem.Client, parameters: viem.VerifyHashActionParameters) => Promise<viem.VerifyHashActionReturnType>) | undefined;
3726
+ };
3727
+ tokens: {
3728
+ USDC: {
3729
+ address: "0x754704Bc059F8C67012fEd69BC8A327a5aafb603";
3730
+ decimals: number;
3731
+ symbol: string;
3732
+ };
3733
+ };
3734
+ };
3617
3735
  };
3618
3736
  /** A built-in EVM chain name. */
3619
3737
  type ChainName = keyof typeof CHAINS;
@@ -3659,9 +3777,9 @@ declare function resolveChain(input: ChainInput, rpcUrlOverride?: string): Resol
3659
3777
  */
3660
3778
 
3661
3779
  /** The chain families the SDK knows about. */
3662
- type ChainFamily = 'evm' | 'solana' | 'ton' | 'stellar' | 'xrpl' | 'tron' | 'sui' | 'near';
3780
+ type ChainFamily = 'evm' | 'solana' | 'ton' | 'stellar' | 'xrpl' | 'tron' | 'sui' | 'near' | 'aptos';
3663
3781
  /** What chain to use: an EVM name/Chain/{id,rpcUrl}, or a non-EVM family name. */
3664
- type ChainSelector = ChainInput | 'solana' | 'ton' | 'stellar' | 'xrpl' | 'tron' | 'sui' | 'near';
3782
+ type ChainSelector = ChainInput | 'solana' | 'ton' | 'stellar' | 'xrpl' | 'tron' | 'sui' | 'near' | 'aptos';
3665
3783
  /** An EVM ERC-20 token, by contract address. */
3666
3784
  interface EvmToken {
3667
3785
  address: `0x${string}`;
@@ -3713,6 +3831,12 @@ interface NearToken {
3713
3831
  decimals: number;
3714
3832
  symbol?: string;
3715
3833
  }
3834
+ /** An Aptos Fungible Asset, by its metadata object address. */
3835
+ interface AptosToken {
3836
+ metadata: string;
3837
+ decimals: number;
3838
+ symbol?: string;
3839
+ }
3716
3840
  /**
3717
3841
  * What to be paid in. Each driver validates the forms it accepts:
3718
3842
  * - 'native' the chain's native coin (ETH, BNB, SOL, TON, XLM, XRP)
@@ -3725,8 +3849,9 @@ interface NearToken {
3725
3849
  * - TronToken any TRC-20 (Tron)
3726
3850
  * - SuiToken any coin (Sui)
3727
3851
  * - NearToken any NEP-141 (NEAR)
3852
+ * - AptosToken any Fungible Asset (Aptos)
3728
3853
  */
3729
- type TokenInput = 'native' | (string & {}) | EvmToken | SolanaToken | TonToken | StellarToken | XrplToken | TronToken | SuiToken | NearToken;
3854
+ type TokenInput = 'native' | (string & {}) | EvmToken | SolanaToken | TonToken | StellarToken | XrplToken | TronToken | SuiToken | NearToken | AptosToken;
3730
3855
  /** What a driver resolves a TokenInput into. `asset`: 0x | base58 mint | 'native'. */
3731
3856
  interface ResolvedToken {
3732
3857
  asset: string;