mppx 0.8.4 → 0.8.5
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 +6 -0
- package/dist/evm/client/Charge.d.ts +2 -2
- package/dist/evm/client/Charge.d.ts.map +1 -1
- package/dist/evm/client/Charge.js +11 -17
- package/dist/evm/client/Charge.js.map +1 -1
- package/dist/evm/server/Charge.d.ts +5 -5
- package/dist/evm/server/Charge.d.ts.map +1 -1
- package/dist/evm/server/Charge.js +15 -7
- package/dist/evm/server/Charge.js.map +1 -1
- package/dist/x402/Assets.d.ts +40 -0
- package/dist/x402/Assets.d.ts.map +1 -1
- package/dist/x402/Assets.js +73 -0
- package/dist/x402/Assets.js.map +1 -1
- package/dist/x402/client/Exact.d.ts +2 -2
- package/dist/x402/client/Exact.d.ts.map +1 -1
- package/dist/x402/client/Exact.js +6 -13
- package/dist/x402/client/Exact.js.map +1 -1
- package/package.json +1 -1
- package/src/evm/PublicInterface.test-d.ts +15 -2
- package/src/evm/client/Charge.test.ts +248 -0
- package/src/evm/client/Charge.ts +12 -23
- package/src/evm/server/Charge.test.ts +140 -0
- package/src/evm/server/Charge.ts +19 -12
- package/src/x402/Assets.test.ts +211 -0
- package/src/x402/Assets.ts +116 -0
- package/src/x402/client/Exact.test.ts +129 -0
- package/src/x402/client/Exact.ts +7 -19
package/CHANGELOG.md
CHANGED
|
@@ -94,9 +94,9 @@ export declare namespace charge {
|
|
|
94
94
|
/** Optional allowlist of supported EVM chain IDs. */
|
|
95
95
|
networks?: readonly number[] | undefined;
|
|
96
96
|
/** Optional allowlist of supported currencies. */
|
|
97
|
-
currencies?: readonly
|
|
97
|
+
currencies?: readonly Assets.Currency[] | undefined;
|
|
98
98
|
/** Legacy alias for `currencies`. */
|
|
99
|
-
assets?: readonly
|
|
99
|
+
assets?: readonly Assets.Currency[] | undefined;
|
|
100
100
|
};
|
|
101
101
|
}
|
|
102
102
|
//# sourceMappingURL=Charge.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/evm/client/Charge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAGzC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAqEnD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,MAAM,GAAG,OAAO,GAAG;QACtB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAA;KAC5D,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,mDAAmD;QACnD,OAAO,EAAE,OAAO,CAAA;QAChB,4DAA4D;QAC5D,aAAa,CAAC,EAAE,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACrD,gGAAgG;QAChG,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,mEAAmE;QACnE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACpC,qDAAqD;QACrD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;QACxC,kDAAkD;QAClD,UAAU,CAAC,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/evm/client/Charge.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAInC,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAGzC,OAAO,KAAK,CAAC,MAAM,cAAc,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAEtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;;;;GAKG;AACH,wBAAgB,MAAM,CAAC,UAAU,EAAE,MAAM,CAAC,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;mBAqEnD;AAED,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,MAAM,GAAG,OAAO,GAAG;QACtB,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAA;KAC5D,CAAA;IAED,KAAK,UAAU,GAAG;QAChB,mDAAmD;QACnD,OAAO,EAAE,OAAO,CAAA;QAChB,4DAA4D;QAC5D,aAAa,CAAC,EAAE,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACrD,gGAAgG;QAChG,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,yEAAyE;QACzE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC9B,mEAAmE;QACnE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QACpC,qDAAqD;QACrD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;QACxC,kDAAkD;QAClD,UAAU,CAAC,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAA;QACnD,qCAAqC;QACrC,MAAM,CAAC,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAA;KAChD,CAAA;CACF"}
|
|
@@ -88,11 +88,11 @@ function assertPolicy(parameters, request) {
|
|
|
88
88
|
if (parameters.networks && !parameters.networks.includes(chainId))
|
|
89
89
|
throw new Error(`EVM chain ID is not allowed: ${chainId}.`);
|
|
90
90
|
const currencies = parameters.currencies ?? parameters.assets;
|
|
91
|
-
if (currencies?.some((currency) =>
|
|
91
|
+
if (currencies?.some((currency) => Assets.isRawAddress(currency)) && !parameters.networks?.length)
|
|
92
92
|
throw new Error('EVM raw currency allowlists require networks.');
|
|
93
93
|
if (currencies) {
|
|
94
94
|
const acceptedCurrency = getAddress(request.currency);
|
|
95
|
-
const allowed = currencies.some((currency) =>
|
|
95
|
+
const allowed = currencies.some((currency) => Assets.matches(currency, acceptedCurrency, network));
|
|
96
96
|
if (!allowed)
|
|
97
97
|
throw new Error(`EVM currency is not allowed: ${acceptedCurrency}.`);
|
|
98
98
|
}
|
|
@@ -111,31 +111,25 @@ function resolveAuthorization(parameters, request) {
|
|
|
111
111
|
const currencies = parameters.currencies ?? parameters.assets;
|
|
112
112
|
const acceptedCurrency = getAddress(request.currency);
|
|
113
113
|
const network = Types.networkOf(request.methodDetails.chainId);
|
|
114
|
-
const currency = currencies?.find((currency) =>
|
|
115
|
-
|
|
114
|
+
const currency = currencies?.find((currency) => Assets.matches(currency, acceptedCurrency, network));
|
|
115
|
+
const resolved = currency ? Assets.resolve(currency, network) : undefined;
|
|
116
|
+
if (resolved?.transfer?.type === Types.eip3009)
|
|
116
117
|
return {
|
|
117
|
-
name:
|
|
118
|
-
version:
|
|
118
|
+
name: resolved.transfer.name,
|
|
119
|
+
version: resolved.transfer.version,
|
|
119
120
|
};
|
|
120
121
|
if (parameters.authorization)
|
|
121
122
|
return parameters.authorization;
|
|
122
123
|
throw new Error('EVM authorization requires token name and version.');
|
|
123
124
|
}
|
|
124
|
-
function addressOf(currency) {
|
|
125
|
-
return Assets.isAsset(currency) ? currency.address : currency;
|
|
126
|
-
}
|
|
127
|
-
function currencyMatches(currency, acceptedCurrency, network) {
|
|
128
|
-
if (getAddress(addressOf(currency)) !== acceptedCurrency)
|
|
129
|
-
return false;
|
|
130
|
-
return !Assets.isAsset(currency) || currency.network === network;
|
|
131
|
-
}
|
|
132
125
|
function decimalsOfAcceptedCurrency(parameters, request) {
|
|
133
126
|
const currencies = parameters.currencies ?? parameters.assets;
|
|
134
127
|
const acceptedCurrency = getAddress(request.currency);
|
|
135
128
|
const network = Types.networkOf(request.methodDetails.chainId);
|
|
136
|
-
const currency = currencies?.find((currency) =>
|
|
137
|
-
|
|
138
|
-
|
|
129
|
+
const currency = currencies?.find((currency) => Assets.matches(currency, acceptedCurrency, network));
|
|
130
|
+
const resolved = currency ? Assets.resolve(currency, network) : undefined;
|
|
131
|
+
if (resolved?.decimals !== undefined)
|
|
132
|
+
return resolved.decimals;
|
|
139
133
|
return parameters.decimals;
|
|
140
134
|
}
|
|
141
135
|
//# sourceMappingURL=Charge.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/evm/client/Charge.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/evm/client/Charge.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,11 +15,11 @@ export declare namespace charge {
|
|
|
15
15
|
type Native = Method.Server<typeof Methods.charge, Defaults>;
|
|
16
16
|
type NativeConfig = BaseConfig & CurrencyConfig & RecipientConfig;
|
|
17
17
|
type BaseConfig = {
|
|
18
|
-
/** EIP-3009 token domain metadata. Required for
|
|
18
|
+
/** EIP-3009 token domain metadata. Required for raw addresses and viem tokens; inferred for known assets. */
|
|
19
19
|
authorization?: Types.AuthorizationConfig | undefined;
|
|
20
|
-
/** EVM chain ID. Required for
|
|
20
|
+
/** EVM chain ID. Required for raw addresses and viem tokens; inferred for known assets. */
|
|
21
21
|
chainId?: number | undefined;
|
|
22
|
-
/** Token decimal places. Required for
|
|
22
|
+
/** Token decimal places. Required for raw addresses; inferred for known assets and viem tokens. */
|
|
23
23
|
decimals?: number | undefined;
|
|
24
24
|
/** Custom settlement override. If omitted, `x402.facilitator` is used. */
|
|
25
25
|
settle?: SettleAuthorization | undefined;
|
|
@@ -27,8 +27,8 @@ export declare namespace charge {
|
|
|
27
27
|
x402?: X402.Options | undefined;
|
|
28
28
|
};
|
|
29
29
|
type CurrencyConfig = {
|
|
30
|
-
/** Token contract address
|
|
31
|
-
currency:
|
|
30
|
+
/** Token contract address, known EVM asset metadata, or viem token definition. */
|
|
31
|
+
currency: Assets.Currency;
|
|
32
32
|
};
|
|
33
33
|
type RecipientConfig = {
|
|
34
34
|
/** Recipient wallet address. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/evm/server/Charge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAGzC,OAAO,KAAK,IAAI,MAAM,gCAAgC,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,UAAU,EAAE,MAAM,CAAC,YAAY,GAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;AAsFxD,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,GAAG,YAAY,CAAA;IAC9B,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE5D,KAAK,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,CAAA;IAEjE,KAAK,UAAU,GAAG;QAChB,
|
|
1
|
+
{"version":3,"file":"Charge.d.ts","sourceRoot":"","sources":["../../../src/evm/server/Charge.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,KAAK,UAAU,MAAM,qBAAqB,CAAA;AAEtD,OAAO,KAAK,MAAM,MAAM,iBAAiB,CAAA;AAGzC,OAAO,KAAK,IAAI,MAAM,gCAAgC,CAAA;AACtD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AACtC,OAAO,KAAK,OAAO,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;;;GAIG;AACH,wBAAgB,MAAM,CACpB,UAAU,EAAE,MAAM,CAAC,YAAY,GAC9B,MAAM,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAA;AAsFxD,MAAM,CAAC,OAAO,WAAW,MAAM,CAAC;IAC9B,KAAK,UAAU,GAAG,YAAY,CAAA;IAC9B,KAAK,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,OAAO,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAA;IAE5D,KAAK,YAAY,GAAG,UAAU,GAAG,cAAc,GAAG,eAAe,CAAA;IAEjE,KAAK,UAAU,GAAG;QAChB,6GAA6G;QAC7G,aAAa,CAAC,EAAE,KAAK,CAAC,mBAAmB,GAAG,SAAS,CAAA;QACrD,2FAA2F;QAC3F,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC5B,mGAAmG;QACnG,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAC7B,0EAA0E;QAC1E,MAAM,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAA;QACxC,kCAAkC;QAClC,IAAI,CAAC,EAAE,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;KAChC,CAAA;IAED,KAAK,cAAc,GAAG;QACpB,kFAAkF;QAClF,QAAQ,EAAE,MAAM,CAAC,QAAQ,CAAA;KAC1B,CAAA;IAED,KAAK,eAAe,GAAG;QACrB,gCAAgC;QAChC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;KACzB,CAAA;IAED,KAAK,YAAY,GAAG;QAClB,0CAA0C;QAC1C,MAAM,EAAE,MAAM,CAAA;QACd,mDAAmD;QACnD,WAAW,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;QAChC,wCAAwC;QACxC,UAAU,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAChC,CAAA;IAED,KAAK,mBAAmB,GAAG,CAAC,UAAU,EAAE;QACtC,UAAU,EAAE,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAA;QAC7D,OAAO,EAAE,KAAK,CAAC,oBAAoB,CAAA;QACnC,OAAO,EAAE,KAAK,CAAC,aAAa,CAAA;QAC5B,MAAM,EAAE,UAAU,CAAC,OAAO,KAAK,CAAC,QAAQ,CAAC,CAAA;KAC1C,KAAK,OAAO,CAAC;QACZ,SAAS,EAAE,MAAM,CAAA;QACjB,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;KAC/B,CAAC,CAAA;IAEF,KAAK,QAAQ,GAAG;QACd,OAAO,EAAE,MAAM,CAAA;QACf,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAA;QACvB,eAAe,EAAE,CAAC,eAAe,CAAC,CAAA;QAClC,QAAQ,EAAE,MAAM,CAAA;QAChB,SAAS,EAAE,KAAK,MAAM,EAAE,CAAA;KACzB,CAAA;CACF"}
|
|
@@ -90,19 +90,27 @@ function resolveConfig(config) {
|
|
|
90
90
|
let chainId = config.chainId;
|
|
91
91
|
let decimals = config.decimals;
|
|
92
92
|
if (Assets.isAsset(currency)) {
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
93
|
+
chainId ??= Assets.toChainId(currency.network);
|
|
94
|
+
}
|
|
95
|
+
if (chainId !== undefined) {
|
|
96
|
+
const resolved = Assets.resolve(currency, Types.networkOf(chainId));
|
|
97
|
+
if (!resolved)
|
|
98
|
+
throw new Error(`EVM currency is not available on chain ID ${chainId}.`);
|
|
99
|
+
address = resolved.address;
|
|
100
|
+
decimals ??= resolved.decimals;
|
|
101
|
+
if (resolved.transfer?.type === Types.eip3009) {
|
|
97
102
|
authorization ??= {
|
|
98
|
-
name:
|
|
99
|
-
version:
|
|
103
|
+
name: resolved.transfer.name,
|
|
104
|
+
version: resolved.transfer.version,
|
|
100
105
|
};
|
|
101
106
|
}
|
|
102
107
|
}
|
|
103
|
-
else {
|
|
108
|
+
else if (Assets.isRawAddress(currency)) {
|
|
104
109
|
address = currency;
|
|
105
110
|
}
|
|
111
|
+
else {
|
|
112
|
+
throw new Error('EVM authorization requires `chainId`.');
|
|
113
|
+
}
|
|
106
114
|
if (!authorization)
|
|
107
115
|
throw new Error('EVM authorization requires `authorization` metadata.');
|
|
108
116
|
if (chainId === undefined)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/evm/server/Charge.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Charge.js","sourceRoot":"","sources":["../../../src/evm/server/Charge.ts"],"names":[],"mappings":"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"}
|
package/dist/x402/Assets.d.ts
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { Token } from 'viem/tokens';
|
|
1
2
|
import type { Asset, EvmNetwork, ExactTransfer } from './Types.js';
|
|
2
3
|
declare const knownAsset: unique symbol;
|
|
3
4
|
/** Known x402 asset metadata. */
|
|
@@ -5,6 +6,10 @@ export type KnownAsset = Asset & {
|
|
|
5
6
|
readonly [knownAsset]: true;
|
|
6
7
|
network: EvmNetwork;
|
|
7
8
|
};
|
|
9
|
+
/** Viem token metadata from `viem/tokens`. */
|
|
10
|
+
export type ViemToken = Token;
|
|
11
|
+
/** Currency metadata accepted by EVM and x402 payment config. */
|
|
12
|
+
export type Currency = `0x${string}` | KnownAsset | ViemToken;
|
|
8
13
|
/** Creates typed x402 asset metadata for custom tokens. */
|
|
9
14
|
export declare function define(parameters: define.Parameters): KnownAsset;
|
|
10
15
|
export declare namespace define {
|
|
@@ -15,6 +20,21 @@ export declare namespace define {
|
|
|
15
20
|
transfer: ExactTransfer;
|
|
16
21
|
};
|
|
17
22
|
}
|
|
23
|
+
/** Creates x402 asset metadata from a `viem/tokens` token definition. */
|
|
24
|
+
export declare function fromToken(token: ViemToken, parameters: fromToken.Parameters): KnownAsset;
|
|
25
|
+
export declare namespace fromToken {
|
|
26
|
+
type Parameters = {
|
|
27
|
+
chainId: number;
|
|
28
|
+
transfer: Transfer;
|
|
29
|
+
};
|
|
30
|
+
type Transfer = (Omit<Extract<ExactTransfer, {
|
|
31
|
+
type: 'eip3009';
|
|
32
|
+
}>, 'name'> & {
|
|
33
|
+
name?: string | undefined;
|
|
34
|
+
}) | Extract<ExactTransfer, {
|
|
35
|
+
type: 'permit2';
|
|
36
|
+
}>;
|
|
37
|
+
}
|
|
18
38
|
/** Base network known assets. */
|
|
19
39
|
export declare const base: {
|
|
20
40
|
readonly USDC: KnownAsset;
|
|
@@ -25,5 +45,25 @@ export declare const baseSepolia: {
|
|
|
25
45
|
};
|
|
26
46
|
/** Returns true when a value is known x402 asset metadata. */
|
|
27
47
|
export declare function isAsset(value: unknown): value is KnownAsset;
|
|
48
|
+
/** Returns true when a value is a `viem/tokens` token definition. */
|
|
49
|
+
export declare function isToken(value: unknown): value is ViemToken;
|
|
50
|
+
/** Returns true when a currency is a raw address without chain metadata. */
|
|
51
|
+
export declare function isRawAddress(currency: Currency): currency is `0x${string}`;
|
|
52
|
+
/** Resolves currency metadata for an EVM network. */
|
|
53
|
+
export declare function resolve(currency: Currency, network: EvmNetwork): resolve.Result | undefined;
|
|
54
|
+
export declare namespace resolve {
|
|
55
|
+
type Result = {
|
|
56
|
+
address: `0x${string}`;
|
|
57
|
+
decimals?: number | undefined;
|
|
58
|
+
name?: string | undefined;
|
|
59
|
+
transfer?: ExactTransfer | undefined;
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
/** Returns true when a currency resolves to the accepted address on the network. */
|
|
63
|
+
export declare function matches(currency: Currency, acceptedCurrency: `0x${string}`, network: EvmNetwork): boolean;
|
|
64
|
+
/** Converts an EVM chain ID to a CAIP-2 network identifier. */
|
|
65
|
+
export declare function toNetwork(chainId: number): EvmNetwork;
|
|
66
|
+
/** Converts a CAIP-2 EVM network identifier to a chain ID. */
|
|
67
|
+
export declare function toChainId(network: EvmNetwork): number;
|
|
28
68
|
export {};
|
|
29
69
|
//# sourceMappingURL=Assets.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Assets.d.ts","sourceRoot":"","sources":["../../src/x402/Assets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Assets.d.ts","sourceRoot":"","sources":["../../src/x402/Assets.ts"],"names":[],"mappings":"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"}
|
package/dist/x402/Assets.js
CHANGED
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { getAddress } from 'viem';
|
|
1
2
|
const knownAsset = Symbol('mppx.x402.asset');
|
|
2
3
|
/** Creates typed x402 asset metadata for custom tokens. */
|
|
3
4
|
export function define(parameters) {
|
|
@@ -9,6 +10,16 @@ export function define(parameters) {
|
|
|
9
10
|
transfer: parameters.transfer,
|
|
10
11
|
};
|
|
11
12
|
}
|
|
13
|
+
/** Creates x402 asset metadata from a `viem/tokens` token definition. */
|
|
14
|
+
export function fromToken(token, parameters) {
|
|
15
|
+
const resolved = token(parameters.chainId);
|
|
16
|
+
return define({
|
|
17
|
+
address: resolved.address,
|
|
18
|
+
decimals: resolved.decimals,
|
|
19
|
+
network: toNetwork(parameters.chainId),
|
|
20
|
+
transfer: withTokenDefaults(parameters.transfer, resolved),
|
|
21
|
+
});
|
|
22
|
+
}
|
|
12
23
|
/** Base network known assets. */
|
|
13
24
|
export const base = {
|
|
14
25
|
USDC: define({
|
|
@@ -43,4 +54,66 @@ export function isAsset(value) {
|
|
|
43
54
|
return false;
|
|
44
55
|
return value[knownAsset] === true;
|
|
45
56
|
}
|
|
57
|
+
/** Returns true when a value is a `viem/tokens` token definition. */
|
|
58
|
+
export function isToken(value) {
|
|
59
|
+
return (typeof value === 'function' &&
|
|
60
|
+
typeof value.addresses === 'object' &&
|
|
61
|
+
typeof value.decimals === 'number');
|
|
62
|
+
}
|
|
63
|
+
/** Returns true when a currency is a raw address without chain metadata. */
|
|
64
|
+
export function isRawAddress(currency) {
|
|
65
|
+
return typeof currency === 'string';
|
|
66
|
+
}
|
|
67
|
+
/** Resolves currency metadata for an EVM network. */
|
|
68
|
+
export function resolve(currency, network) {
|
|
69
|
+
if (isAsset(currency)) {
|
|
70
|
+
if (currency.network !== network)
|
|
71
|
+
return undefined;
|
|
72
|
+
return {
|
|
73
|
+
address: currency.address,
|
|
74
|
+
decimals: currency.decimals,
|
|
75
|
+
transfer: currency.transfer,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
if (isToken(currency)) {
|
|
79
|
+
const address = currency.addresses[toChainId(network)];
|
|
80
|
+
if (!address)
|
|
81
|
+
return undefined;
|
|
82
|
+
return {
|
|
83
|
+
address,
|
|
84
|
+
decimals: currency.decimals,
|
|
85
|
+
name: currency.name,
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
return {
|
|
89
|
+
address: currency,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
/** Returns true when a currency resolves to the accepted address on the network. */
|
|
93
|
+
export function matches(currency, acceptedCurrency, network) {
|
|
94
|
+
const resolved = resolve(currency, network);
|
|
95
|
+
if (!resolved)
|
|
96
|
+
return false;
|
|
97
|
+
return getAddress(resolved.address) === getAddress(acceptedCurrency);
|
|
98
|
+
}
|
|
99
|
+
/** Converts an EVM chain ID to a CAIP-2 network identifier. */
|
|
100
|
+
export function toNetwork(chainId) {
|
|
101
|
+
return `eip155:${chainId}`;
|
|
102
|
+
}
|
|
103
|
+
/** Converts a CAIP-2 EVM network identifier to a chain ID. */
|
|
104
|
+
export function toChainId(network) {
|
|
105
|
+
return Number(network.slice('eip155:'.length));
|
|
106
|
+
}
|
|
107
|
+
function withTokenDefaults(transfer, token) {
|
|
108
|
+
if (transfer.type !== 'eip3009')
|
|
109
|
+
return transfer;
|
|
110
|
+
if (transfer.name)
|
|
111
|
+
return { ...transfer, name: transfer.name };
|
|
112
|
+
if (!token.name)
|
|
113
|
+
throw new Error('EIP-3009 token assets require a token name.');
|
|
114
|
+
return {
|
|
115
|
+
...transfer,
|
|
116
|
+
name: token.name,
|
|
117
|
+
};
|
|
118
|
+
}
|
|
46
119
|
//# sourceMappingURL=Assets.js.map
|
package/dist/x402/Assets.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Assets.js","sourceRoot":"","sources":["../../src/x402/Assets.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Assets.js","sourceRoot":"","sources":["../../src/x402/Assets.ts"],"names":[],"mappings":"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"}
|
|
@@ -31,8 +31,8 @@ export type Config = {
|
|
|
31
31
|
/** Optional allowlist of supported EVM chain IDs. */
|
|
32
32
|
networks?: readonly number[] | undefined;
|
|
33
33
|
/** Optional allowlist of supported currencies. */
|
|
34
|
-
currencies?: readonly
|
|
34
|
+
currencies?: readonly Assets.Currency[] | undefined;
|
|
35
35
|
/** Legacy alias for `currencies`. */
|
|
36
|
-
assets?: readonly
|
|
36
|
+
assets?: readonly Assets.Currency[] | undefined;
|
|
37
37
|
};
|
|
38
38
|
//# sourceMappingURL=Exact.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Exact.d.ts","sourceRoot":"","sources":["../../../src/x402/client/Exact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,KAAK,SAAS,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAGtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA2D/F;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,KAAK,UAAU,GAAG;QAChB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAClD,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG;IAC7B,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAA;CAC5D,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAA;IAChB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACxC,kDAAkD;IAClD,UAAU,CAAC,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"Exact.d.ts","sourceRoot":"","sources":["../../../src/x402/client/Exact.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,MAAM,CAAA;AAGnC,OAAO,KAAK,KAAK,SAAS,MAAM,oBAAoB,CAAA;AACpD,OAAO,KAAK,MAAM,MAAM,cAAc,CAAA;AAGtC,OAAO,KAAK,KAAK,MAAM,aAAa,CAAA;AAEpC;;GAEG;AACH,wBAAsB,gBAAgB,CAAC,UAAU,EAAE,gBAAgB,CAAC,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CA2D/F;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,KAAK,UAAU,GAAG;QAChB,SAAS,EAAE,SAAS,CAAC,SAAS,CAAC,KAAK,CAAC,YAAY,CAAC,CAAA;QAClD,MAAM,EAAE,MAAM,CAAA;QACd,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;KAC9B,CAAA;CACF;AAED,MAAM,MAAM,OAAO,GAAG;IACpB,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;CAC9B,CAAA;AAED,MAAM,MAAM,MAAM,GAAG,OAAO,GAAG;IAC7B,aAAa,CAAC,EAAE,CAAC,UAAU,EAAE,GAAG,KAAK,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAAA;CAC5D,CAAA;AAED,MAAM,MAAM,MAAM,GAAG;IACnB,uDAAuD;IACvD,OAAO,EAAE,OAAO,CAAA;IAChB,gGAAgG;IAChG,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC7B,yEAAyE;IACzE,SAAS,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC9B,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACpC,qDAAqD;IACrD,QAAQ,CAAC,EAAE,SAAS,MAAM,EAAE,GAAG,SAAS,CAAA;IACxC,kDAAkD;IAClD,UAAU,CAAC,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAA;IACnD,qCAAqC;IACrC,MAAM,CAAC,EAAE,SAAS,MAAM,CAAC,QAAQ,EAAE,GAAG,SAAS,CAAA;CAChD,CAAA"}
|
|
@@ -81,11 +81,11 @@ function assertPolicy(parameters, accepted) {
|
|
|
81
81
|
if (parameters.networks && !parameters.networks.includes(chainId))
|
|
82
82
|
throw new Error(`x402 exact chain ID is not allowed: ${chainId}.`);
|
|
83
83
|
const currencies = parameters.currencies ?? parameters.assets;
|
|
84
|
-
if (currencies?.some((currency) =>
|
|
84
|
+
if (currencies?.some((currency) => Assets.isRawAddress(currency)) && !parameters.networks?.length)
|
|
85
85
|
throw new Error('x402 exact raw currency allowlists require networks.');
|
|
86
86
|
if (currencies) {
|
|
87
87
|
const acceptedCurrency = getAddress(accepted.asset);
|
|
88
|
-
const allowed = currencies.some((currency) =>
|
|
88
|
+
const allowed = currencies.some((currency) => Assets.matches(currency, acceptedCurrency, accepted.network));
|
|
89
89
|
if (!allowed)
|
|
90
90
|
throw new Error(`x402 exact currency is not allowed: ${acceptedCurrency}.`);
|
|
91
91
|
}
|
|
@@ -100,20 +100,13 @@ function assertPolicy(parameters, accepted) {
|
|
|
100
100
|
throw new Error('x402 exact amount exceeds maxAmount.');
|
|
101
101
|
}
|
|
102
102
|
}
|
|
103
|
-
function addressOf(currency) {
|
|
104
|
-
return Assets.isAsset(currency) ? currency.address : currency;
|
|
105
|
-
}
|
|
106
|
-
function currencyMatches(currency, acceptedCurrency, network) {
|
|
107
|
-
if (getAddress(addressOf(currency)) !== acceptedCurrency)
|
|
108
|
-
return false;
|
|
109
|
-
return !Assets.isAsset(currency) || currency.network === network;
|
|
110
|
-
}
|
|
111
103
|
function decimalsOfAcceptedCurrency(parameters, accepted) {
|
|
112
104
|
const currencies = parameters.currencies ?? parameters.assets;
|
|
113
105
|
const acceptedCurrency = getAddress(accepted.asset);
|
|
114
|
-
const currency = currencies?.find((currency) =>
|
|
115
|
-
|
|
116
|
-
|
|
106
|
+
const currency = currencies?.find((currency) => Assets.matches(currency, acceptedCurrency, accepted.network));
|
|
107
|
+
const resolved = currency ? Assets.resolve(currency, accepted.network) : undefined;
|
|
108
|
+
if (resolved?.decimals !== undefined)
|
|
109
|
+
return resolved.decimals;
|
|
117
110
|
return parameters.decimals;
|
|
118
111
|
}
|
|
119
112
|
function withNonceSalt(extensions) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Exact.js","sourceRoot":"","sources":["../../../src/x402/client/Exact.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"Exact.js","sourceRoot":"","sources":["../../../src/x402/client/Exact.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -7,6 +7,7 @@ import {
|
|
|
7
7
|
} from 'mppx/evm/client'
|
|
8
8
|
import { assets as serverAssets, charge as serverCharge, evm as serverEvm } from 'mppx/evm/server'
|
|
9
9
|
import type { Account } from 'viem'
|
|
10
|
+
import { tokens, usdc } from 'viem/tokens'
|
|
10
11
|
import { describe, expectTypeOf, test } from 'vp/test'
|
|
11
12
|
|
|
12
13
|
import { Mppx as ClientMppx } from '../client/index.js'
|
|
@@ -30,6 +31,12 @@ const facilitator = {
|
|
|
30
31
|
describe('evm public interface', () => {
|
|
31
32
|
test('exports EVM asset metadata from root and subpaths', () => {
|
|
32
33
|
expectTypeOf(evmRoot.assets.base.USDC).toMatchTypeOf<typeof serverAssets.base.USDC>()
|
|
34
|
+
expectTypeOf(
|
|
35
|
+
evmRoot.assets.fromToken(usdc, {
|
|
36
|
+
chainId: clientChains.base,
|
|
37
|
+
transfer: { type: 'eip3009', version: '2' },
|
|
38
|
+
}),
|
|
39
|
+
).toMatchTypeOf<typeof serverAssets.base.USDC>()
|
|
33
40
|
expectTypeOf(clientAssets.baseSepolia.USDC).toMatchTypeOf<
|
|
34
41
|
typeof serverAssets.baseSepolia.USDC
|
|
35
42
|
>()
|
|
@@ -53,6 +60,13 @@ describe('evm public interface', () => {
|
|
|
53
60
|
|
|
54
61
|
const mppx = ServerMppx.create({
|
|
55
62
|
methods: [
|
|
63
|
+
serverEvm({
|
|
64
|
+
authorization: { name: 'USD Coin', version: '2' },
|
|
65
|
+
chainId: clientChains.base,
|
|
66
|
+
currency: usdc,
|
|
67
|
+
recipient,
|
|
68
|
+
x402: { facilitator },
|
|
69
|
+
}),
|
|
56
70
|
serverEvm({
|
|
57
71
|
currency: serverAssets.base.USDC,
|
|
58
72
|
recipient,
|
|
@@ -90,9 +104,8 @@ describe('evm public interface', () => {
|
|
|
90
104
|
methods: [
|
|
91
105
|
clientEvm({
|
|
92
106
|
account,
|
|
93
|
-
currencies:
|
|
107
|
+
currencies: tokens.popular,
|
|
94
108
|
maxAmount: '0.01',
|
|
95
|
-
networks: [clientEvm.chains.baseSepolia],
|
|
96
109
|
}),
|
|
97
110
|
],
|
|
98
111
|
polyfill: false,
|