@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.js
CHANGED
|
@@ -13596,8 +13596,50 @@ var charge = Method_exports.from({
|
|
|
13596
13596
|
}
|
|
13597
13597
|
});
|
|
13598
13598
|
|
|
13599
|
-
// src/mpp/
|
|
13599
|
+
// src/mpp/verify-erc20.ts
|
|
13600
13600
|
var TRANSFER_EVENT_TOPIC = "0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef";
|
|
13601
|
+
async function verifyErc20Transfer(opts) {
|
|
13602
|
+
const { txHash, rpcUrl, tokenAddress, recipient, expectedAmount } = opts;
|
|
13603
|
+
let receipt = null;
|
|
13604
|
+
for (let attempt = 0; attempt < 5; attempt++) {
|
|
13605
|
+
const receiptRes = await fetch(rpcUrl, {
|
|
13606
|
+
method: "POST",
|
|
13607
|
+
headers: { "Content-Type": "application/json" },
|
|
13608
|
+
body: JSON.stringify({
|
|
13609
|
+
jsonrpc: "2.0",
|
|
13610
|
+
id: 1,
|
|
13611
|
+
method: "eth_getTransactionReceipt",
|
|
13612
|
+
params: [txHash]
|
|
13613
|
+
})
|
|
13614
|
+
});
|
|
13615
|
+
const receiptData = await receiptRes.json();
|
|
13616
|
+
if (receiptData.error) {
|
|
13617
|
+
throw new Error(`RPC error: ${receiptData.error.message}`);
|
|
13618
|
+
}
|
|
13619
|
+
receipt = receiptData.result;
|
|
13620
|
+
if (receipt) break;
|
|
13621
|
+
await new Promise((r) => setTimeout(r, (attempt + 1) * 1e3));
|
|
13622
|
+
}
|
|
13623
|
+
if (!receipt) {
|
|
13624
|
+
throw new Error("Transaction not found or not yet confirmed");
|
|
13625
|
+
}
|
|
13626
|
+
if (receipt.status !== "0x1") {
|
|
13627
|
+
throw new Error("Transaction failed on-chain");
|
|
13628
|
+
}
|
|
13629
|
+
const recipientPadded = "0x" + recipient.slice(2).toLowerCase().padStart(64, "0");
|
|
13630
|
+
const tokenLower = tokenAddress.toLowerCase();
|
|
13631
|
+
const matchingLog = receipt.logs.find((log) => {
|
|
13632
|
+
if (log.address.toLowerCase() !== tokenLower) return false;
|
|
13633
|
+
if (log.topics[0] !== TRANSFER_EVENT_TOPIC) return false;
|
|
13634
|
+
if (log.topics[2]?.toLowerCase() !== recipientPadded) return false;
|
|
13635
|
+
return BigInt(log.data) >= expectedAmount;
|
|
13636
|
+
});
|
|
13637
|
+
if (!matchingLog) {
|
|
13638
|
+
throw new Error("No matching ERC-20 Transfer found for recipient and amount");
|
|
13639
|
+
}
|
|
13640
|
+
}
|
|
13641
|
+
|
|
13642
|
+
// src/mpp/evm-server.ts
|
|
13601
13643
|
function evmCharge(config2) {
|
|
13602
13644
|
const {
|
|
13603
13645
|
recipient,
|
|
@@ -13639,39 +13681,13 @@ function evmCharge(config2) {
|
|
|
13639
13681
|
if (!txHash || !txHash.startsWith("0x")) {
|
|
13640
13682
|
throw new Error("Missing or invalid transaction hash in credential payload");
|
|
13641
13683
|
}
|
|
13642
|
-
|
|
13643
|
-
|
|
13644
|
-
|
|
13645
|
-
|
|
13646
|
-
|
|
13647
|
-
|
|
13648
|
-
id: 1,
|
|
13649
|
-
method: "eth_getTransactionReceipt",
|
|
13650
|
-
params: [txHash]
|
|
13651
|
-
})
|
|
13652
|
-
});
|
|
13653
|
-
const receiptData = await receiptRes.json();
|
|
13654
|
-
if (receiptData.error) {
|
|
13655
|
-
throw new Error(`RPC error: ${receiptData.error.message}`);
|
|
13656
|
-
}
|
|
13657
|
-
const receipt = receiptData.result;
|
|
13658
|
-
if (!receipt) {
|
|
13659
|
-
throw new Error("Transaction not found or not yet confirmed");
|
|
13660
|
-
}
|
|
13661
|
-
if (receipt.status !== "0x1") {
|
|
13662
|
-
throw new Error("Transaction failed on-chain");
|
|
13663
|
-
}
|
|
13664
|
-
const recipientPadded = "0x" + recipient.slice(2).toLowerCase().padStart(64, "0");
|
|
13665
|
-
const tokenLower = tokenAddress.toLowerCase();
|
|
13666
|
-
const matchingLog = receipt.logs.find((log) => {
|
|
13667
|
-
if (log.address.toLowerCase() !== tokenLower) return false;
|
|
13668
|
-
if (log.topics[0] !== TRANSFER_EVENT_TOPIC) return false;
|
|
13669
|
-
if (log.topics[2]?.toLowerCase() !== recipientPadded) return false;
|
|
13670
|
-
return BigInt(log.data) >= expectedAmount;
|
|
13684
|
+
await verifyErc20Transfer({
|
|
13685
|
+
txHash,
|
|
13686
|
+
rpcUrl,
|
|
13687
|
+
tokenAddress,
|
|
13688
|
+
recipient,
|
|
13689
|
+
expectedAmount: BigInt(cred.challenge.request.amount)
|
|
13671
13690
|
});
|
|
13672
|
-
if (!matchingLog) {
|
|
13673
|
-
throw new Error("No matching ERC-20 Transfer found for recipient and amount");
|
|
13674
|
-
}
|
|
13675
13691
|
return Receipt_exports.from({
|
|
13676
13692
|
method: "evm",
|
|
13677
13693
|
reference: txHash,
|