@payai/x402-evm 2.4.1 → 2.4.3
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/cjs/batch-settlement/client/file-storage.d.ts +47 -0
- package/dist/cjs/batch-settlement/client/file-storage.js +116 -0
- package/dist/cjs/batch-settlement/client/file-storage.js.map +1 -0
- package/dist/cjs/batch-settlement/client/index.d.ts +111 -0
- package/dist/cjs/batch-settlement/client/index.js +1565 -0
- package/dist/cjs/batch-settlement/client/index.js.map +1 -0
- package/dist/cjs/batch-settlement/facilitator/index.d.ts +71 -0
- package/dist/cjs/batch-settlement/facilitator/index.js +2032 -0
- package/dist/cjs/batch-settlement/facilitator/index.js.map +1 -0
- package/dist/cjs/batch-settlement/server/file-storage.d.ts +53 -0
- package/dist/cjs/batch-settlement/server/file-storage.js +181 -0
- package/dist/cjs/batch-settlement/server/file-storage.js.map +1 -0
- package/dist/cjs/batch-settlement/server/index.d.ts +491 -0
- package/dist/cjs/batch-settlement/server/index.js +1960 -0
- package/dist/cjs/batch-settlement/server/index.js.map +1 -0
- package/dist/cjs/batch-settlement/server/redis-storage.d.ts +87 -0
- package/dist/cjs/batch-settlement/server/redis-storage.js +181 -0
- package/dist/cjs/batch-settlement/server/redis-storage.js.map +1 -0
- package/dist/cjs/exact/client/index.d.ts +6 -4
- package/dist/cjs/exact/client/index.js +7 -5
- package/dist/cjs/exact/client/index.js.map +1 -1
- package/dist/cjs/exact/facilitator/index.d.ts +16 -9
- package/dist/cjs/exact/facilitator/index.js +35 -7
- package/dist/cjs/exact/facilitator/index.js.map +1 -1
- package/dist/cjs/exact/server/index.js +40 -1
- package/dist/cjs/exact/server/index.js.map +1 -1
- package/dist/cjs/exact/v1/client/index.d.ts +2 -1
- package/dist/cjs/exact/v1/client/index.js.map +1 -1
- package/dist/cjs/exact/v1/facilitator/index.d.ts +11 -5
- package/dist/cjs/exact/v1/facilitator/index.js +16 -2
- package/dist/cjs/exact/v1/facilitator/index.js.map +1 -1
- package/dist/cjs/index.d.ts +113 -7
- package/dist/cjs/index.js +1353 -5
- package/dist/cjs/index.js.map +1 -1
- package/dist/{esm/permit2-CyZxwngN.d.mts → cjs/permit2-DhJRUcgY.d.ts} +1 -13
- package/dist/cjs/rpc-DULZzRne.d.ts +13 -0
- package/dist/cjs/scheme-CvkPJXBD.d.ts +307 -0
- package/dist/{esm/scheme-DCR7hsa3.d.mts → cjs/scheme-DTQFE9xp.d.ts} +2 -2
- package/dist/{esm/signer-D912R4mq.d.mts → cjs/signer-tYS6Y46X.d.ts} +3 -0
- package/dist/cjs/storage-6W5MO46W.d.ts +50 -0
- package/dist/cjs/storage-Bl6aD0Xg.d.ts +81 -0
- package/dist/cjs/types-CF8P2-NM.d.ts +180 -0
- package/dist/cjs/upto/client/index.d.ts +5 -3
- package/dist/cjs/upto/client/index.js +7 -5
- package/dist/cjs/upto/client/index.js.map +1 -1
- package/dist/cjs/upto/facilitator/index.d.ts +2 -1
- package/dist/cjs/upto/facilitator/index.js +2 -1
- package/dist/cjs/upto/facilitator/index.js.map +1 -1
- package/dist/cjs/upto/server/index.js +40 -1
- package/dist/cjs/upto/server/index.js.map +1 -1
- package/dist/cjs/v1/index.d.ts +2 -1
- package/dist/cjs/v1/index.js.map +1 -1
- package/dist/esm/batch-settlement/client/file-storage.d.mts +47 -0
- package/dist/esm/batch-settlement/client/file-storage.mjs +63 -0
- package/dist/esm/batch-settlement/client/file-storage.mjs.map +1 -0
- package/dist/esm/batch-settlement/client/index.d.mts +111 -0
- package/dist/esm/batch-settlement/client/index.mjs +59 -0
- package/dist/esm/batch-settlement/client/index.mjs.map +1 -0
- package/dist/esm/batch-settlement/facilitator/index.d.mts +71 -0
- package/dist/esm/batch-settlement/facilitator/index.mjs +1235 -0
- package/dist/esm/batch-settlement/facilitator/index.mjs.map +1 -0
- package/dist/esm/batch-settlement/server/file-storage.d.mts +53 -0
- package/dist/esm/batch-settlement/server/file-storage.mjs +128 -0
- package/dist/esm/batch-settlement/server/file-storage.mjs.map +1 -0
- package/dist/esm/batch-settlement/server/index.d.mts +491 -0
- package/dist/esm/batch-settlement/server/index.mjs +1645 -0
- package/dist/esm/batch-settlement/server/index.mjs.map +1 -0
- package/dist/esm/batch-settlement/server/redis-storage.d.mts +87 -0
- package/dist/esm/batch-settlement/server/redis-storage.mjs +156 -0
- package/dist/esm/batch-settlement/server/redis-storage.mjs.map +1 -0
- package/dist/esm/chunk-2EUQTNJO.mjs +38 -0
- package/dist/esm/chunk-2EUQTNJO.mjs.map +1 -0
- package/dist/esm/chunk-53USC5VE.mjs +47 -0
- package/dist/esm/chunk-53USC5VE.mjs.map +1 -0
- package/dist/esm/{chunk-GJ57SZGI.mjs → chunk-6WQOGWBE.mjs} +7 -5
- package/dist/esm/{chunk-GJ57SZGI.mjs.map → chunk-6WQOGWBE.mjs.map} +1 -1
- package/dist/esm/{chunk-F3OOHBAW.mjs → chunk-BTYNCDNS.mjs} +42 -2
- package/dist/esm/{chunk-F3OOHBAW.mjs.map → chunk-BTYNCDNS.mjs.map} +1 -1
- package/dist/esm/{chunk-ERK2ZPOY.mjs → chunk-CSQS7ZON.mjs} +27 -7
- package/dist/esm/chunk-CSQS7ZON.mjs.map +1 -0
- package/dist/esm/chunk-GD4MKCN7.mjs +57 -0
- package/dist/esm/chunk-GD4MKCN7.mjs.map +1 -0
- package/dist/esm/chunk-HYABYUBD.mjs +432 -0
- package/dist/esm/chunk-HYABYUBD.mjs.map +1 -0
- package/dist/esm/chunk-IN5YIT5C.mjs +159 -0
- package/dist/esm/chunk-IN5YIT5C.mjs.map +1 -0
- package/dist/esm/{chunk-JII456TS.mjs → chunk-JK7SLLF7.mjs} +1 -1
- package/dist/esm/chunk-JK7SLLF7.mjs.map +1 -0
- package/dist/esm/{chunk-C4ZQMS77.mjs → chunk-MACPBXCT.mjs} +2 -216
- package/dist/esm/chunk-MACPBXCT.mjs.map +1 -0
- package/dist/esm/chunk-NKYVYGRA.mjs +911 -0
- package/dist/esm/chunk-NKYVYGRA.mjs.map +1 -0
- package/dist/esm/{chunk-FQJR4RCF.mjs → chunk-R7I3RZFF.mjs} +10 -6
- package/dist/esm/{chunk-FQJR4RCF.mjs.map → chunk-R7I3RZFF.mjs.map} +1 -1
- package/dist/esm/{chunk-CRT6YNY5.mjs → chunk-RWLVVO3B.mjs} +21 -61
- package/dist/esm/chunk-RWLVVO3B.mjs.map +1 -0
- package/dist/esm/chunk-TGFAVNUD.mjs +111 -0
- package/dist/esm/chunk-TGFAVNUD.mjs.map +1 -0
- package/dist/esm/chunk-TW7Z65AO.mjs +34 -0
- package/dist/esm/chunk-TW7Z65AO.mjs.map +1 -0
- package/dist/esm/chunk-U4HCGTLU.mjs +35 -0
- package/dist/esm/chunk-U4HCGTLU.mjs.map +1 -0
- package/dist/esm/chunk-VS3RYAYE.mjs +80 -0
- package/dist/esm/chunk-VS3RYAYE.mjs.map +1 -0
- package/dist/esm/chunk-W6ON4LG2.mjs +39 -0
- package/dist/esm/chunk-W6ON4LG2.mjs.map +1 -0
- package/dist/esm/{chunk-WKBC5YMI.mjs → chunk-YMQCTKDU.mjs} +23 -55
- package/dist/esm/chunk-YMQCTKDU.mjs.map +1 -0
- package/dist/esm/exact/client/index.d.mts +6 -4
- package/dist/esm/exact/client/index.mjs +10 -5
- package/dist/esm/exact/facilitator/index.d.mts +16 -9
- package/dist/esm/exact/facilitator/index.mjs +36 -14
- package/dist/esm/exact/facilitator/index.mjs.map +1 -1
- package/dist/esm/exact/server/index.mjs +1 -1
- package/dist/esm/exact/v1/client/index.d.mts +2 -1
- package/dist/esm/exact/v1/client/index.mjs +5 -2
- package/dist/esm/exact/v1/facilitator/index.d.mts +11 -5
- package/dist/esm/exact/v1/facilitator/index.mjs +5 -2
- package/dist/esm/index.d.mts +113 -7
- package/dist/esm/index.mjs +53 -7
- package/dist/esm/index.mjs.map +1 -1
- package/dist/esm/permit2-DhJRUcgY.d.mts +729 -0
- package/dist/esm/rpc-DULZzRne.d.mts +13 -0
- package/dist/esm/scheme-DtbSS4Fk.d.mts +307 -0
- package/dist/esm/scheme-gtqAIYPJ.d.mts +47 -0
- package/dist/esm/signer-tYS6Y46X.d.mts +170 -0
- package/dist/esm/storage-6W5MO46W.d.mts +50 -0
- package/dist/esm/storage-sZ1CDS4P.d.mts +81 -0
- package/dist/esm/types-CF8P2-NM.d.mts +180 -0
- package/dist/esm/upto/client/index.d.mts +5 -3
- package/dist/esm/upto/client/index.mjs +9 -4
- package/dist/esm/upto/facilitator/index.d.mts +2 -1
- package/dist/esm/upto/facilitator/index.mjs +17 -9
- package/dist/esm/upto/facilitator/index.mjs.map +1 -1
- package/dist/esm/upto/server/index.mjs +1 -1
- package/dist/esm/v1/index.d.mts +2 -1
- package/dist/esm/v1/index.mjs +5 -2
- package/package.json +5 -5
- package/dist/esm/chunk-C4ZQMS77.mjs.map +0 -1
- package/dist/esm/chunk-CRT6YNY5.mjs.map +0 -1
- package/dist/esm/chunk-ERK2ZPOY.mjs.map +0 -1
- package/dist/esm/chunk-JII456TS.mjs.map +0 -1
- package/dist/esm/chunk-WKBC5YMI.mjs.map +0 -1
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
import { SchemeNetworkFacilitator, PaymentPayload, PaymentRequirements, FacilitatorContext, VerifyResponse, SettleResponse, Network } from '@payai/x402/types';
|
|
2
|
-
import { F as FacilitatorEvmSigner } from '../../signer-
|
|
2
|
+
import { F as FacilitatorEvmSigner } from '../../signer-tYS6Y46X.js';
|
|
3
3
|
import { x402Facilitator } from '@payai/x402/facilitator';
|
|
4
|
+
import 'viem';
|
|
4
5
|
|
|
5
6
|
interface ExactEvmSchemeConfig {
|
|
6
7
|
/**
|
|
7
|
-
*
|
|
8
|
-
*
|
|
8
|
+
* Allowlist of factory contract addresses (hex strings, case-insensitive) that the facilitator
|
|
9
|
+
* will call when deploying an undeployed smart wallet via ERC-6492.
|
|
9
10
|
*
|
|
10
|
-
*
|
|
11
|
+
* A non-empty list enables ERC-4337 smart wallet deployment via EIP-6492. An empty or omitted
|
|
12
|
+
* list denies all factory deployment calls (feature disabled by default).
|
|
13
|
+
*
|
|
14
|
+
* @default []
|
|
11
15
|
*/
|
|
12
|
-
|
|
16
|
+
eip6492AllowedFactories?: string[];
|
|
13
17
|
/**
|
|
14
18
|
* If enabled, run on-chain simulation during settle's re-verify.
|
|
15
19
|
*
|
|
@@ -83,12 +87,15 @@ interface EvmFacilitatorConfig {
|
|
|
83
87
|
*/
|
|
84
88
|
networks: Network | Network[];
|
|
85
89
|
/**
|
|
86
|
-
*
|
|
87
|
-
*
|
|
90
|
+
* Allowlist of factory contract addresses (hex strings, case-insensitive) that the facilitator
|
|
91
|
+
* will call when deploying an undeployed smart wallet via ERC-6492.
|
|
88
92
|
*
|
|
89
|
-
*
|
|
93
|
+
* A non-empty list enables ERC-4337 smart wallet deployment via EIP-6492. An empty or omitted
|
|
94
|
+
* list denies all factory deployment calls (feature disabled by default).
|
|
95
|
+
*
|
|
96
|
+
* @default []
|
|
90
97
|
*/
|
|
91
|
-
|
|
98
|
+
eip6492AllowedFactories?: string[];
|
|
92
99
|
/**
|
|
93
100
|
* If enabled, reruns on-chain simulation during settle's re-verify.
|
|
94
101
|
*
|
|
@@ -336,6 +336,7 @@ var ErrEip2612SpenderNotPermit2 = "eip2612_spender_not_permit2";
|
|
|
336
336
|
var ErrEip2612DeadlineExpired = "eip2612_deadline_expired";
|
|
337
337
|
var ErrUnsupportedPayloadType = "unsupported_payload_type";
|
|
338
338
|
var ErrInvalidTransactionState = "invalid_transaction_state";
|
|
339
|
+
var ErrFactoryNotAllowed = "eip6492_factory_not_allowed";
|
|
339
340
|
|
|
340
341
|
// src/exact/facilitator/eip3009-utils.ts
|
|
341
342
|
var import_viem3 = require("viem");
|
|
@@ -743,9 +744,22 @@ async function settleEIP3009(signer, payload, requirements, eip3009Payload, conf
|
|
|
743
744
|
const { address: factoryAddress, data: factoryCalldata } = (0, import_viem4.parseErc6492Signature)(
|
|
744
745
|
eip3009Payload.signature
|
|
745
746
|
);
|
|
746
|
-
if (
|
|
747
|
+
if (factoryAddress && factoryCalldata && !(0, import_viem4.isAddressEqual)(factoryAddress, "0x0000000000000000000000000000000000000000")) {
|
|
747
748
|
const bytecode = await signer.getCode({ address: payer });
|
|
748
749
|
if (!bytecode || bytecode === "0x") {
|
|
750
|
+
const normalizedFactory = factoryAddress.toLowerCase();
|
|
751
|
+
const isAllowed = (config.eip6492AllowedFactories ?? []).some(
|
|
752
|
+
(allowed) => allowed.toLowerCase() === normalizedFactory
|
|
753
|
+
);
|
|
754
|
+
if (!isAllowed) {
|
|
755
|
+
return {
|
|
756
|
+
success: false,
|
|
757
|
+
errorReason: ErrFactoryNotAllowed,
|
|
758
|
+
transaction: "",
|
|
759
|
+
network: payload.accepted.network,
|
|
760
|
+
payer
|
|
761
|
+
};
|
|
762
|
+
}
|
|
749
763
|
const deployTx = await signer.sendTransaction({
|
|
750
764
|
to: factoryAddress,
|
|
751
765
|
data: factoryCalldata
|
|
@@ -1140,6 +1154,7 @@ async function checkPermit2Prerequisites(config, signer, tokenAddress, payer, am
|
|
|
1140
1154
|
return { isValid: true, invalidReason: void 0, payer };
|
|
1141
1155
|
}
|
|
1142
1156
|
function buildExactPermit2SettleArgs(permit2Payload) {
|
|
1157
|
+
const { signature } = (0, import_viem6.parseErc6492Signature)(permit2Payload.signature);
|
|
1143
1158
|
return [
|
|
1144
1159
|
{
|
|
1145
1160
|
permitted: {
|
|
@@ -1154,7 +1169,7 @@ function buildExactPermit2SettleArgs(permit2Payload) {
|
|
|
1154
1169
|
to: (0, import_viem6.getAddress)(permit2Payload.permit2Authorization.witness.to),
|
|
1155
1170
|
validAfter: BigInt(permit2Payload.permit2Authorization.witness.validAfter)
|
|
1156
1171
|
},
|
|
1157
|
-
|
|
1172
|
+
signature
|
|
1158
1173
|
];
|
|
1159
1174
|
}
|
|
1160
1175
|
function splitEip2612Signature(signature) {
|
|
@@ -1472,7 +1487,7 @@ var ExactEvmScheme = class {
|
|
|
1472
1487
|
this.scheme = "exact";
|
|
1473
1488
|
this.caipFamily = "eip155:*";
|
|
1474
1489
|
this.config = {
|
|
1475
|
-
|
|
1490
|
+
eip6492AllowedFactories: config?.eip6492AllowedFactories ?? [],
|
|
1476
1491
|
simulateInSettle: config?.simulateInSettle ?? false
|
|
1477
1492
|
};
|
|
1478
1493
|
}
|
|
@@ -1586,7 +1601,7 @@ var ExactEvmSchemeV12 = class {
|
|
|
1586
1601
|
this.scheme = "exact";
|
|
1587
1602
|
this.caipFamily = "eip155:*";
|
|
1588
1603
|
this.config = {
|
|
1589
|
-
|
|
1604
|
+
eip6492AllowedFactories: config?.eip6492AllowedFactories ?? [],
|
|
1590
1605
|
simulateInSettle: config?.simulateInSettle ?? false
|
|
1591
1606
|
};
|
|
1592
1607
|
}
|
|
@@ -1646,10 +1661,23 @@ var ExactEvmSchemeV12 = class {
|
|
|
1646
1661
|
const { address: factoryAddress, data: factoryCalldata } = (0, import_viem9.parseErc6492Signature)(
|
|
1647
1662
|
exactEvmPayload.signature
|
|
1648
1663
|
);
|
|
1649
|
-
if (
|
|
1664
|
+
if (factoryAddress && factoryCalldata && !(0, import_viem9.isAddressEqual)(factoryAddress, "0x0000000000000000000000000000000000000000")) {
|
|
1650
1665
|
const payerAddress = exactEvmPayload.authorization.from;
|
|
1651
1666
|
const bytecode = await this.signer.getCode({ address: payerAddress });
|
|
1652
1667
|
if (!bytecode || bytecode === "0x") {
|
|
1668
|
+
const normalizedFactory = factoryAddress.toLowerCase();
|
|
1669
|
+
const isAllowed = (this.config.eip6492AllowedFactories ?? []).some(
|
|
1670
|
+
(allowed) => allowed.toLowerCase() === normalizedFactory
|
|
1671
|
+
);
|
|
1672
|
+
if (!isAllowed) {
|
|
1673
|
+
return {
|
|
1674
|
+
success: false,
|
|
1675
|
+
errorReason: ErrFactoryNotAllowed,
|
|
1676
|
+
transaction: "",
|
|
1677
|
+
network: payloadV1.network,
|
|
1678
|
+
payer: exactEvmPayload.authorization.from
|
|
1679
|
+
};
|
|
1680
|
+
}
|
|
1653
1681
|
const deployTx = await this.signer.sendTransaction({
|
|
1654
1682
|
to: factoryAddress,
|
|
1655
1683
|
data: factoryCalldata
|
|
@@ -1851,14 +1879,14 @@ function registerExactEvmScheme(facilitator, config) {
|
|
|
1851
1879
|
facilitator.register(
|
|
1852
1880
|
config.networks,
|
|
1853
1881
|
new ExactEvmScheme(config.signer, {
|
|
1854
|
-
|
|
1882
|
+
eip6492AllowedFactories: config.eip6492AllowedFactories,
|
|
1855
1883
|
simulateInSettle: config.simulateInSettle
|
|
1856
1884
|
})
|
|
1857
1885
|
);
|
|
1858
1886
|
facilitator.registerV1(
|
|
1859
1887
|
NETWORKS,
|
|
1860
1888
|
new ExactEvmSchemeV12(config.signer, {
|
|
1861
|
-
|
|
1889
|
+
eip6492AllowedFactories: config.eip6492AllowedFactories,
|
|
1862
1890
|
simulateInSettle: config.simulateInSettle
|
|
1863
1891
|
})
|
|
1864
1892
|
);
|