@x402r/evm 0.0.1 → 0.0.2
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 +21 -8
- package/dist/escrow/client/index.d.ts +29 -13
- package/dist/escrow/client/index.d.ts.map +1 -1
- package/dist/escrow/client/index.js +92 -33
- package/dist/escrow/client/index.js.map +1 -1
- package/dist/escrow/facilitator/index.d.ts +1 -1
- package/dist/escrow/facilitator/index.d.ts.map +1 -1
- package/dist/escrow/facilitator/index.js +163 -9
- package/dist/escrow/facilitator/index.js.map +1 -1
- package/dist/escrow/server/index.d.ts +41 -37
- package/dist/escrow/server/index.d.ts.map +1 -1
- package/dist/escrow/server/index.js +159 -25
- package/dist/escrow/server/index.js.map +1 -1
- package/dist/shared/constants.d.ts +14 -0
- package/dist/shared/constants.d.ts.map +1 -1
- package/dist/shared/constants.js +12 -0
- package/dist/shared/constants.js.map +1 -1
- package/dist/shared/nonce.d.ts +2 -2
- package/dist/shared/nonce.d.ts.map +1 -1
- package/dist/shared/nonce.js +3 -4
- package/dist/shared/nonce.js.map +1 -1
- package/dist/shared/types.d.ts +8 -0
- package/dist/shared/types.d.ts.map +1 -1
- package/dist/shared/types.js +20 -1
- package/dist/shared/types.js.map +1 -1
- package/package.json +1 -1
- package/src/escrow/client/index.ts +140 -67
- package/src/escrow/facilitator/index.ts +196 -12
- package/src/escrow/server/index.ts +189 -61
- package/src/shared/constants.ts +15 -0
- package/src/shared/nonce.ts +6 -5
- package/src/shared/types.ts +26 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/escrow/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/escrow/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EACV,WAAW,EACX,WAAW,EACX,OAAO,EACP,mBAAmB,EACnB,KAAK,EACL,mBAAmB,EACpB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AA0FvD;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,mBAAmB;IAC5D,QAAQ,CAAC,MAAM,YAAY;IAC3B,OAAO,CAAC,YAAY,CAAqB;IAEzC;;;;;;;;;OASG;IACH,mBAAmB,CAAC,MAAM,EAAE,WAAW,GAAG,kBAAkB;IAK5D;;;;;;;OAOG;IACG,UAAU,CAAC,KAAK,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,WAAW,CAAC;IAkCtE;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAqB9B;;;;;;OAMG;IACG,0BAA0B,CAC9B,YAAY,EAAE,mBAAmB,EACjC,aAAa,EAAE;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,MAAM,EAAE,MAAM,CAAC;QACf,OAAO,EAAE,OAAO,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACjC,EACD,sBAAsB,EAAE,MAAM,EAAE,GAC/B,OAAO,CAAC,mBAAmB,CAAC;CAShC;AAED;;;;;;;;GAQG;AACH,wBAAgB,0BAA0B,CACxC,MAAM,EAAE,kBAAkB,EAC1B,MAAM,EAAE;IAAE,QAAQ,EAAE,OAAO,GAAG,OAAO,EAAE,CAAA;CAAE,GACxC,kBAAkB,CASpB;AAED,YAAY,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC"}
|
|
@@ -6,21 +6,108 @@
|
|
|
6
6
|
* on an x402ResourceServer via server.register('eip155:84532', new EscrowServerScheme()).
|
|
7
7
|
*/
|
|
8
8
|
/**
|
|
9
|
-
*
|
|
9
|
+
* Asset info including EIP-712 domain parameters per network
|
|
10
10
|
*/
|
|
11
|
-
const
|
|
12
|
-
|
|
13
|
-
"eip155:
|
|
11
|
+
const ASSET_INFO = {
|
|
12
|
+
// Base Sepolia
|
|
13
|
+
"eip155:84532": {
|
|
14
|
+
address: "0x036CbD53842c5426634e7929541eC2318f3dCF7e",
|
|
15
|
+
name: "USDC",
|
|
16
|
+
version: "2",
|
|
17
|
+
decimals: 6,
|
|
18
|
+
},
|
|
19
|
+
// Base mainnet
|
|
20
|
+
"eip155:8453": {
|
|
21
|
+
address: "0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913",
|
|
22
|
+
name: "USD Coin",
|
|
23
|
+
version: "2",
|
|
24
|
+
decimals: 6,
|
|
25
|
+
},
|
|
26
|
+
// Ethereum Sepolia
|
|
27
|
+
"eip155:11155111": {
|
|
28
|
+
address: "0x1c7D4B196Cb0C7B01d743Fbc6116a902379C7238",
|
|
29
|
+
name: "USDC",
|
|
30
|
+
version: "2",
|
|
31
|
+
decimals: 6,
|
|
32
|
+
},
|
|
33
|
+
// Ethereum mainnet
|
|
34
|
+
"eip155:1": {
|
|
35
|
+
address: "0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48",
|
|
36
|
+
name: "USD Coin",
|
|
37
|
+
version: "2",
|
|
38
|
+
decimals: 6,
|
|
39
|
+
},
|
|
40
|
+
// Polygon
|
|
41
|
+
"eip155:137": {
|
|
42
|
+
address: "0x3c499c542cEF5E3811e1192ce70d8cC03d5c3359",
|
|
43
|
+
name: "USD Coin",
|
|
44
|
+
version: "2",
|
|
45
|
+
decimals: 6,
|
|
46
|
+
},
|
|
47
|
+
// Arbitrum
|
|
48
|
+
"eip155:42161": {
|
|
49
|
+
address: "0xaf88d065e77c8cC2239327C5EDb3A432268e5831",
|
|
50
|
+
name: "USD Coin",
|
|
51
|
+
version: "2",
|
|
52
|
+
decimals: 6,
|
|
53
|
+
},
|
|
54
|
+
// Celo
|
|
55
|
+
"eip155:42220": {
|
|
56
|
+
address: "0xcebA9300f2b948710d2653dD7B07f33A8B32118C",
|
|
57
|
+
name: "USD Coin",
|
|
58
|
+
version: "2",
|
|
59
|
+
decimals: 6,
|
|
60
|
+
},
|
|
61
|
+
// Monad
|
|
62
|
+
"eip155:143": {
|
|
63
|
+
address: "0x754704Bc059F8C67012fEd69BC8A327a5aafb603",
|
|
64
|
+
name: "USDC",
|
|
65
|
+
version: "2",
|
|
66
|
+
decimals: 6,
|
|
67
|
+
},
|
|
68
|
+
// Avalanche
|
|
69
|
+
"eip155:43114": {
|
|
70
|
+
address: "0xB97EF9Ef8734C71904D8002F8b6Bc66Dd9c48a6E",
|
|
71
|
+
name: "USD Coin",
|
|
72
|
+
version: "2",
|
|
73
|
+
decimals: 6,
|
|
74
|
+
},
|
|
14
75
|
};
|
|
76
|
+
/**
|
|
77
|
+
* Convert decimal amount to token units using string-based conversion
|
|
78
|
+
* (e.g., 0.10 -> 100000 for 6-decimal tokens)
|
|
79
|
+
* Avoids floating-point precision issues from BigInt(Math.round(...))
|
|
80
|
+
*/
|
|
81
|
+
function convertToTokenAmount(decimalAmount, decimals) {
|
|
82
|
+
const amount = parseFloat(decimalAmount);
|
|
83
|
+
if (isNaN(amount)) {
|
|
84
|
+
throw new Error(`Invalid amount: ${decimalAmount}`);
|
|
85
|
+
}
|
|
86
|
+
const [intPart, decPart = ""] = String(amount).split(".");
|
|
87
|
+
const paddedDec = decPart.padEnd(decimals, "0").slice(0, decimals);
|
|
88
|
+
const tokenAmount = (intPart + paddedDec).replace(/^0+/, "") || "0";
|
|
89
|
+
return tokenAmount;
|
|
90
|
+
}
|
|
15
91
|
/**
|
|
16
92
|
* Server scheme - handles price parsing and requirement enhancement.
|
|
17
93
|
* Implements x402's SchemeNetworkServer interface.
|
|
18
94
|
*/
|
|
19
95
|
export class EscrowServerScheme {
|
|
20
96
|
scheme = "escrow";
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
97
|
+
moneyParsers = [];
|
|
98
|
+
/**
|
|
99
|
+
* Register a custom money parser in the parser chain.
|
|
100
|
+
* Multiple parsers can be registered — they will be tried in registration order.
|
|
101
|
+
* Each parser receives a decimal amount (e.g., 1.50 for $1.50).
|
|
102
|
+
* If a parser returns null, the next parser in the chain will be tried.
|
|
103
|
+
* The default parser (USDC) is always the final fallback.
|
|
104
|
+
*
|
|
105
|
+
* @param parser - Custom function to convert amount to AssetAmount (or null to skip)
|
|
106
|
+
* @returns The server instance for chaining
|
|
107
|
+
*/
|
|
108
|
+
registerMoneyParser(parser) {
|
|
109
|
+
this.moneyParsers.push(parser);
|
|
110
|
+
return this;
|
|
24
111
|
}
|
|
25
112
|
/**
|
|
26
113
|
* Parse a price into an x402 AssetAmount.
|
|
@@ -31,33 +118,61 @@ export class EscrowServerScheme {
|
|
|
31
118
|
* - AssetAmount: { asset: "0x...", amount: "10000" }
|
|
32
119
|
*/
|
|
33
120
|
async parsePrice(price, network) {
|
|
34
|
-
// If already an AssetAmount, pass through
|
|
121
|
+
// If already an AssetAmount, pass through with validation
|
|
35
122
|
if (typeof price === "object" &&
|
|
36
123
|
price !== null &&
|
|
37
|
-
"amount" in price
|
|
38
|
-
|
|
39
|
-
|
|
124
|
+
"amount" in price) {
|
|
125
|
+
if (!price.asset) {
|
|
126
|
+
throw new Error(`Asset address must be specified for AssetAmount on network ${network}`);
|
|
127
|
+
}
|
|
128
|
+
return {
|
|
129
|
+
amount: price.amount,
|
|
130
|
+
asset: price.asset,
|
|
131
|
+
extra: price.extra || {},
|
|
132
|
+
};
|
|
40
133
|
}
|
|
41
|
-
//
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
134
|
+
// Parse Money to decimal number
|
|
135
|
+
const numericAmount = this.parseMoneyToDecimal(price);
|
|
136
|
+
// Try each custom money parser in order
|
|
137
|
+
for (const parser of this.moneyParsers) {
|
|
138
|
+
const result = await parser(numericAmount, network);
|
|
139
|
+
if (result !== null) {
|
|
140
|
+
return result;
|
|
141
|
+
}
|
|
45
142
|
}
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
143
|
+
// All custom parsers returned null (or none registered), use default conversion
|
|
144
|
+
return this.defaultMoneyConversion(numericAmount, network);
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Parse Money (string | number) to a decimal number.
|
|
148
|
+
*/
|
|
149
|
+
parseMoneyToDecimal(money) {
|
|
150
|
+
if (typeof money === "number") {
|
|
151
|
+
return money;
|
|
49
152
|
}
|
|
50
|
-
|
|
51
|
-
|
|
153
|
+
const cleaned = String(money).replace(/[$,]/g, "").trim();
|
|
154
|
+
const amount = parseFloat(cleaned);
|
|
155
|
+
if (isNaN(amount)) {
|
|
156
|
+
throw new Error(`Cannot parse price: ${money}`);
|
|
52
157
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
158
|
+
return amount;
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Default money conversion — converts decimal amount to the default stablecoin on the network.
|
|
162
|
+
*/
|
|
163
|
+
defaultMoneyConversion(amount, network) {
|
|
164
|
+
const assetInfo = ASSET_INFO[network];
|
|
165
|
+
if (!assetInfo) {
|
|
56
166
|
throw new Error(`No USDC address configured for network: ${network}`);
|
|
57
167
|
}
|
|
168
|
+
const tokenAmount = convertToTokenAmount(String(amount), assetInfo.decimals);
|
|
58
169
|
return {
|
|
59
|
-
asset,
|
|
60
|
-
amount:
|
|
170
|
+
asset: assetInfo.address,
|
|
171
|
+
amount: tokenAmount,
|
|
172
|
+
extra: {
|
|
173
|
+
name: assetInfo.name,
|
|
174
|
+
version: assetInfo.version,
|
|
175
|
+
},
|
|
61
176
|
};
|
|
62
177
|
}
|
|
63
178
|
/**
|
|
@@ -77,4 +192,23 @@ export class EscrowServerScheme {
|
|
|
77
192
|
};
|
|
78
193
|
}
|
|
79
194
|
}
|
|
195
|
+
/**
|
|
196
|
+
* Register escrow server scheme with x402ResourceServer
|
|
197
|
+
*
|
|
198
|
+
* @example
|
|
199
|
+
* ```typescript
|
|
200
|
+
* const server = new x402ResourceServer(facilitatorConfig);
|
|
201
|
+
* registerEscrowServerScheme(server, { networks: "eip155:84532" });
|
|
202
|
+
* ```
|
|
203
|
+
*/
|
|
204
|
+
export function registerEscrowServerScheme(server, config) {
|
|
205
|
+
const scheme = new EscrowServerScheme();
|
|
206
|
+
const networks = Array.isArray(config.networks)
|
|
207
|
+
? config.networks
|
|
208
|
+
: [config.networks];
|
|
209
|
+
for (const network of networks) {
|
|
210
|
+
server.register(network, scheme);
|
|
211
|
+
}
|
|
212
|
+
return server;
|
|
213
|
+
}
|
|
80
214
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/escrow/server/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/escrow/server/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -95,4 +95,18 @@ export declare const OPERATOR_ABI: readonly [{
|
|
|
95
95
|
readonly outputs: readonly [];
|
|
96
96
|
}];
|
|
97
97
|
export declare const TRANSFER_WITH_AUTHORIZATION_TYPEHASH: "0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267";
|
|
98
|
+
export declare const ERC6492_MAGIC_VALUE: "0x6492649264926492649264926492649264926492649264926492649264926492";
|
|
99
|
+
export declare const ERC20_BALANCE_OF_ABI: readonly [{
|
|
100
|
+
readonly name: "balanceOf";
|
|
101
|
+
readonly type: "function";
|
|
102
|
+
readonly stateMutability: "view";
|
|
103
|
+
readonly inputs: readonly [{
|
|
104
|
+
readonly name: "account";
|
|
105
|
+
readonly type: "address";
|
|
106
|
+
}];
|
|
107
|
+
readonly outputs: readonly [{
|
|
108
|
+
readonly name: "balance";
|
|
109
|
+
readonly type: "uint256";
|
|
110
|
+
}];
|
|
111
|
+
}];
|
|
98
112
|
//# sourceMappingURL=constants.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EACvB,4CAAqD,CAAC;AACxD,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAC1C,eAAO,MAAM,UAAU,aAAa,CAAC;AAGrC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa1B,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBf,CAAC;AAGX,eAAO,MAAM,oCAAoC,EAC/C,oEAA6E,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.d.ts","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,YAAY,EACvB,4CAAqD,CAAC;AACxD,eAAO,MAAM,UAAU,kBAAkB,CAAC;AAC1C,eAAO,MAAM,UAAU,aAAa,CAAC;AAGrC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAa1B,CAAC;AAEX,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiBf,CAAC;AAGX,eAAO,MAAM,oCAAoC,EAC/C,oEAA6E,CAAC;AAGhF,eAAO,MAAM,mBAAmB,EAC9B,oEAA6E,CAAC;AAGhF,eAAO,MAAM,oBAAoB;;;;;;;;;;;;EAQvB,CAAC"}
|
package/dist/shared/constants.js
CHANGED
|
@@ -36,4 +36,16 @@ export const OPERATOR_ABI = [
|
|
|
36
36
|
];
|
|
37
37
|
// ERC-3009 TransferWithAuthorization type hash
|
|
38
38
|
export const TRANSFER_WITH_AUTHORIZATION_TYPEHASH = "0x7c7c6cdb67a18743f49ec6fa9b35f50d52ed05cbed4cc592e13b44501c1a2267";
|
|
39
|
+
// EIP-6492 magic suffix (32 bytes) — appended to signatures from counterfactual smart wallets
|
|
40
|
+
export const ERC6492_MAGIC_VALUE = "0x6492649264926492649264926492649264926492649264926492649264926492";
|
|
41
|
+
// ERC-20 balanceOf ABI for balance checks
|
|
42
|
+
export const ERC20_BALANCE_OF_ABI = [
|
|
43
|
+
{
|
|
44
|
+
name: "balanceOf",
|
|
45
|
+
type: "function",
|
|
46
|
+
stateMutability: "view",
|
|
47
|
+
inputs: [{ name: "account", type: "address" }],
|
|
48
|
+
outputs: [{ name: "balance", type: "uint256" }],
|
|
49
|
+
},
|
|
50
|
+
];
|
|
39
51
|
//# sourceMappingURL=constants.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GACvB,4CAAqD,CAAC;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AAErC,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACtC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7C,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;CACzB,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,uBAAuB;aACpC;YACD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;SACzC;QACD,OAAO,EAAE,EAAE;KACZ;CACO,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oCAAoC,GAC/C,oEAA6E,CAAC"}
|
|
1
|
+
{"version":3,"file":"constants.js","sourceRoot":"","sources":["../../src/shared/constants.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,YAAY,GACvB,4CAAqD,CAAC;AACxD,MAAM,CAAC,MAAM,UAAU,GAAG,eAAe,CAAC;AAC1C,MAAM,CAAC,MAAM,UAAU,GAAG,UAAU,CAAC;AAErC,gFAAgF;AAChF,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;IACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;IAClC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;IACtC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC7C,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE;IAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;IACxC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;IACrC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;IACxC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;CACzB,CAAC;AAEX,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,YAAY;QAC7B,MAAM,EAAE;YACN;gBACE,IAAI,EAAE,aAAa;gBACnB,IAAI,EAAE,OAAO;gBACb,UAAU,EAAE,uBAAuB;aACpC;YACD,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;YACnC,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,SAAS,EAAE;YAC3C,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,OAAO,EAAE;SACzC;QACD,OAAO,EAAE,EAAE;KACZ;CACO,CAAC;AAEX,+CAA+C;AAC/C,MAAM,CAAC,MAAM,oCAAoC,GAC/C,oEAA6E,CAAC;AAEhF,8FAA8F;AAC9F,MAAM,CAAC,MAAM,mBAAmB,GAC9B,oEAA6E,CAAC;AAEhF,0CAA0C;AAC1C,MAAM,CAAC,MAAM,oBAAoB,GAAG;IAClC;QACE,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,UAAU;QAChB,eAAe,EAAE,MAAM;QACvB,MAAM,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;QAC9C,OAAO,EAAE,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;KAChD;CACO,CAAC"}
|
package/dist/shared/nonce.d.ts
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Nonce computation and ERC-3009 signing utilities
|
|
3
3
|
* Adapted from @agentokratia/x402-escrow (MIT)
|
|
4
4
|
*/
|
|
5
|
-
import {
|
|
5
|
+
import type { ClientEvmSigner } from "@x402/evm";
|
|
6
6
|
import type { EscrowExtra, EscrowPayload } from "./types.js";
|
|
7
7
|
/**
|
|
8
8
|
* Compute escrow nonce for ERC-3009 authorization
|
|
@@ -13,7 +13,7 @@ export declare function computeEscrowNonce(chainId: number, escrowAddress: `0x${
|
|
|
13
13
|
* Sign ERC-3009 ReceiveWithAuthorization
|
|
14
14
|
* Note: receiveWithAuthorization uses a different primary type than transferWithAuthorization
|
|
15
15
|
*/
|
|
16
|
-
export declare function signERC3009(
|
|
16
|
+
export declare function signERC3009(signer: ClientEvmSigner, authorization: EscrowPayload["authorization"], extra: EscrowExtra, tokenAddress: `0x${string}`, chainId: number): Promise<`0x${string}`>;
|
|
17
17
|
/**
|
|
18
18
|
* Verify ERC-3009 signature (facilitator-side)
|
|
19
19
|
* @param signer - The signer with verifyTypedData method
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonce.d.ts","sourceRoot":"","sources":["../../src/shared/nonce.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"nonce.d.ts","sourceRoot":"","sources":["../../src/shared/nonce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAEjD,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAW7D;;;GAGG;AACH,wBAAgB,kBAAkB,CAChC,OAAO,EAAE,MAAM,EACf,aAAa,EAAE,KAAK,MAAM,EAAE,EAC5B,WAAW,EAAE,aAAa,CAAC,aAAa,CAAC,GACxC,KAAK,MAAM,EAAE,CA+Cf;AAED;;;GAGG;AACH,wBAAsB,WAAW,CAC/B,MAAM,EAAE,eAAe,EACvB,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,EAC7C,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,KAAK,MAAM,EAAE,EAC3B,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,KAAK,MAAM,EAAE,CAAC,CAqCxB;AAED;;;;;;;GAOG;AACH,wBAAsB,sBAAsB,CAC1C,MAAM,EAAE;IACN,eAAe,EAAE,CAAC,IAAI,EAAE;QACtB,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;QACvB,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAChC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QAC/B,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACjC,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;KAC1B,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC;CACxB,EACD,aAAa,EAAE,aAAa,CAAC,eAAe,CAAC,EAC7C,SAAS,EAAE,KAAK,MAAM,EAAE,EACxB,KAAK,EAAE,WAAW,GAAG;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,EACxC,YAAY,EAAE,KAAK,MAAM,EAAE,GAC1B,OAAO,CAAC,OAAO,CAAC,CA2ClB;AAED;;GAEG;AACH,wBAAgB,YAAY,IAAI,KAAK,MAAM,EAAE,CAM5C"}
|
package/dist/shared/nonce.js
CHANGED
|
@@ -56,13 +56,13 @@ export function computeEscrowNonce(chainId, escrowAddress, paymentInfo) {
|
|
|
56
56
|
* Sign ERC-3009 ReceiveWithAuthorization
|
|
57
57
|
* Note: receiveWithAuthorization uses a different primary type than transferWithAuthorization
|
|
58
58
|
*/
|
|
59
|
-
export async function signERC3009(
|
|
59
|
+
export async function signERC3009(signer, authorization, extra, tokenAddress, chainId) {
|
|
60
60
|
// EIP-712 domain - name must match the token's EIP-712 domain
|
|
61
61
|
// (e.g., "USDC" for Base USDC, not "USD Coin")
|
|
62
62
|
const domain = {
|
|
63
63
|
name: extra.name,
|
|
64
64
|
version: extra.version ?? "2",
|
|
65
|
-
chainId
|
|
65
|
+
chainId,
|
|
66
66
|
verifyingContract: tokenAddress,
|
|
67
67
|
};
|
|
68
68
|
// ERC-3009 uses ReceiveWithAuthorization for receiveWithAuthorization()
|
|
@@ -84,8 +84,7 @@ export async function signERC3009(wallet, authorization, extra, tokenAddress) {
|
|
|
84
84
|
validBefore: BigInt(authorization.validBefore),
|
|
85
85
|
nonce: authorization.nonce,
|
|
86
86
|
};
|
|
87
|
-
return
|
|
88
|
-
account: wallet.account,
|
|
87
|
+
return signer.signTypedData({
|
|
89
88
|
domain,
|
|
90
89
|
types,
|
|
91
90
|
primaryType: "ReceiveWithAuthorization",
|
package/dist/shared/nonce.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"nonce.js","sourceRoot":"","sources":["../../src/shared/nonce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,SAAS,
|
|
1
|
+
{"version":3,"file":"nonce.js","sourceRoot":"","sources":["../../src/shared/nonce.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,MAAM,CAAC;AAEtD,OAAO,EAAE,YAAY,EAA2B,MAAM,gBAAgB,CAAC;AAGvE;;GAEG;AACH,MAAM,qBAAqB,GAAG,SAAS,CACrC,IAAI,WAAW,EAAE,CAAC,MAAM,CACtB,yOAAyO,CAC1O,CACF,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,kBAAkB,CAChC,OAAe,EACf,aAA4B,EAC5B,WAAyC;IAEzC,2DAA2D;IAC3D,MAAM,kBAAkB,GAAG,mBAAmB,CAC5C;QACE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,SAAS,EAAE;QACrC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,SAAS,EAAE;QACtC,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC7C,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,QAAQ,EAAE;QAC/C,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,QAAQ,EAAE;QACxC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,EAAE;QACrC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;KAClC,EACD;QACE,qBAAqB;QACrB,WAAW,CAAC,QAAQ;QACpB,YAAY,EAAE,iBAAiB;QAC/B,WAAW,CAAC,QAAQ;QACpB,WAAW,CAAC,KAAK;QACjB,MAAM,CAAC,WAAW,CAAC,SAAS,CAAC;QAC7B,WAAW,CAAC,iBAAiB;QAC7B,WAAW,CAAC,mBAAmB;QAC/B,WAAW,CAAC,YAAY;QACxB,WAAW,CAAC,SAAS;QACrB,WAAW,CAAC,SAAS;QACrB,WAAW,CAAC,WAAW;QACvB,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC;KACzB,CACF,CAAC;IACF,MAAM,eAAe,GAAG,SAAS,CAAC,kBAAkB,CAAC,CAAC;IAEtD,6DAA6D;IAC7D,MAAM,YAAY,GAAG,mBAAmB,CACtC;QACE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE;QACpC,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,EAAE;QACnC,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,SAAS,EAAE;KAC7C,EACD,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,aAAa,EAAE,eAAe,CAAC,CAClD,CAAC;IAEF,OAAO,SAAS,CAAC,YAAY,CAAC,CAAC;AACjC,CAAC;AAED;;;GAGG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAC/B,MAAuB,EACvB,aAA6C,EAC7C,KAAkB,EAClB,YAA2B,EAC3B,OAAe;IAEf,8DAA8D;IAC9D,+CAA+C;IAC/C,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,GAAG;QAC7B,OAAO;QACP,iBAAiB,EAAE,YAAY;KAChC,CAAC;IAEF,wEAAwE;IACxE,MAAM,KAAK,GAAG;QACZ,wBAAwB,EAAE;YACxB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;YACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SACnC;KACF,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,EAAE,EAAE,aAAa,CAAC,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;QAC5C,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;QAC9C,KAAK,EAAE,aAAa,CAAC,KAAK;KAC3B,CAAC;IAEF,OAAO,MAAM,CAAC,aAAa,CAAC;QAC1B,MAAM;QACN,KAAK;QACL,WAAW,EAAE,0BAA0B;QACvC,OAAO;KACR,CAAC,CAAC;AACL,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,MASC,EACD,aAA6C,EAC7C,SAAwB,EACxB,KAAwC,EACxC,YAA2B;IAE3B,8DAA8D;IAC9D,+CAA+C;IAC/C,MAAM,MAAM,GAAG;QACb,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,GAAG;QAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;QACtB,iBAAiB,EAAE,YAAY;KAChC,CAAC;IAEF,6DAA6D;IAC7D,MAAM,KAAK,GAAG;QACZ,wBAAwB,EAAE;YACxB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;YACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;YAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;YAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;YACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;YACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;SACnC;KACF,CAAC;IAEF,MAAM,OAAO,GAAG;QACd,IAAI,EAAE,aAAa,CAAC,IAAI;QACxB,EAAE,EAAE,aAAa,CAAC,EAAE;QACpB,KAAK,EAAE,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC;QAClC,UAAU,EAAE,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC;QAC5C,WAAW,EAAE,MAAM,CAAC,aAAa,CAAC,WAAW,CAAC;QAC9C,KAAK,EAAE,aAAa,CAAC,KAAK;KAC3B,CAAC;IAEF,IAAI,CAAC;QACH,OAAO,MAAM,MAAM,CAAC,eAAe,CAAC;YAClC,OAAO,EAAE,aAAa,CAAC,IAAI;YAC3B,MAAM;YACN,KAAK;YACL,WAAW,EAAE,0BAA0B;YACvC,OAAO;YACP,SAAS;SACV,CAAC,CAAC;IACL,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY;IAC1B,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,KAAK,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC;SAC1B,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC;SAC3C,IAAI,CAAC,EAAE,CAAC,EAAmB,CAAC;AACjC,CAAC"}
|
package/dist/shared/types.d.ts
CHANGED
|
@@ -1,3 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Type guard for EscrowPayload
|
|
3
|
+
*/
|
|
4
|
+
export declare function isEscrowPayload(value: unknown): value is EscrowPayload;
|
|
5
|
+
/**
|
|
6
|
+
* Type guard for EscrowExtra
|
|
7
|
+
*/
|
|
8
|
+
export declare function isEscrowExtra(value: unknown): value is EscrowExtra;
|
|
1
9
|
export interface EscrowExtra {
|
|
2
10
|
escrowAddress: `0x${string}`;
|
|
3
11
|
operatorAddress: `0x${string}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,aAAa,CAQtE;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,OAAO,GAAG,KAAK,IAAI,WAAW,CAQlE;AAGD,MAAM,WAAW,WAAW;IAC1B,aAAa,EAAE,KAAK,MAAM,EAAE,CAAC;IAC7B,eAAe,EAAE,KAAK,MAAM,EAAE,CAAC;IAC/B,cAAc,EAAE,KAAK,MAAM,EAAE,CAAC;IAC9B,gBAAgB,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IACjC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,wBAAwB,CAAC,EAAE,MAAM,CAAC;IAClC,0BAA0B,CAAC,EAAE,MAAM,CAAC;IACpC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAGD,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE;QACb,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;QACpB,EAAE,EAAE,KAAK,MAAM,EAAE,CAAC;QAClB,KAAK,EAAE,MAAM,CAAC;QACd,UAAU,EAAE,MAAM,CAAC;QACnB,WAAW,EAAE,MAAM,CAAC;QACpB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;KACtB,CAAC;IACF,SAAS,EAAE,KAAK,MAAM,EAAE,CAAC;IACzB,WAAW,EAAE;QACX,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;QACxB,QAAQ,EAAE,KAAK,MAAM,EAAE,CAAC;QACxB,KAAK,EAAE,KAAK,MAAM,EAAE,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,iBAAiB,EAAE,MAAM,CAAC;QAC1B,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,KAAK,MAAM,EAAE,CAAC;QAC3B,IAAI,EAAE,KAAK,MAAM,EAAE,CAAC;KACrB,CAAC;CACH"}
|
package/dist/shared/types.js
CHANGED
|
@@ -1,2 +1,21 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Type guard for EscrowPayload
|
|
3
|
+
*/
|
|
4
|
+
export function isEscrowPayload(value) {
|
|
5
|
+
return (typeof value === "object" &&
|
|
6
|
+
value !== null &&
|
|
7
|
+
"authorization" in value &&
|
|
8
|
+
"signature" in value &&
|
|
9
|
+
"paymentInfo" in value);
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Type guard for EscrowExtra
|
|
13
|
+
*/
|
|
14
|
+
export function isEscrowExtra(value) {
|
|
15
|
+
return (typeof value === "object" &&
|
|
16
|
+
value !== null &&
|
|
17
|
+
"escrowAddress" in value &&
|
|
18
|
+
"operatorAddress" in value &&
|
|
19
|
+
"tokenCollector" in value);
|
|
20
|
+
}
|
|
2
21
|
//# sourceMappingURL=types.js.map
|
package/dist/shared/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/shared/types.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,KAAc;IAC5C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,eAAe,IAAI,KAAK;QACxB,WAAW,IAAI,KAAK;QACpB,aAAa,IAAI,KAAK,CACvB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAc;IAC1C,OAAO,CACL,OAAO,KAAK,KAAK,QAAQ;QACzB,KAAK,KAAK,IAAI;QACd,eAAe,IAAI,KAAK;QACxB,iBAAiB,IAAI,KAAK;QAC1B,gBAAgB,IAAI,KAAK,CAC1B,CAAC;AACJ,CAAC"}
|