@relai-fi/x402 0.6.5 → 0.6.6
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/README.md +116 -0
- package/dist/bridge.cjs +109 -0
- package/dist/bridge.cjs.map +1 -0
- package/dist/bridge.d.cts +78 -0
- package/dist/bridge.d.ts +78 -0
- package/dist/bridge.js +80 -0
- package/dist/bridge.js.map +1 -0
- package/dist/client.cjs +131 -1
- package/dist/client.cjs.map +1 -1
- package/dist/client.d.cts +12 -0
- package/dist/client.d.ts +12 -0
- package/dist/client.js +131 -1
- package/dist/client.js.map +1 -1
- package/dist/index.cjs +247 -73
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +247 -73
- package/dist/index.js.map +1 -1
- package/dist/mpp/bridge-client.cjs +23922 -0
- package/dist/mpp/bridge-client.cjs.map +1 -0
- package/dist/mpp/bridge-client.d.cts +58 -0
- package/dist/mpp/bridge-client.d.ts +58 -0
- package/dist/mpp/bridge-client.js +23892 -0
- package/dist/mpp/bridge-client.js.map +1 -0
- package/dist/mpp/bridge-method.cjs +13202 -0
- package/dist/mpp/bridge-method.cjs.map +1 -0
- package/dist/mpp/bridge-method.d.cts +69 -0
- package/dist/mpp/bridge-method.d.ts +69 -0
- package/dist/mpp/bridge-method.js +13181 -0
- package/dist/mpp/bridge-method.js.map +1 -0
- package/dist/mpp/bridge-server.cjs +13887 -0
- package/dist/mpp/bridge-server.cjs.map +1 -0
- package/dist/mpp/bridge-server.d.cts +62 -0
- package/dist/mpp/bridge-server.d.ts +62 -0
- package/dist/mpp/bridge-server.js +13866 -0
- package/dist/mpp/bridge-server.js.map +1 -0
- package/dist/mpp/evm-server.cjs +49 -33
- package/dist/mpp/evm-server.cjs.map +1 -1
- package/dist/mpp/evm-server.js +49 -33
- package/dist/mpp/evm-server.js.map +1 -1
- package/dist/mpp/verify-erc20.cjs +71 -0
- package/dist/mpp/verify-erc20.cjs.map +1 -0
- package/dist/mpp/verify-erc20.d.cts +27 -0
- package/dist/mpp/verify-erc20.d.ts +27 -0
- package/dist/mpp/verify-erc20.js +46 -0
- package/dist/mpp/verify-erc20.js.map +1 -0
- package/dist/mpp/verify-spl.cjs +96 -0
- package/dist/mpp/verify-spl.cjs.map +1 -0
- package/dist/mpp/verify-spl.d.cts +30 -0
- package/dist/mpp/verify-spl.d.ts +30 -0
- package/dist/mpp/verify-spl.js +71 -0
- package/dist/mpp/verify-spl.js.map +1 -0
- package/dist/mpp/with-bridge.cjs +23956 -0
- package/dist/mpp/with-bridge.cjs.map +1 -0
- package/dist/mpp/with-bridge.d.cts +53 -0
- package/dist/mpp/with-bridge.d.ts +53 -0
- package/dist/mpp/with-bridge.js +23926 -0
- package/dist/mpp/with-bridge.js.map +1 -0
- package/dist/react/index.cjs +131 -1
- package/dist/react/index.cjs.map +1 -1
- package/dist/react/index.js +131 -1
- package/dist/react/index.js.map +1 -1
- package/dist/server.cjs +6 -39
- package/dist/server.cjs.map +1 -1
- package/dist/server.js +6 -39
- package/dist/server.js.map +1 -1
- package/package.json +31 -1
package/dist/mpp/evm-server.cjs
CHANGED
|
@@ -13616,8 +13616,50 @@ var charge = Method_exports.from({
|
|
|
13616
13616
|
}
|
|
13617
13617
|
});
|
|
13618
13618
|
|
|
13619
|
-
// src/mpp/
|
|
13619
|
+
// src/mpp/verify-erc20.ts
|
|
13620
13620
|
var TRANSFER_EVENT_TOPIC = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
13621
|
+
async function verifyErc20Transfer(opts) {
|
|
13622
|
+
const { txHash, rpcUrl, tokenAddress, recipient, expectedAmount } = opts;
|
|
13623
|
+
let receipt = null;
|
|
13624
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
13625
|
+
const receiptRes = await fetch(rpcUrl, {
|
|
13626
|
+
method: "POST",
|
|
13627
|
+
headers: { "Content-Type": "application/json" },
|
|
13628
|
+
body: JSON.stringify({
|
|
13629
|
+
jsonrpc: "2.0",
|
|
13630
|
+
id: 1,
|
|
13631
|
+
method: "eth_getTransactionReceipt",
|
|
13632
|
+
params: [txHash]
|
|
13633
|
+
})
|
|
13634
|
+
});
|
|
13635
|
+
const receiptData = await receiptRes.json();
|
|
13636
|
+
if (receiptData.error) {
|
|
13637
|
+
throw new Error(`RPC error: ${receiptData.error.message}`);
|
|
13638
|
+
}
|
|
13639
|
+
receipt = receiptData.result;
|
|
13640
|
+
if (receipt) break;
|
|
13641
|
+
await new Promise((r) => setTimeout(r, (attempt + 1) * 1e3));
|
|
13642
|
+
}
|
|
13643
|
+
if (!receipt) {
|
|
13644
|
+
throw new Error("Transaction not found or not yet confirmed");
|
|
13645
|
+
}
|
|
13646
|
+
if (receipt.status !== "0x1") {
|
|
13647
|
+
throw new Error("Transaction failed on-chain");
|
|
13648
|
+
}
|
|
13649
|
+
const recipientPadded = "0x" + recipient.slice(2).toLowerCase().padStart(64, "0");
|
|
13650
|
+
const tokenLower = tokenAddress.toLowerCase();
|
|
13651
|
+
const matchingLog = receipt.logs.find((log) => {
|
|
13652
|
+
if (log.address.toLowerCase() !== tokenLower) return false;
|
|
13653
|
+
if (log.topics[0] !== TRANSFER_EVENT_TOPIC) return false;
|
|
13654
|
+
if (log.topics[2]?.toLowerCase() !== recipientPadded) return false;
|
|
13655
|
+
return BigInt(log.data) >= expectedAmount;
|
|
13656
|
+
});
|
|
13657
|
+
if (!matchingLog) {
|
|
13658
|
+
throw new Error("No matching ERC-20 Transfer found for recipient and amount");
|
|
13659
|
+
}
|
|
13660
|
+
}
|
|
13661
|
+
|
|
13662
|
+
// src/mpp/evm-server.ts
|
|
13621
13663
|
function evmCharge(config2) {
|
|
13622
13664
|
const {
|
|
13623
13665
|
recipient,
|
|
@@ -13659,39 +13701,13 @@ function evmCharge(config2) {
|
|
|
13659
13701
|
if (!txHash || !txHash.startsWith("0x")) {
|
|
13660
13702
|
throw new Error("Missing or invalid transaction hash in credential payload");
|
|
13661
13703
|
}
|
|
13662
|
-
|
|
13663
|
-
|
|
13664
|
-
|
|
13665
|
-
|
|
13666
|
-
|
|
13667
|
-
|
|
13668
|
-
id: 1,
|
|
13669
|
-
method: "eth_getTransactionReceipt",
|
|
13670
|
-
params: [txHash]
|
|
13671
|
-
})
|
|
13672
|
-
});
|
|
13673
|
-
const receiptData = await receiptRes.json();
|
|
13674
|
-
if (receiptData.error) {
|
|
13675
|
-
throw new Error(`RPC error: ${receiptData.error.message}`);
|
|
13676
|
-
}
|
|
13677
|
-
const receipt = receiptData.result;
|
|
13678
|
-
if (!receipt) {
|
|
13679
|
-
throw new Error("Transaction not found or not yet confirmed");
|
|
13680
|
-
}
|
|
13681
|
-
if (receipt.status !== "0x1") {
|
|
13682
|
-
throw new Error("Transaction failed on-chain");
|
|
13683
|
-
}
|
|
13684
|
-
const recipientPadded = "0x" + recipient.slice(2).toLowerCase().padStart(64, "0");
|
|
13685
|
-
const tokenLower = tokenAddress.toLowerCase();
|
|
13686
|
-
const matchingLog = receipt.logs.find((log) => {
|
|
13687
|
-
if (log.address.toLowerCase() !== tokenLower) return false;
|
|
13688
|
-
if (log.topics[0] !== TRANSFER_EVENT_TOPIC) return false;
|
|
13689
|
-
if (log.topics[2]?.toLowerCase() !== recipientPadded) return false;
|
|
13690
|
-
return BigInt(log.data) >= expectedAmount;
|
|
13704
|
+
await verifyErc20Transfer({
|
|
13705
|
+
txHash,
|
|
13706
|
+
rpcUrl,
|
|
13707
|
+
tokenAddress,
|
|
13708
|
+
recipient,
|
|
13709
|
+
expectedAmount: BigInt(cred.challenge.request.amount)
|
|
13691
13710
|
});
|
|
13692
|
-
if (!matchingLog) {
|
|
13693
|
-
throw new Error("No matching ERC-20 Transfer found for recipient and amount");
|
|
13694
|
-
}
|
|
13695
13711
|
return Receipt_exports.from({
|
|
13696
13712
|
method: "evm",
|
|
13697
13713
|
reference: txHash,
|