@piprail/sdk 1.21.1 → 1.22.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.
- package/CHANGELOG.md +22 -0
- package/README.md +6 -0
- package/dist/{algorand-F3OYB534.js → algorand-677ILBQS.js} +1 -1
- package/dist/{algorand-EJ3S2V7E.cjs → algorand-ZJ53VCTN.cjs} +17 -17
- package/dist/{aptos-SUXOVP7B.js → aptos-3TSKTI4D.js} +1 -1
- package/dist/{aptos-GJGIZHNI.cjs → aptos-XIIHPAOO.cjs} +16 -16
- package/dist/{chunk-ILPABTI2.js → chunk-L6WQRHEZ.js} +4 -0
- package/dist/{chunk-PA6YD3HL.cjs → chunk-U35MG4TF.cjs} +14 -10
- package/dist/index.cjs +102 -89
- package/dist/index.d.cts +16 -3
- package/dist/index.d.ts +16 -3
- package/dist/index.js +24 -11
- package/dist/{near-ZJLZE26R.cjs → near-MG256A3E.cjs} +19 -19
- package/dist/{near-LM7S3WUD.js → near-TWA4PYOD.js} +1 -1
- package/dist/{solana-IBVUZS54.js → solana-KWNRY5NR.js} +1 -1
- package/dist/{solana-WG7RGDSI.cjs → solana-UEMHFQH5.cjs} +28 -28
- package/dist/{stellar-XHLLNHQP.cjs → stellar-SCRRPCEA.cjs} +21 -21
- package/dist/{stellar-FIJPQZVW.js → stellar-YB7JXKK4.js} +1 -1
- package/dist/{sui-B7AVN7NK.js → sui-IODKU2MA.js} +1 -1
- package/dist/{sui-6CVLEXLA.cjs → sui-LFT65OGU.cjs} +17 -17
- package/dist/{ton-CHJ26BVA.js → ton-QN5GTOCS.js} +1 -1
- package/dist/{ton-RNEFN25G.cjs → ton-RAYJFKJC.cjs} +14 -14
- package/dist/{tron-TKJHNFGM.cjs → tron-KX4VWS7V.cjs} +24 -24
- package/dist/{tron-DD3JDROV.js → tron-QSNCDYRB.js} +1 -1
- package/dist/{xrpl-GTUPP6SK.js → xrpl-ECHK3GIX.js} +1 -1
- package/dist/{xrpl-XN2NBNGI.cjs → xrpl-GXUFDXHU.cjs} +21 -21
- package/package.json +1 -1
package/dist/index.cjs
CHANGED
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
|
|
23
23
|
|
|
24
24
|
|
|
25
|
-
|
|
25
|
+
|
|
26
|
+
var _chunkU35MG4TFcjs = require('./chunk-U35MG4TF.cjs');
|
|
26
27
|
|
|
27
28
|
// src/drivers/registry.ts
|
|
28
29
|
var byFamily = /* @__PURE__ */ new Map();
|
|
@@ -51,13 +52,13 @@ function resolveNetwork(opts) {
|
|
|
51
52
|
const family = familyForChain(opts.chain);
|
|
52
53
|
const driver = byFamily.get(family);
|
|
53
54
|
if (!driver) {
|
|
54
|
-
throw new (0,
|
|
55
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedNetworkError)(
|
|
55
56
|
`No driver registered for the "${family}" family \u2014 it may not be mounted yet (use the async resolveNetwork()).`
|
|
56
57
|
);
|
|
57
58
|
}
|
|
58
59
|
const net = driver.resolve(opts);
|
|
59
60
|
if (!net) {
|
|
60
|
-
throw new (0,
|
|
61
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedNetworkError)(
|
|
61
62
|
`The ${family} driver didn't recognise this chain input.`
|
|
62
63
|
);
|
|
63
64
|
}
|
|
@@ -326,12 +327,12 @@ function createWalletAdapter(config, resolved) {
|
|
|
326
327
|
}
|
|
327
328
|
const wc = config.walletClient;
|
|
328
329
|
if (!wc.account) {
|
|
329
|
-
throw new (0,
|
|
330
|
+
throw new (0, _chunkU35MG4TFcjs.WrongFamilyError)(
|
|
330
331
|
"chain is EVM; the provided walletClient has no attached account. Use `createWalletClient({ account, chain, transport })`, or pass { privateKey }."
|
|
331
332
|
);
|
|
332
333
|
}
|
|
333
334
|
if (wc.chain && wc.chain.id !== resolved.chainId) {
|
|
334
|
-
throw new (0,
|
|
335
|
+
throw new (0, _chunkU35MG4TFcjs.WrongChainError)(
|
|
335
336
|
`PipRailClient: walletClient is on chain ${wc.chain.id} but the SDK was configured with chain ${resolved.chainId}. They must match.`
|
|
336
337
|
);
|
|
337
338
|
}
|
|
@@ -662,7 +663,7 @@ async function payExactEvm(input) {
|
|
|
662
663
|
code = void 0;
|
|
663
664
|
}
|
|
664
665
|
if (code && code !== "0x") {
|
|
665
|
-
throw new (0,
|
|
666
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedSchemeError)(
|
|
666
667
|
`exact buyer rail requires an EOA signer; ${account.address} is a contract / EIP-1271 / EIP-7702-delegated account (no recoverable ECDSA signature). Pay via onchain-proof.`
|
|
667
668
|
);
|
|
668
669
|
}
|
|
@@ -672,13 +673,13 @@ async function payExactEvm(input) {
|
|
|
672
673
|
domain = await readExactDomain(publicClient, accept.asset);
|
|
673
674
|
}
|
|
674
675
|
if (!domain) {
|
|
675
|
-
throw new (0,
|
|
676
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedSchemeError)(
|
|
676
677
|
`exact: couldn't derive the EIP-712 domain for ${accept.asset} on ${accept.network}. Either it isn't an EIP-3009 token (USDT needs Permit2; native/plain ERC-20 aren't exact-payable) \u2014 pay via onchain-proof \u2014 OR your RPC couldn't read it (transient): if the gate advertised eip3009, pass a reliable rpcUrl and retry.`
|
|
677
678
|
);
|
|
678
679
|
}
|
|
679
680
|
const g = globalThis.crypto;
|
|
680
681
|
if (!_optionalChain([g, 'optionalAccess', _5 => _5.getRandomValues])) {
|
|
681
|
-
throw new (0,
|
|
682
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedSchemeError)(
|
|
682
683
|
"this runtime lacks Web Crypto (globalThis.crypto.getRandomValues); the exact rail needs a CSPRNG nonce."
|
|
683
684
|
);
|
|
684
685
|
}
|
|
@@ -935,7 +936,7 @@ async function verifyAndSettleExactEvm(input) {
|
|
|
935
936
|
args: writeArgs
|
|
936
937
|
});
|
|
937
938
|
} catch (err) {
|
|
938
|
-
throw new (0,
|
|
939
|
+
throw new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
939
940
|
`exact settle: the merchant relayer failed to broadcast transferWithAuthorization (${shorten(err instanceof Error ? err.message : String(err))}). The payer's authorization is still valid and unused \u2014 fund/fix the relayer and the payer can retry.`,
|
|
940
941
|
{ cause: err }
|
|
941
942
|
);
|
|
@@ -947,7 +948,7 @@ async function verifyAndSettleExactEvm(input) {
|
|
|
947
948
|
return { ok: false, error: "tx_reverted", detail: `Settlement tx ${txHash} reverted on-chain.` };
|
|
948
949
|
}
|
|
949
950
|
} catch (err) {
|
|
950
|
-
throw new (0,
|
|
951
|
+
throw new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
951
952
|
`exact settle: broadcast ${txHash} but couldn't confirm it (${shorten(err instanceof Error ? err.message : String(err))}).`,
|
|
952
953
|
{ cause: err }
|
|
953
954
|
);
|
|
@@ -1080,7 +1081,7 @@ function shorten2(msg) {
|
|
|
1080
1081
|
function randomPermit2Nonce() {
|
|
1081
1082
|
const g = globalThis.crypto;
|
|
1082
1083
|
if (!_optionalChain([g, 'optionalAccess', _8 => _8.getRandomValues])) {
|
|
1083
|
-
throw new (0,
|
|
1084
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedSchemeError)(
|
|
1084
1085
|
"this runtime lacks Web Crypto (globalThis.crypto.getRandomValues); the permit2 rail needs a CSPRNG nonce."
|
|
1085
1086
|
);
|
|
1086
1087
|
}
|
|
@@ -1099,7 +1100,7 @@ async function ensurePermit2Allowance(input) {
|
|
|
1099
1100
|
args: [account.address, PERMIT2_ADDRESS]
|
|
1100
1101
|
});
|
|
1101
1102
|
} catch (err) {
|
|
1102
|
-
throw new (0,
|
|
1103
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedSchemeError)(
|
|
1103
1104
|
`permit2: couldn't read the Permit2 allowance for ${token} (${shorten2(err instanceof Error ? err.message : String(err))}).`
|
|
1104
1105
|
);
|
|
1105
1106
|
}
|
|
@@ -1116,7 +1117,7 @@ async function ensurePermit2Allowance(input) {
|
|
|
1116
1117
|
await publicClient.waitForTransactionReceipt({ hash, confirmations: 1 });
|
|
1117
1118
|
return hash;
|
|
1118
1119
|
} catch (err) {
|
|
1119
|
-
throw _nullishCoalesce(
|
|
1120
|
+
throw _nullishCoalesce(_chunkU35MG4TFcjs.toInsufficientFundsError.call(void 0, err), () => ( new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
1120
1121
|
`permit2: the one-time Permit2 approval for ${token} failed to broadcast (${shorten2(err instanceof Error ? err.message : String(err))}).`,
|
|
1121
1122
|
{ cause: err }
|
|
1122
1123
|
)));
|
|
@@ -1131,7 +1132,7 @@ async function payPermit2Evm(input) {
|
|
|
1131
1132
|
code = void 0;
|
|
1132
1133
|
}
|
|
1133
1134
|
if (code && code !== "0x") {
|
|
1134
|
-
throw new (0,
|
|
1135
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedSchemeError)(
|
|
1135
1136
|
`permit2 buyer rail requires an EOA signer; ${account.address} is a contract / EIP-1271 / EIP-7702-delegated account. Pay via onchain-proof.`
|
|
1136
1137
|
);
|
|
1137
1138
|
}
|
|
@@ -1306,7 +1307,7 @@ async function verifyAndSettlePermit2Evm(input) {
|
|
|
1306
1307
|
args: settleArgs
|
|
1307
1308
|
});
|
|
1308
1309
|
} catch (err) {
|
|
1309
|
-
throw new (0,
|
|
1310
|
+
throw new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
1310
1311
|
`permit2 settle: the merchant relayer failed to broadcast the proxy settle (${shorten2(err instanceof Error ? err.message : String(err))}). The payer's signature is still valid and its nonce unused \u2014 fund/fix the relayer and the payer can retry.`,
|
|
1311
1312
|
{ cause: err }
|
|
1312
1313
|
);
|
|
@@ -1318,7 +1319,7 @@ async function verifyAndSettlePermit2Evm(input) {
|
|
|
1318
1319
|
return { ok: false, error: "tx_reverted", detail: `Settlement tx ${txHash} reverted on-chain.` };
|
|
1319
1320
|
}
|
|
1320
1321
|
} catch (err) {
|
|
1321
|
-
throw new (0,
|
|
1322
|
+
throw new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
1322
1323
|
`permit2 settle: broadcast ${txHash} but couldn't confirm it (${shorten2(err instanceof Error ? err.message : String(err))}).`,
|
|
1323
1324
|
{ cause: err }
|
|
1324
1325
|
);
|
|
@@ -1551,15 +1552,15 @@ function makeEvmNetwork(resolved) {
|
|
|
1551
1552
|
const info = resolved.tokens[token.toUpperCase()];
|
|
1552
1553
|
if (!info) {
|
|
1553
1554
|
const known = Object.keys(resolved.tokens).join(", ") || "(none built in)";
|
|
1554
|
-
throw new (0,
|
|
1555
|
+
throw new (0, _chunkU35MG4TFcjs.UnknownTokenError)(
|
|
1555
1556
|
`token "${token}" isn't built in for ${resolved.chain.name} (known: ${known}). Pass { address, decimals } instead, or use 'native'.`
|
|
1556
1557
|
);
|
|
1557
1558
|
}
|
|
1558
1559
|
return { asset: info.address, decimals: info.decimals, symbol: info.symbol };
|
|
1559
1560
|
}
|
|
1560
|
-
|
|
1561
|
+
_chunkU35MG4TFcjs.rejectForeignToken.call(void 0, token, "evm", network);
|
|
1561
1562
|
if (!("address" in token)) {
|
|
1562
|
-
throw new (0,
|
|
1563
|
+
throw new (0, _chunkU35MG4TFcjs.WrongFamilyError)(
|
|
1563
1564
|
`chain ${network} is EVM; a custom token must be { address, decimals }.`
|
|
1564
1565
|
);
|
|
1565
1566
|
}
|
|
@@ -1591,14 +1592,14 @@ function makeEvmNetwork(resolved) {
|
|
|
1591
1592
|
},
|
|
1592
1593
|
assertValidPayTo(payTo) {
|
|
1593
1594
|
if (!_viem.isAddress.call(void 0, payTo)) {
|
|
1594
|
-
throw new (0,
|
|
1595
|
+
throw new (0, _chunkU35MG4TFcjs.WrongFamilyError)(
|
|
1595
1596
|
`chain ${network} is EVM, but payTo "${payTo}" is not a valid 0x address.`
|
|
1596
1597
|
);
|
|
1597
1598
|
}
|
|
1598
1599
|
},
|
|
1599
1600
|
bindWallet(wallet) {
|
|
1600
1601
|
if (typeof wallet !== "object" || wallet === null || !("privateKey" in wallet) && !("walletClient" in wallet)) {
|
|
1601
|
-
throw new (0,
|
|
1602
|
+
throw new (0, _chunkU35MG4TFcjs.WrongFamilyError)(
|
|
1602
1603
|
`chain ${network} is EVM; wallet must be { privateKey } or { walletClient }.`
|
|
1603
1604
|
);
|
|
1604
1605
|
}
|
|
@@ -1615,12 +1616,12 @@ function makeEvmNetwork(resolved) {
|
|
|
1615
1616
|
});
|
|
1616
1617
|
} catch (err) {
|
|
1617
1618
|
if (isViemInsufficientFunds(err)) {
|
|
1618
|
-
throw new (0,
|
|
1619
|
+
throw new (0, _chunkU35MG4TFcjs.InsufficientFundsError)(
|
|
1619
1620
|
err instanceof Error ? err.message : "Insufficient funds for payment.",
|
|
1620
1621
|
{ cause: err }
|
|
1621
1622
|
);
|
|
1622
1623
|
}
|
|
1623
|
-
throw _nullishCoalesce(
|
|
1624
|
+
throw _nullishCoalesce(_chunkU35MG4TFcjs.toInsufficientFundsError.call(void 0, err), () => ( err));
|
|
1624
1625
|
}
|
|
1625
1626
|
},
|
|
1626
1627
|
async confirm(ref, minConfirmations) {
|
|
@@ -1631,7 +1632,7 @@ function makeEvmNetwork(resolved) {
|
|
|
1631
1632
|
});
|
|
1632
1633
|
return { height: receipt.blockNumber.toString() };
|
|
1633
1634
|
} catch (err) {
|
|
1634
|
-
throw new (0,
|
|
1635
|
+
throw new (0, _chunkU35MG4TFcjs.ConfirmationTimeoutError)(
|
|
1635
1636
|
`EVM tx ${ref} did not reach ${minConfirmations} confirmation(s) in time.`,
|
|
1636
1637
|
{ cause: err }
|
|
1637
1638
|
);
|
|
@@ -1641,7 +1642,7 @@ function makeEvmNetwork(resolved) {
|
|
|
1641
1642
|
const { decimals, symbol } = resolved.chain.nativeCurrency;
|
|
1642
1643
|
if (accept.scheme === "exact") {
|
|
1643
1644
|
const permit2 = accept.extra.assetTransferMethod === "permit2";
|
|
1644
|
-
return
|
|
1645
|
+
return _chunkU35MG4TFcjs.nativeCost.call(void 0, {
|
|
1645
1646
|
symbol,
|
|
1646
1647
|
decimals,
|
|
1647
1648
|
fee: 0n,
|
|
@@ -1652,7 +1653,7 @@ function makeEvmNetwork(resolved) {
|
|
|
1652
1653
|
const gasLimit = accept.asset === "native" ? 21000n : 65000n;
|
|
1653
1654
|
try {
|
|
1654
1655
|
const gasPrice = await publicClient.getGasPrice();
|
|
1655
|
-
return
|
|
1656
|
+
return _chunkU35MG4TFcjs.nativeCost.call(void 0, {
|
|
1656
1657
|
symbol,
|
|
1657
1658
|
decimals,
|
|
1658
1659
|
fee: gasPrice * gasLimit,
|
|
@@ -1661,7 +1662,7 @@ function makeEvmNetwork(resolved) {
|
|
|
1661
1662
|
});
|
|
1662
1663
|
} catch (e20) {
|
|
1663
1664
|
const gasPrice = 5000000000n;
|
|
1664
|
-
return
|
|
1665
|
+
return _chunkU35MG4TFcjs.nativeCost.call(void 0, {
|
|
1665
1666
|
symbol,
|
|
1666
1667
|
decimals,
|
|
1667
1668
|
fee: gasPrice * gasLimit,
|
|
@@ -1795,9 +1796,9 @@ var loaders = {
|
|
|
1795
1796
|
solana: async () => {
|
|
1796
1797
|
let mod;
|
|
1797
1798
|
try {
|
|
1798
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./solana-
|
|
1799
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./solana-UEMHFQH5.cjs")));
|
|
1799
1800
|
} catch (cause) {
|
|
1800
|
-
throw new (0,
|
|
1801
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1801
1802
|
`Solana selected, but its packages aren't installed. Run: npm install @solana/web3.js @solana/spl-token bs58`,
|
|
1802
1803
|
{ cause }
|
|
1803
1804
|
);
|
|
@@ -1807,9 +1808,9 @@ var loaders = {
|
|
|
1807
1808
|
ton: async () => {
|
|
1808
1809
|
let mod;
|
|
1809
1810
|
try {
|
|
1810
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./ton-
|
|
1811
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./ton-RAYJFKJC.cjs")));
|
|
1811
1812
|
} catch (cause) {
|
|
1812
|
-
throw new (0,
|
|
1813
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1813
1814
|
`TON selected, but its packages aren't installed. Run: npm install @ton/ton @ton/core @ton/crypto`,
|
|
1814
1815
|
{ cause }
|
|
1815
1816
|
);
|
|
@@ -1819,9 +1820,9 @@ var loaders = {
|
|
|
1819
1820
|
stellar: async () => {
|
|
1820
1821
|
let mod;
|
|
1821
1822
|
try {
|
|
1822
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./stellar-
|
|
1823
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./stellar-SCRRPCEA.cjs")));
|
|
1823
1824
|
} catch (cause) {
|
|
1824
|
-
throw new (0,
|
|
1825
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1825
1826
|
`Stellar selected, but its package isn't installed. Run: npm install @stellar/stellar-sdk`,
|
|
1826
1827
|
{ cause }
|
|
1827
1828
|
);
|
|
@@ -1831,9 +1832,9 @@ var loaders = {
|
|
|
1831
1832
|
xrpl: async () => {
|
|
1832
1833
|
let mod;
|
|
1833
1834
|
try {
|
|
1834
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./xrpl-
|
|
1835
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./xrpl-GXUFDXHU.cjs")));
|
|
1835
1836
|
} catch (cause) {
|
|
1836
|
-
throw new (0,
|
|
1837
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1837
1838
|
`XRPL selected, but its package isn't installed. Run: npm install xrpl`,
|
|
1838
1839
|
{ cause }
|
|
1839
1840
|
);
|
|
@@ -1843,9 +1844,9 @@ var loaders = {
|
|
|
1843
1844
|
tron: async () => {
|
|
1844
1845
|
let mod;
|
|
1845
1846
|
try {
|
|
1846
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./tron-
|
|
1847
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./tron-KX4VWS7V.cjs")));
|
|
1847
1848
|
} catch (cause) {
|
|
1848
|
-
throw new (0,
|
|
1849
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1849
1850
|
`Tron selected, but its package isn't installed. Run: npm install tronweb`,
|
|
1850
1851
|
{ cause }
|
|
1851
1852
|
);
|
|
@@ -1855,9 +1856,9 @@ var loaders = {
|
|
|
1855
1856
|
sui: async () => {
|
|
1856
1857
|
let mod;
|
|
1857
1858
|
try {
|
|
1858
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./sui-
|
|
1859
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./sui-LFT65OGU.cjs")));
|
|
1859
1860
|
} catch (cause) {
|
|
1860
|
-
throw new (0,
|
|
1861
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1861
1862
|
`Sui selected, but its package isn't installed. Run: npm install @mysten/sui`,
|
|
1862
1863
|
{ cause }
|
|
1863
1864
|
);
|
|
@@ -1867,9 +1868,9 @@ var loaders = {
|
|
|
1867
1868
|
near: async () => {
|
|
1868
1869
|
let mod;
|
|
1869
1870
|
try {
|
|
1870
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./near-
|
|
1871
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./near-MG256A3E.cjs")));
|
|
1871
1872
|
} catch (cause) {
|
|
1872
|
-
throw new (0,
|
|
1873
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1873
1874
|
`NEAR selected, but its package isn't installed. Run: npm install near-api-js`,
|
|
1874
1875
|
{ cause }
|
|
1875
1876
|
);
|
|
@@ -1879,9 +1880,9 @@ var loaders = {
|
|
|
1879
1880
|
aptos: async () => {
|
|
1880
1881
|
let mod;
|
|
1881
1882
|
try {
|
|
1882
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./aptos-
|
|
1883
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./aptos-XIIHPAOO.cjs")));
|
|
1883
1884
|
} catch (cause) {
|
|
1884
|
-
throw new (0,
|
|
1885
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1885
1886
|
`Aptos selected, but its package isn't installed. Run: npm install @aptos-labs/ts-sdk`,
|
|
1886
1887
|
{ cause }
|
|
1887
1888
|
);
|
|
@@ -1891,9 +1892,9 @@ var loaders = {
|
|
|
1891
1892
|
algorand: async () => {
|
|
1892
1893
|
let mod;
|
|
1893
1894
|
try {
|
|
1894
|
-
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./algorand-
|
|
1895
|
+
mod = await Promise.resolve().then(() => _interopRequireWildcard(require("./algorand-ZJ53VCTN.cjs")));
|
|
1895
1896
|
} catch (cause) {
|
|
1896
|
-
throw new (0,
|
|
1897
|
+
throw new (0, _chunkU35MG4TFcjs.MissingDriverError)(
|
|
1897
1898
|
`Algorand selected, but its package isn't installed. Run: npm install algosdk`,
|
|
1898
1899
|
{ cause }
|
|
1899
1900
|
);
|
|
@@ -2440,7 +2441,7 @@ function evaluatePolicy(intent, policy, spentForAssetBase, ctx) {
|
|
|
2440
2441
|
}
|
|
2441
2442
|
}
|
|
2442
2443
|
if (policy.maxAmount !== void 0) {
|
|
2443
|
-
const cap =
|
|
2444
|
+
const cap = _chunkU35MG4TFcjs.floorUnits.call(void 0, policy.maxAmount, intent.decimals);
|
|
2444
2445
|
if (intent.amountBase > cap) {
|
|
2445
2446
|
return deny(
|
|
2446
2447
|
"MAX_AMOUNT",
|
|
@@ -2449,7 +2450,7 @@ function evaluatePolicy(intent, policy, spentForAssetBase, ctx) {
|
|
|
2449
2450
|
}
|
|
2450
2451
|
}
|
|
2451
2452
|
if (policy.maxTotal !== void 0) {
|
|
2452
|
-
const cap =
|
|
2453
|
+
const cap = _chunkU35MG4TFcjs.floorUnits.call(void 0, policy.maxTotal, intent.decimals);
|
|
2453
2454
|
if (spentForAssetBase + intent.amountBase > cap) {
|
|
2454
2455
|
return deny(
|
|
2455
2456
|
"MAX_TOTAL",
|
|
@@ -2458,7 +2459,7 @@ function evaluatePolicy(intent, policy, spentForAssetBase, ctx) {
|
|
|
2458
2459
|
}
|
|
2459
2460
|
}
|
|
2460
2461
|
if (ctx && policy.windowTotal !== void 0 && policy.windowSeconds !== void 0) {
|
|
2461
|
-
const cap =
|
|
2462
|
+
const cap = _chunkU35MG4TFcjs.floorUnits.call(void 0, policy.windowTotal, intent.decimals);
|
|
2462
2463
|
if (ctx.spentInWindowBase + intent.amountBase > cap) {
|
|
2463
2464
|
return deny(
|
|
2464
2465
|
"WINDOW_TOTAL",
|
|
@@ -2547,7 +2548,7 @@ var SpendLedger = (_class = class {constructor() { _class.prototype.__init.call(
|
|
|
2547
2548
|
symbol: b.symbol,
|
|
2548
2549
|
decimals: b.decimals,
|
|
2549
2550
|
totalBase: b.total.toString(),
|
|
2550
|
-
totalFormatted:
|
|
2551
|
+
totalFormatted: _chunkU35MG4TFcjs.formatUnits.call(void 0, b.total, b.decimals),
|
|
2551
2552
|
count: b.count
|
|
2552
2553
|
})),
|
|
2553
2554
|
records: [...this.records]
|
|
@@ -2626,7 +2627,7 @@ var PipRailClient = (_class2 = class {
|
|
|
2626
2627
|
chain: this.opts.chain,
|
|
2627
2628
|
rpcUrl: this.opts.rpcUrl
|
|
2628
2629
|
});
|
|
2629
|
-
const wallet = net.bindWallet(this.opts.wallet);
|
|
2630
|
+
const wallet = this.opts.wallet !== void 0 ? net.bindWallet(this.opts.wallet) : void 0;
|
|
2630
2631
|
return { net, wallet };
|
|
2631
2632
|
})();
|
|
2632
2633
|
}
|
|
@@ -2743,13 +2744,13 @@ var PipRailClient = (_class2 = class {
|
|
|
2743
2744
|
spentBase: b.totalBase.toString()
|
|
2744
2745
|
};
|
|
2745
2746
|
if (maxTotal === void 0) return base2;
|
|
2746
|
-
const capBase =
|
|
2747
|
+
const capBase = _chunkU35MG4TFcjs.floorUnits.call(void 0, maxTotal, b.decimals);
|
|
2747
2748
|
const remainingBase = capBase > b.totalBase ? capBase - b.totalBase : 0n;
|
|
2748
2749
|
return {
|
|
2749
2750
|
...base2,
|
|
2750
2751
|
capBase: capBase.toString(),
|
|
2751
2752
|
remainingBase: remainingBase.toString(),
|
|
2752
|
-
remainingFormatted:
|
|
2753
|
+
remainingFormatted: _chunkU35MG4TFcjs.formatUnits.call(void 0, remainingBase, b.decimals)
|
|
2753
2754
|
};
|
|
2754
2755
|
});
|
|
2755
2756
|
}
|
|
@@ -2789,9 +2790,14 @@ var PipRailClient = (_class2 = class {
|
|
|
2789
2790
|
if (res.status !== 402) return null;
|
|
2790
2791
|
const challenge = await parseChallenge(res);
|
|
2791
2792
|
if (!challenge) {
|
|
2792
|
-
throw new (0,
|
|
2793
|
+
throw new (0, _chunkU35MG4TFcjs.InvalidEnvelopeError)("402 response did not include a parseable x402 challenge.");
|
|
2793
2794
|
}
|
|
2794
2795
|
const { net, wallet } = await this.ensure();
|
|
2796
|
+
if (!wallet) {
|
|
2797
|
+
throw new (0, _chunkU35MG4TFcjs.WalletRequiredError)(
|
|
2798
|
+
"planPayment needs a wallet (it checks YOUR balance, gas, and recipient-readiness). This client is read-only \u2014 construct it with a `wallet` to plan or pay."
|
|
2799
|
+
);
|
|
2800
|
+
}
|
|
2795
2801
|
return this.planFromChallenge(net, wallet, challenge, url, this.resolveSchemes());
|
|
2796
2802
|
}
|
|
2797
2803
|
/**
|
|
@@ -2943,6 +2949,7 @@ var PipRailClient = (_class2 = class {
|
|
|
2943
2949
|
*/
|
|
2944
2950
|
async discoverySigner() {
|
|
2945
2951
|
const { net, wallet } = await this.ensure();
|
|
2952
|
+
if (!wallet) return null;
|
|
2946
2953
|
return net.discoverySigner ? net.discoverySigner(wallet) : null;
|
|
2947
2954
|
}
|
|
2948
2955
|
/**
|
|
@@ -2955,7 +2962,7 @@ var PipRailClient = (_class2 = class {
|
|
|
2955
2962
|
async fetch(url, init) {
|
|
2956
2963
|
const body = _optionalChain([init, 'optionalAccess', _41 => _41.body]);
|
|
2957
2964
|
if (body !== void 0 && body !== null && !isReplayableBodyInit(body)) {
|
|
2958
|
-
throw new (0,
|
|
2965
|
+
throw new (0, _chunkU35MG4TFcjs.NonReplayableBodyError)(
|
|
2959
2966
|
"fetch(): init.body is not replayable. Pass a string, FormData, URLSearchParams, ArrayBuffer, or Blob \u2014 not a ReadableStream."
|
|
2960
2967
|
);
|
|
2961
2968
|
}
|
|
@@ -2964,13 +2971,18 @@ var PipRailClient = (_class2 = class {
|
|
|
2964
2971
|
const schemes = this.resolveSchemes(_optionalChain([init, 'optionalAccess', _42 => _42.schemes]));
|
|
2965
2972
|
const resolved = await this.resolveChallenge(url, firstResponse, schemes);
|
|
2966
2973
|
const { net, wallet, challenge } = resolved;
|
|
2974
|
+
if (!wallet) {
|
|
2975
|
+
throw new (0, _chunkU35MG4TFcjs.WalletRequiredError)(
|
|
2976
|
+
"Paying a 402 needs a wallet to sign + settle. This client is read-only \u2014 construct it with a `wallet` to pay (quote/discover/register still work without one)."
|
|
2977
|
+
);
|
|
2978
|
+
}
|
|
2967
2979
|
let accept = resolved.accept;
|
|
2968
2980
|
let quote = resolved.quote;
|
|
2969
2981
|
const autoRoute = _nullishCoalesce(_nullishCoalesce(_optionalChain([init, 'optionalAccess', _43 => _43.autoRoute]), () => ( this.opts.autoRoute)), () => ( false));
|
|
2970
2982
|
if (autoRoute) {
|
|
2971
2983
|
const plan = await this.planFromChallenge(net, wallet, challenge, url, schemes);
|
|
2972
2984
|
if (!plan.best) {
|
|
2973
|
-
throw new (0,
|
|
2985
|
+
throw new (0, _chunkU35MG4TFcjs.PaymentDeclinedError)(_nullishCoalesce(plan.fundingHint, () => ( "No rail is settleable for this payment.")));
|
|
2974
2986
|
}
|
|
2975
2987
|
accept = plan.best.accept;
|
|
2976
2988
|
quote = plan.best.quote;
|
|
@@ -2994,7 +3006,7 @@ var PipRailClient = (_class2 = class {
|
|
|
2994
3006
|
async resolveChallenge(url, response, schemes) {
|
|
2995
3007
|
const challenge = await parseChallenge(response);
|
|
2996
3008
|
if (!challenge) {
|
|
2997
|
-
throw new (0,
|
|
3009
|
+
throw new (0, _chunkU35MG4TFcjs.InvalidEnvelopeError)(
|
|
2998
3010
|
"402 response did not include a parseable x402 challenge."
|
|
2999
3011
|
);
|
|
3000
3012
|
}
|
|
@@ -3005,7 +3017,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3005
3017
|
(a) => a.scheme === "exact" && net.supports(a.network)
|
|
3006
3018
|
);
|
|
3007
3019
|
if (schemes.includes("exact") && exactOnNet && typeof net.payExact !== "function") {
|
|
3008
|
-
throw new (0,
|
|
3020
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedSchemeError)(
|
|
3009
3021
|
`This 402 offers a standard 'exact' rail on ${net.network}, but the ${net.family} family can't pay 'exact' (supported on EVM + Solana today), and no 'onchain-proof' rail was offered.`
|
|
3010
3022
|
);
|
|
3011
3023
|
}
|
|
@@ -3014,13 +3026,13 @@ var PipRailClient = (_class2 = class {
|
|
|
3014
3026
|
(a) => a.scheme === "exact" && net.supports(a.network) && net.describeAsset(a.asset) != null
|
|
3015
3027
|
);
|
|
3016
3028
|
if (payable) {
|
|
3017
|
-
throw new (0,
|
|
3029
|
+
throw new (0, _chunkU35MG4TFcjs.NoCompatibleAcceptError)(
|
|
3018
3030
|
`This 402 is payable only via the standard 'exact' rail on ${net.network}, which is OFF by default. Enable it: new PipRailClient({ \u2026, schemes: ['onchain-proof', 'exact'] }) or per call fetch(url, { schemes: ['exact'] }) (MCP: PIPRAIL_SCHEMES=onchain-proof,exact).`
|
|
3019
3031
|
);
|
|
3020
3032
|
}
|
|
3021
3033
|
}
|
|
3022
3034
|
const networks = [...new Set(challenge.accepts.map((a) => a.network))].join(", ");
|
|
3023
|
-
throw new (0,
|
|
3035
|
+
throw new (0, _chunkU35MG4TFcjs.NoCompatibleAcceptError)(
|
|
3024
3036
|
`No accepts[] entry payable by this client on ${net.network} (schemes: ${schemes.join(", ")}; challenge offered: ${networks || "none"}).`
|
|
3025
3037
|
);
|
|
3026
3038
|
}
|
|
@@ -3122,21 +3134,21 @@ var PipRailClient = (_class2 = class {
|
|
|
3122
3134
|
if (isExact) {
|
|
3123
3135
|
if (tokenKnown && bal.token < amount) {
|
|
3124
3136
|
blockers.push("INSUFFICIENT_TOKEN");
|
|
3125
|
-
shortfall.token =
|
|
3137
|
+
shortfall.token = _chunkU35MG4TFcjs.formatUnits.call(void 0, amount - bal.token, quote.decimals);
|
|
3126
3138
|
}
|
|
3127
3139
|
} else if (isNative) {
|
|
3128
3140
|
if (nativeKnown && bal.native < amount + fee) {
|
|
3129
3141
|
blockers.push("INSUFFICIENT_TOKEN");
|
|
3130
|
-
shortfall.token =
|
|
3142
|
+
shortfall.token = _chunkU35MG4TFcjs.formatUnits.call(void 0, amount + fee - bal.native, quote.decimals);
|
|
3131
3143
|
}
|
|
3132
3144
|
} else {
|
|
3133
3145
|
if (tokenKnown && bal.token < amount) {
|
|
3134
3146
|
blockers.push("INSUFFICIENT_TOKEN");
|
|
3135
|
-
shortfall.token =
|
|
3147
|
+
shortfall.token = _chunkU35MG4TFcjs.formatUnits.call(void 0, amount - bal.token, quote.decimals);
|
|
3136
3148
|
}
|
|
3137
3149
|
if (nativeKnown && bal.native < fee) {
|
|
3138
3150
|
blockers.push("INSUFFICIENT_GAS");
|
|
3139
|
-
shortfall.native =
|
|
3151
|
+
shortfall.native = _chunkU35MG4TFcjs.formatUnits.call(void 0, fee - bal.native, cost.feeDecimals);
|
|
3140
3152
|
} else if (nativeKnown && fee > 0n && bal.native < fee * 3n / 2n) {
|
|
3141
3153
|
warnings.push("THIN_GAS_MARGIN");
|
|
3142
3154
|
}
|
|
@@ -3161,8 +3173,8 @@ var PipRailClient = (_class2 = class {
|
|
|
3161
3173
|
blockers,
|
|
3162
3174
|
warnings,
|
|
3163
3175
|
balance: {
|
|
3164
|
-
token: bal.token != null ?
|
|
3165
|
-
native: bal.native != null ?
|
|
3176
|
+
token: bal.token != null ? _chunkU35MG4TFcjs.formatUnits.call(void 0, bal.token, quote.decimals) : null,
|
|
3177
|
+
native: bal.native != null ? _chunkU35MG4TFcjs.formatUnits.call(void 0, bal.native, cost.feeDecimals) : null
|
|
3166
3178
|
},
|
|
3167
3179
|
need: { token: quote.amountFormatted, native: cost.feeFormatted },
|
|
3168
3180
|
...shortfall.token || shortfall.native ? { shortfall } : {},
|
|
@@ -3173,7 +3185,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3173
3185
|
* driver's describeAsset) + the policy verdict + a symbol-mismatch flag. */
|
|
3174
3186
|
buildQuote(net, accept, url, description) {
|
|
3175
3187
|
if (!/^\d+$/.test(accept.amount)) {
|
|
3176
|
-
throw new (0,
|
|
3188
|
+
throw new (0, _chunkU35MG4TFcjs.InvalidEnvelopeError)(
|
|
3177
3189
|
`challenge amount "${accept.amount}" is not a base-unit integer.`
|
|
3178
3190
|
);
|
|
3179
3191
|
}
|
|
@@ -3181,12 +3193,12 @@ var PipRailClient = (_class2 = class {
|
|
|
3181
3193
|
const described = net.describeAsset(accept.asset);
|
|
3182
3194
|
const decimals = _nullishCoalesce(_optionalChain([described, 'optionalAccess', _44 => _44.decimals]), () => ( accept.extra.decimals));
|
|
3183
3195
|
if (decimals === void 0) {
|
|
3184
|
-
throw new (0,
|
|
3196
|
+
throw new (0, _chunkU35MG4TFcjs.InvalidEnvelopeError)(
|
|
3185
3197
|
`challenge for ${accept.asset} on ${accept.network} states no decimals and the SDK doesn't recognise the token \u2014 refusing to price it.`
|
|
3186
3198
|
);
|
|
3187
3199
|
}
|
|
3188
3200
|
const symbol = _nullishCoalesce(_optionalChain([described, 'optionalAccess', _45 => _45.symbol]), () => ( accept.extra.symbol));
|
|
3189
|
-
const amountFormatted =
|
|
3201
|
+
const amountFormatted = _chunkU35MG4TFcjs.formatUnits.call(void 0, amountBase, decimals);
|
|
3190
3202
|
const intent = {
|
|
3191
3203
|
host: hostOf2(url),
|
|
3192
3204
|
chain: this.opts.chain,
|
|
@@ -3244,7 +3256,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3244
3256
|
* TERMINAL expiry/approval decline it must not retry) without parsing prose. */
|
|
3245
3257
|
async authorize(quote) {
|
|
3246
3258
|
if (!quote.withinPolicy) {
|
|
3247
|
-
throw new (0,
|
|
3259
|
+
throw new (0, _chunkU35MG4TFcjs.PaymentDeclinedError)(
|
|
3248
3260
|
`Payment refused by policy: ${_nullishCoalesce(quote.policyReason, () => ( "not allowed"))}`,
|
|
3249
3261
|
{ reasonCode: reasonCodeForPolicy(quote.policyCode) }
|
|
3250
3262
|
);
|
|
@@ -3255,13 +3267,13 @@ var PipRailClient = (_class2 = class {
|
|
|
3255
3267
|
try {
|
|
3256
3268
|
approved = await hook(quote);
|
|
3257
3269
|
} catch (err) {
|
|
3258
|
-
throw new (0,
|
|
3270
|
+
throw new (0, _chunkU35MG4TFcjs.PaymentDeclinedError)("onBeforePay threw \u2014 refusing to pay.", {
|
|
3259
3271
|
cause: err,
|
|
3260
3272
|
reasonCode: "APPROVAL"
|
|
3261
3273
|
});
|
|
3262
3274
|
}
|
|
3263
3275
|
if (!approved) {
|
|
3264
|
-
throw new (0,
|
|
3276
|
+
throw new (0, _chunkU35MG4TFcjs.PaymentDeclinedError)(
|
|
3265
3277
|
`onBeforePay declined ${quote.amountFormatted} ${_nullishCoalesce(quote.symbol, () => ( ""))}`.trimEnd() + ` on ${quote.network}.`,
|
|
3266
3278
|
{ reasonCode: "APPROVAL" }
|
|
3267
3279
|
);
|
|
@@ -3286,7 +3298,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3286
3298
|
}
|
|
3287
3299
|
async payAndConfirm(net, wallet, accept) {
|
|
3288
3300
|
if (!net.supports(accept.network)) {
|
|
3289
|
-
throw new (0,
|
|
3301
|
+
throw new (0, _chunkU35MG4TFcjs.WrongChainError)(
|
|
3290
3302
|
`Challenge expects ${accept.network} but client is on ${net.network}.`
|
|
3291
3303
|
);
|
|
3292
3304
|
}
|
|
@@ -3339,7 +3351,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3339
3351
|
});
|
|
3340
3352
|
} catch (err) {
|
|
3341
3353
|
if (timeoutController.signal.aborted) {
|
|
3342
|
-
throw new (0,
|
|
3354
|
+
throw new (0, _chunkU35MG4TFcjs.PaymentTimeoutError)(
|
|
3343
3355
|
`Server did not respond within ${this.retryTimeoutMs}ms after broadcasting payment ${ref}. Re-verify or re-submit ref=${ref} \u2014 do NOT re-pay.`,
|
|
3344
3356
|
{ cause: err, ref }
|
|
3345
3357
|
);
|
|
@@ -3361,7 +3373,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3361
3373
|
kind: "payment-failed",
|
|
3362
3374
|
reason: `server returned 402 after broadcasting payment ${ref}${unconfirmedNote} (${why})`
|
|
3363
3375
|
});
|
|
3364
|
-
throw new (0,
|
|
3376
|
+
throw new (0, _chunkU35MG4TFcjs.MaxRetriesExceededError)(
|
|
3365
3377
|
`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).`,
|
|
3366
3378
|
{ ref }
|
|
3367
3379
|
);
|
|
@@ -3385,7 +3397,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3385
3397
|
*/
|
|
3386
3398
|
async payExactRail(net, wallet, accept, url, init, quote) {
|
|
3387
3399
|
if (!net.payExact) {
|
|
3388
|
-
throw new (0,
|
|
3400
|
+
throw new (0, _chunkU35MG4TFcjs.UnsupportedSchemeError)(
|
|
3389
3401
|
`the ${net.family} family can't pay a standard 'exact' rail (supported on EVM + Solana today).`
|
|
3390
3402
|
);
|
|
3391
3403
|
}
|
|
@@ -3395,7 +3407,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3395
3407
|
headers.set(HEADER_SIGNATURE, buildExactSignatureHeader({ accepted, payload }));
|
|
3396
3408
|
const rejectDefinitive = (why2) => {
|
|
3397
3409
|
this.safeEmit({ kind: "payment-failed", reason: `exact: facilitator rejected nonce=${nonce} (${why2})` });
|
|
3398
|
-
throw new (0,
|
|
3410
|
+
throw new (0, _chunkU35MG4TFcjs.MaxRetriesExceededError)(
|
|
3399
3411
|
`exact: the facilitator rejected the payment (${why2}). Fix the cause, then re-present the SAME signed authorization (nonce=${nonce}) \u2014 do NOT re-sign a fresh nonce. ref=${nonce}.`,
|
|
3400
3412
|
{ ref: nonce }
|
|
3401
3413
|
);
|
|
@@ -3418,7 +3430,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3418
3430
|
try {
|
|
3419
3431
|
response = await fetch(url, { ..._nullishCoalesce(init, () => ( {})), headers, signal });
|
|
3420
3432
|
} catch (err) {
|
|
3421
|
-
throw new (0,
|
|
3433
|
+
throw new (0, _chunkU35MG4TFcjs.PaymentTimeoutError)(
|
|
3422
3434
|
`exact: no response after submitting the authorization (nonce=${nonce}) to ${hostOf2(url)}. The facilitator may have already settled it \u2014 verify on-chain with authorizationState(${payerFrom}, ${nonce}) before re-presenting; do NOT re-pay.`,
|
|
3423
3435
|
{ cause: err, ref: nonce }
|
|
3424
3436
|
);
|
|
@@ -3451,7 +3463,7 @@ var PipRailClient = (_class2 = class {
|
|
|
3451
3463
|
kind: "payment-failed",
|
|
3452
3464
|
reason: `exact: 402 after submitting authorization nonce=${nonce} (${why})`
|
|
3453
3465
|
});
|
|
3454
|
-
throw new (0,
|
|
3466
|
+
throw new (0, _chunkU35MG4TFcjs.MaxRetriesExceededError)(
|
|
3455
3467
|
`exact: server still returned 402 after submitting the signed authorization (nonce=${nonce}). Last rejection: ${why}. Re-present the SAME authorization \u2014 do NOT re-sign a fresh nonce; verify authorizationState(${payerFrom}, ${nonce}) first. ref=${nonce}.`,
|
|
3456
3468
|
{ ref: nonce }
|
|
3457
3469
|
);
|
|
@@ -3605,7 +3617,7 @@ function summarizePlan(plan) {
|
|
|
3605
3617
|
return `NOT payable: ${_nullishCoalesce(plan.fundingHint, () => ( `no settleable rail on ${plan.network}`))}`;
|
|
3606
3618
|
}
|
|
3607
3619
|
function explainDecline(err) {
|
|
3608
|
-
if (!(err instanceof
|
|
3620
|
+
if (!(err instanceof _chunkU35MG4TFcjs.PipRailError)) {
|
|
3609
3621
|
return `Payment failed: ${err instanceof Error ? err.message : String(err)}`;
|
|
3610
3622
|
}
|
|
3611
3623
|
switch (err.code) {
|
|
@@ -3895,14 +3907,14 @@ function paymentTools(client) {
|
|
|
3895
3907
|
receipt: parseReceipt(res)
|
|
3896
3908
|
};
|
|
3897
3909
|
} catch (err) {
|
|
3898
|
-
if (err instanceof
|
|
3910
|
+
if (err instanceof _chunkU35MG4TFcjs.PipRailError) {
|
|
3899
3911
|
const out = {
|
|
3900
3912
|
ok: false,
|
|
3901
3913
|
code: err.code,
|
|
3902
3914
|
reason: err.message,
|
|
3903
3915
|
explain: explainDecline(err)
|
|
3904
3916
|
};
|
|
3905
|
-
if (err instanceof
|
|
3917
|
+
if (err instanceof _chunkU35MG4TFcjs.PaymentDeclinedError) {
|
|
3906
3918
|
out.declined = true;
|
|
3907
3919
|
if (err.reasonCode) out.reasonCode = err.reasonCode;
|
|
3908
3920
|
}
|
|
@@ -4136,13 +4148,13 @@ async function settleViaFacilitator(input) {
|
|
|
4136
4148
|
try {
|
|
4137
4149
|
verify = await post(`${base2}/verify`, body, auth);
|
|
4138
4150
|
} catch (err) {
|
|
4139
|
-
throw new (0,
|
|
4151
|
+
throw new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
4140
4152
|
`exact settle (facilitator ${base2}): /verify request failed (${err instanceof Error ? err.message : String(err)}).`,
|
|
4141
4153
|
{ cause: err }
|
|
4142
4154
|
);
|
|
4143
4155
|
}
|
|
4144
4156
|
if (verify.status !== 200) {
|
|
4145
|
-
throw new (0,
|
|
4157
|
+
throw new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
4146
4158
|
`exact settle (facilitator ${base2}): /verify returned HTTP ${verify.status} (transport/auth error).`
|
|
4147
4159
|
);
|
|
4148
4160
|
}
|
|
@@ -4158,13 +4170,13 @@ async function settleViaFacilitator(input) {
|
|
|
4158
4170
|
try {
|
|
4159
4171
|
settle = await post(`${base2}/settle`, body, auth);
|
|
4160
4172
|
} catch (err) {
|
|
4161
|
-
throw new (0,
|
|
4173
|
+
throw new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
4162
4174
|
`exact settle (facilitator ${base2}): /settle request failed (${err instanceof Error ? err.message : String(err)}).`,
|
|
4163
4175
|
{ cause: err }
|
|
4164
4176
|
);
|
|
4165
4177
|
}
|
|
4166
4178
|
if (settle.status !== 200) {
|
|
4167
|
-
throw new (0,
|
|
4179
|
+
throw new (0, _chunkU35MG4TFcjs.SettlementError)(
|
|
4168
4180
|
`exact settle (facilitator ${base2}): /settle returned HTTP ${settle.status} (transport/auth error).`
|
|
4169
4181
|
);
|
|
4170
4182
|
}
|
|
@@ -4231,7 +4243,7 @@ function createPaymentGate(options) {
|
|
|
4231
4243
|
}
|
|
4232
4244
|
net.assertValidPayTo(payTo);
|
|
4233
4245
|
const { asset, decimals, symbol } = net.resolveToken(a.token);
|
|
4234
|
-
const amountBase =
|
|
4246
|
+
const amountBase = _chunkU35MG4TFcjs.parseUnits.call(void 0, a.amount, decimals);
|
|
4235
4247
|
const spec = { net, asset, decimals, symbol, amountBase, amountFormatted: a.amount, payTo };
|
|
4236
4248
|
if (options.exact) {
|
|
4237
4249
|
const outcome = await resolveExactRail(net, asset);
|
|
@@ -4404,7 +4416,7 @@ function createPaymentGate(options) {
|
|
|
4404
4416
|
function enrichReceipt(spec, receipt) {
|
|
4405
4417
|
let amountFormatted = receipt.amount;
|
|
4406
4418
|
try {
|
|
4407
|
-
amountFormatted =
|
|
4419
|
+
amountFormatted = _chunkU35MG4TFcjs.formatUnits.call(void 0, BigInt(receipt.amount), spec.decimals);
|
|
4408
4420
|
} catch (e34) {
|
|
4409
4421
|
}
|
|
4410
4422
|
return {
|
|
@@ -4594,7 +4606,7 @@ function requirePayment(options) {
|
|
|
4594
4606
|
try {
|
|
4595
4607
|
result = await gate.verify(_nullishCoalesce(req.headers[HEADER_SIGNATURE], () => ( req.headers[HEADER_SIGNATURE_V1])));
|
|
4596
4608
|
} catch (err) {
|
|
4597
|
-
if (err instanceof
|
|
4609
|
+
if (err instanceof _chunkU35MG4TFcjs.SettlementError) {
|
|
4598
4610
|
res.status(502);
|
|
4599
4611
|
res.json({ x402Version: 2, error: "settlement_failed", detail: err.message });
|
|
4600
4612
|
return;
|
|
@@ -4809,4 +4821,5 @@ async function deliverReceipt(receipt, options) {
|
|
|
4809
4821
|
|
|
4810
4822
|
|
|
4811
4823
|
|
|
4812
|
-
|
|
4824
|
+
|
|
4825
|
+
exports.CHAINS = CHAINS; exports.ConfirmationTimeoutError = _chunkU35MG4TFcjs.ConfirmationTimeoutError; exports.DIRECTORY_INFO = DIRECTORY_INFO; exports.EIP3009_TYPES = EIP3009_TYPES; exports.EXACT_NETWORK_SLUGS = EXACT_NETWORK_SLUGS; exports.GENERATOR = GENERATOR; exports.HEADER_REQUIRED = HEADER_REQUIRED; exports.HEADER_RESPONSE = HEADER_RESPONSE; exports.HEADER_RESPONSE_V1 = HEADER_RESPONSE_V1; exports.HEADER_SIGNATURE = HEADER_SIGNATURE; exports.HEADER_SIGNATURE_V1 = HEADER_SIGNATURE_V1; exports.InsufficientFundsError = _chunkU35MG4TFcjs.InsufficientFundsError; exports.InvalidEnvelopeError = _chunkU35MG4TFcjs.InvalidEnvelopeError; exports.MaxRetriesExceededError = _chunkU35MG4TFcjs.MaxRetriesExceededError; exports.MissingDriverError = _chunkU35MG4TFcjs.MissingDriverError; exports.NoCompatibleAcceptError = _chunkU35MG4TFcjs.NoCompatibleAcceptError; exports.NonReplayableBodyError = _chunkU35MG4TFcjs.NonReplayableBodyError; exports.PERMIT2_ADDRESS = PERMIT2_ADDRESS; exports.PERMIT2_PROXY_CHAIN_IDS = PERMIT2_PROXY_CHAIN_IDS; exports.PERMIT2_WITNESS_TYPES = PERMIT2_WITNESS_TYPES; exports.PIPRAIL_AGENT_GUIDE = PIPRAIL_AGENT_GUIDE; exports.PaymentDeclinedError = _chunkU35MG4TFcjs.PaymentDeclinedError; exports.PaymentTimeoutError = _chunkU35MG4TFcjs.PaymentTimeoutError; exports.PipRailClient = PipRailClient; exports.PipRailError = _chunkU35MG4TFcjs.PipRailError; exports.REGISTER_ATTRIBUTION = REGISTER_ATTRIBUTION; exports.RecipientNotReadyError = _chunkU35MG4TFcjs.RecipientNotReadyError; exports.SettlementError = _chunkU35MG4TFcjs.SettlementError; exports.UnknownTokenError = _chunkU35MG4TFcjs.UnknownTokenError; exports.UnsupportedNetworkError = _chunkU35MG4TFcjs.UnsupportedNetworkError; exports.UnsupportedSchemeError = _chunkU35MG4TFcjs.UnsupportedSchemeError; exports.WalletRequiredError = _chunkU35MG4TFcjs.WalletRequiredError; exports.WrongChainError = _chunkU35MG4TFcjs.WrongChainError; exports.WrongFamilyError = _chunkU35MG4TFcjs.WrongFamilyError; exports.X402_EXACT_PERMIT2_PROXY = X402_EXACT_PERMIT2_PROXY; exports.agentGuide = agentGuide; exports.appendAttribution = appendAttribution; exports.buildBazaarExtension = buildBazaarExtension; exports.buildChallengeHeader = buildChallengeHeader; exports.buildExactAuthorization = buildExactAuthorization; exports.buildExactSignatureHeader = buildExactSignatureHeader; exports.buildOpenApi = buildOpenApi; exports.buildReceiptHeader = buildReceiptHeader; exports.buildSignatureHeader = buildSignatureHeader; exports.buildWellKnownX402 = buildWellKnownX402; exports.buildX402DnsTxt = buildX402DnsTxt; exports.chainIdForExactNetwork = chainIdForExactNetwork; exports.claim402IndexDomain = claim402IndexDomain; exports.classifyChallenge = classifyChallenge; exports.createPaymentGate = createPaymentGate; exports.decorateOutcome = decorateOutcome; exports.deliverReceipt = deliverReceipt; exports.eip3009Abi = eip3009Abi; exports.encodeXPaymentHeader = encodeXPaymentHeader; exports.evaluatePolicy = evaluatePolicy; exports.explainDecline = explainDecline; exports.formatSpendReport = formatSpendReport; exports.getDirectoryInfo = getDirectoryInfo; exports.isPermit2ProxyChain = isPermit2ProxyChain; exports.normalizeNetwork = normalizeNetwork; exports.parseChallenge = parseChallenge; exports.parseExactPaymentHeader = parseExactPaymentHeader; exports.parseExactRequirements = parseExactRequirements; exports.parseReceipt = parseReceipt; exports.parseSettleResponse = parseSettleResponse; exports.parseSignatureHeader = parseSignatureHeader; exports.paymentTools = paymentTools; exports.pickAccept = pickAccept; exports.planAcross = planAcross; exports.readExactDomain = readExactDomain; exports.register402Index = register402Index; exports.registerDriver = registerDriver; exports.registerX402Scan = registerX402Scan; exports.requirePayment = requirePayment; exports.resolveChain = resolveChain; exports.searchOpenIndexes = searchOpenIndexes; exports.settleViaFacilitator = settleViaFacilitator; exports.summarizePlan = summarizePlan; exports.toInsufficientFundsError = _chunkU35MG4TFcjs.toInsufficientFundsError; exports.toInvalidBody = toInvalidBody; exports.verify402IndexDomain = verify402IndexDomain;
|