@bankofai/x402-evm 1.0.0-beta.0

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.
Files changed (176) hide show
  1. package/README.md +172 -0
  2. package/dist/cjs/auth-capture/client/index.d.ts +44 -0
  3. package/dist/cjs/auth-capture/client/index.js +298 -0
  4. package/dist/cjs/auth-capture/client/index.js.map +1 -0
  5. package/dist/cjs/batch-settlement/client/file-storage.d.ts +47 -0
  6. package/dist/cjs/batch-settlement/client/file-storage.js +116 -0
  7. package/dist/cjs/batch-settlement/client/file-storage.js.map +1 -0
  8. package/dist/cjs/batch-settlement/client/index.d.ts +111 -0
  9. package/dist/cjs/batch-settlement/client/index.js +1565 -0
  10. package/dist/cjs/batch-settlement/client/index.js.map +1 -0
  11. package/dist/cjs/batch-settlement/facilitator/index.d.ts +72 -0
  12. package/dist/cjs/batch-settlement/facilitator/index.js +2102 -0
  13. package/dist/cjs/batch-settlement/facilitator/index.js.map +1 -0
  14. package/dist/cjs/batch-settlement/server/file-storage.d.ts +53 -0
  15. package/dist/cjs/batch-settlement/server/file-storage.js +181 -0
  16. package/dist/cjs/batch-settlement/server/file-storage.js.map +1 -0
  17. package/dist/cjs/batch-settlement/server/index.d.ts +491 -0
  18. package/dist/cjs/batch-settlement/server/index.js +1978 -0
  19. package/dist/cjs/batch-settlement/server/index.js.map +1 -0
  20. package/dist/cjs/batch-settlement/server/redis-storage.d.ts +87 -0
  21. package/dist/cjs/batch-settlement/server/redis-storage.js +181 -0
  22. package/dist/cjs/batch-settlement/server/redis-storage.js.map +1 -0
  23. package/dist/cjs/client/agent-wallet.d.ts +69 -0
  24. package/dist/cjs/client/agent-wallet.js +84 -0
  25. package/dist/cjs/client/agent-wallet.js.map +1 -0
  26. package/dist/cjs/exact/client/index.d.ts +63 -0
  27. package/dist/cjs/exact/client/index.js +739 -0
  28. package/dist/cjs/exact/client/index.js.map +1 -0
  29. package/dist/cjs/exact/facilitator/index.d.ts +141 -0
  30. package/dist/cjs/exact/facilitator/index.js +1989 -0
  31. package/dist/cjs/exact/facilitator/index.js.map +1 -0
  32. package/dist/cjs/exact/server/index.d.ts +118 -0
  33. package/dist/cjs/exact/server/index.js +326 -0
  34. package/dist/cjs/exact/server/index.js.map +1 -0
  35. package/dist/cjs/exact/v1/client/index.d.ts +38 -0
  36. package/dist/cjs/exact/v1/client/index.js +193 -0
  37. package/dist/cjs/exact/v1/client/index.js.map +1 -0
  38. package/dist/cjs/exact/v1/facilitator/index.d.ts +84 -0
  39. package/dist/cjs/exact/v1/facilitator/index.js +739 -0
  40. package/dist/cjs/exact/v1/facilitator/index.js.map +1 -0
  41. package/dist/cjs/facilitator/agent-wallet.d.ts +109 -0
  42. package/dist/cjs/facilitator/agent-wallet.js +105 -0
  43. package/dist/cjs/facilitator/agent-wallet.js.map +1 -0
  44. package/dist/cjs/index.d.ts +338 -0
  45. package/dist/cjs/index.js +2860 -0
  46. package/dist/cjs/index.js.map +1 -0
  47. package/dist/cjs/permit2-DK5A8alk.d.ts +729 -0
  48. package/dist/cjs/permit2-DhJRUcgY.d.ts +729 -0
  49. package/dist/cjs/rpc-DULZzRne.d.ts +13 -0
  50. package/dist/cjs/scheme-7ehldYoO.d.ts +307 -0
  51. package/dist/cjs/scheme-BjBJzHF7.d.ts +307 -0
  52. package/dist/cjs/scheme-DWgpkDgz.d.ts +47 -0
  53. package/dist/cjs/signer-BFelv8DL.d.ts +170 -0
  54. package/dist/cjs/storage-6W5MO46W.d.ts +50 -0
  55. package/dist/cjs/storage-CHNote8s.d.ts +81 -0
  56. package/dist/cjs/storage-DjCv5IPh.d.ts +81 -0
  57. package/dist/cjs/types-CKd3Xoi1.d.ts +180 -0
  58. package/dist/cjs/types-DIt9uAUy.d.ts +180 -0
  59. package/dist/cjs/upto/client/index.d.ts +34 -0
  60. package/dist/cjs/upto/client/index.js +509 -0
  61. package/dist/cjs/upto/client/index.js.map +1 -0
  62. package/dist/cjs/upto/facilitator/index.d.ts +54 -0
  63. package/dist/cjs/upto/facilitator/index.js +1313 -0
  64. package/dist/cjs/upto/facilitator/index.js.map +1 -0
  65. package/dist/cjs/upto/server/index.d.ts +69 -0
  66. package/dist/cjs/upto/server/index.js +296 -0
  67. package/dist/cjs/upto/server/index.js.map +1 -0
  68. package/dist/cjs/v1/index.d.ts +40 -0
  69. package/dist/cjs/v1/index.js +199 -0
  70. package/dist/cjs/v1/index.js.map +1 -0
  71. package/dist/esm/auth-capture/client/index.d.mts +44 -0
  72. package/dist/esm/auth-capture/client/index.mjs +8 -0
  73. package/dist/esm/auth-capture/client/index.mjs.map +1 -0
  74. package/dist/esm/batch-settlement/client/file-storage.d.mts +47 -0
  75. package/dist/esm/batch-settlement/client/file-storage.mjs +63 -0
  76. package/dist/esm/batch-settlement/client/file-storage.mjs.map +1 -0
  77. package/dist/esm/batch-settlement/client/index.d.mts +111 -0
  78. package/dist/esm/batch-settlement/client/index.mjs +58 -0
  79. package/dist/esm/batch-settlement/client/index.mjs.map +1 -0
  80. package/dist/esm/batch-settlement/facilitator/index.d.mts +72 -0
  81. package/dist/esm/batch-settlement/facilitator/index.mjs +1252 -0
  82. package/dist/esm/batch-settlement/facilitator/index.mjs.map +1 -0
  83. package/dist/esm/batch-settlement/server/file-storage.d.mts +53 -0
  84. package/dist/esm/batch-settlement/server/file-storage.mjs +128 -0
  85. package/dist/esm/batch-settlement/server/file-storage.mjs.map +1 -0
  86. package/dist/esm/batch-settlement/server/index.d.mts +491 -0
  87. package/dist/esm/batch-settlement/server/index.mjs +1640 -0
  88. package/dist/esm/batch-settlement/server/index.mjs.map +1 -0
  89. package/dist/esm/batch-settlement/server/redis-storage.d.mts +87 -0
  90. package/dist/esm/batch-settlement/server/redis-storage.mjs +156 -0
  91. package/dist/esm/batch-settlement/server/redis-storage.mjs.map +1 -0
  92. package/dist/esm/chunk-2EUQTNJO.mjs +38 -0
  93. package/dist/esm/chunk-2EUQTNJO.mjs.map +1 -0
  94. package/dist/esm/chunk-3WZF6722.mjs +36 -0
  95. package/dist/esm/chunk-3WZF6722.mjs.map +1 -0
  96. package/dist/esm/chunk-E4Z7PNXC.mjs +275 -0
  97. package/dist/esm/chunk-E4Z7PNXC.mjs.map +1 -0
  98. package/dist/esm/chunk-GQVMVP4N.mjs +911 -0
  99. package/dist/esm/chunk-GQVMVP4N.mjs.map +1 -0
  100. package/dist/esm/chunk-H2EYJIZL.mjs +489 -0
  101. package/dist/esm/chunk-H2EYJIZL.mjs.map +1 -0
  102. package/dist/esm/chunk-H3KPLYGI.mjs +152 -0
  103. package/dist/esm/chunk-H3KPLYGI.mjs.map +1 -0
  104. package/dist/esm/chunk-HYABYUBD.mjs +432 -0
  105. package/dist/esm/chunk-HYABYUBD.mjs.map +1 -0
  106. package/dist/esm/chunk-I2DVUHM5.mjs +123 -0
  107. package/dist/esm/chunk-I2DVUHM5.mjs.map +1 -0
  108. package/dist/esm/chunk-JK7SLLF7.mjs +34 -0
  109. package/dist/esm/chunk-JK7SLLF7.mjs.map +1 -0
  110. package/dist/esm/chunk-JNT7C46S.mjs +352 -0
  111. package/dist/esm/chunk-JNT7C46S.mjs.map +1 -0
  112. package/dist/esm/chunk-MACPBXCT.mjs +415 -0
  113. package/dist/esm/chunk-MACPBXCT.mjs.map +1 -0
  114. package/dist/esm/chunk-P3QOX3QZ.mjs +113 -0
  115. package/dist/esm/chunk-P3QOX3QZ.mjs.map +1 -0
  116. package/dist/esm/chunk-QVATVA3J.mjs +47 -0
  117. package/dist/esm/chunk-QVATVA3J.mjs.map +1 -0
  118. package/dist/esm/chunk-SHJFA25H.mjs +159 -0
  119. package/dist/esm/chunk-SHJFA25H.mjs.map +1 -0
  120. package/dist/esm/chunk-TW7Z65AO.mjs +34 -0
  121. package/dist/esm/chunk-TW7Z65AO.mjs.map +1 -0
  122. package/dist/esm/chunk-U4HCGTLU.mjs +35 -0
  123. package/dist/esm/chunk-U4HCGTLU.mjs.map +1 -0
  124. package/dist/esm/chunk-VS3RYAYE.mjs +80 -0
  125. package/dist/esm/chunk-VS3RYAYE.mjs.map +1 -0
  126. package/dist/esm/chunk-W6ON4LG2.mjs +39 -0
  127. package/dist/esm/chunk-W6ON4LG2.mjs.map +1 -0
  128. package/dist/esm/chunk-XG2JLZVJ.mjs +627 -0
  129. package/dist/esm/chunk-XG2JLZVJ.mjs.map +1 -0
  130. package/dist/esm/chunk-ZCJRY5LQ.mjs +162 -0
  131. package/dist/esm/chunk-ZCJRY5LQ.mjs.map +1 -0
  132. package/dist/esm/client/agent-wallet.d.mts +69 -0
  133. package/dist/esm/client/agent-wallet.mjs +36 -0
  134. package/dist/esm/client/agent-wallet.mjs.map +1 -0
  135. package/dist/esm/exact/client/index.d.mts +63 -0
  136. package/dist/esm/exact/client/index.mjs +25 -0
  137. package/dist/esm/exact/client/index.mjs.map +1 -0
  138. package/dist/esm/exact/facilitator/index.d.mts +141 -0
  139. package/dist/esm/exact/facilitator/index.mjs +694 -0
  140. package/dist/esm/exact/facilitator/index.mjs.map +1 -0
  141. package/dist/esm/exact/server/index.d.mts +118 -0
  142. package/dist/esm/exact/server/index.mjs +153 -0
  143. package/dist/esm/exact/server/index.mjs.map +1 -0
  144. package/dist/esm/exact/v1/client/index.d.mts +38 -0
  145. package/dist/esm/exact/v1/client/index.mjs +12 -0
  146. package/dist/esm/exact/v1/client/index.mjs.map +1 -0
  147. package/dist/esm/exact/v1/facilitator/index.d.mts +84 -0
  148. package/dist/esm/exact/v1/facilitator/index.mjs +12 -0
  149. package/dist/esm/exact/v1/facilitator/index.mjs.map +1 -0
  150. package/dist/esm/facilitator/agent-wallet.d.mts +109 -0
  151. package/dist/esm/facilitator/agent-wallet.mjs +74 -0
  152. package/dist/esm/facilitator/agent-wallet.mjs.map +1 -0
  153. package/dist/esm/index.d.mts +338 -0
  154. package/dist/esm/index.mjs +144 -0
  155. package/dist/esm/index.mjs.map +1 -0
  156. package/dist/esm/permit2-DhJRUcgY.d.mts +729 -0
  157. package/dist/esm/rpc-DULZzRne.d.mts +13 -0
  158. package/dist/esm/scheme-CkNhpXrG.d.mts +307 -0
  159. package/dist/esm/scheme-D8ZbykGV.d.mts +47 -0
  160. package/dist/esm/signer-BFelv8DL.d.mts +170 -0
  161. package/dist/esm/storage-6W5MO46W.d.mts +50 -0
  162. package/dist/esm/storage-BEzTEiUr.d.mts +81 -0
  163. package/dist/esm/types-DIt9uAUy.d.mts +180 -0
  164. package/dist/esm/upto/client/index.d.mts +34 -0
  165. package/dist/esm/upto/client/index.mjs +22 -0
  166. package/dist/esm/upto/client/index.mjs.map +1 -0
  167. package/dist/esm/upto/facilitator/index.d.mts +54 -0
  168. package/dist/esm/upto/facilitator/index.mjs +507 -0
  169. package/dist/esm/upto/facilitator/index.mjs.map +1 -0
  170. package/dist/esm/upto/server/index.d.mts +69 -0
  171. package/dist/esm/upto/server/index.mjs +124 -0
  172. package/dist/esm/upto/server/index.mjs.map +1 -0
  173. package/dist/esm/v1/index.d.mts +40 -0
  174. package/dist/esm/v1/index.mjs +18 -0
  175. package/dist/esm/v1/index.mjs.map +1 -0
  176. package/package.json +250 -0
@@ -0,0 +1,415 @@
1
+ // src/constants.ts
2
+ var authorizationTypes = {
3
+ TransferWithAuthorization: [
4
+ { name: "from", type: "address" },
5
+ { name: "to", type: "address" },
6
+ { name: "value", type: "uint256" },
7
+ { name: "validAfter", type: "uint256" },
8
+ { name: "validBefore", type: "uint256" },
9
+ { name: "nonce", type: "bytes32" }
10
+ ]
11
+ };
12
+ var permit2WitnessTypes = {
13
+ PermitWitnessTransferFrom: [
14
+ { name: "permitted", type: "TokenPermissions" },
15
+ { name: "spender", type: "address" },
16
+ { name: "nonce", type: "uint256" },
17
+ { name: "deadline", type: "uint256" },
18
+ { name: "witness", type: "Witness" }
19
+ ],
20
+ TokenPermissions: [
21
+ { name: "token", type: "address" },
22
+ { name: "amount", type: "uint256" }
23
+ ],
24
+ Witness: [
25
+ { name: "to", type: "address" },
26
+ { name: "validAfter", type: "uint256" }
27
+ ]
28
+ };
29
+ var uptoPermit2WitnessTypes = {
30
+ PermitWitnessTransferFrom: [
31
+ { name: "permitted", type: "TokenPermissions" },
32
+ { name: "spender", type: "address" },
33
+ { name: "nonce", type: "uint256" },
34
+ { name: "deadline", type: "uint256" },
35
+ { name: "witness", type: "Witness" }
36
+ ],
37
+ TokenPermissions: [
38
+ { name: "token", type: "address" },
39
+ { name: "amount", type: "uint256" }
40
+ ],
41
+ Witness: [
42
+ { name: "to", type: "address" },
43
+ { name: "facilitator", type: "address" },
44
+ { name: "validAfter", type: "uint256" }
45
+ ]
46
+ };
47
+ var eip3009ABI = [
48
+ {
49
+ inputs: [
50
+ { name: "from", type: "address" },
51
+ { name: "to", type: "address" },
52
+ { name: "value", type: "uint256" },
53
+ { name: "validAfter", type: "uint256" },
54
+ { name: "validBefore", type: "uint256" },
55
+ { name: "nonce", type: "bytes32" },
56
+ { name: "v", type: "uint8" },
57
+ { name: "r", type: "bytes32" },
58
+ { name: "s", type: "bytes32" }
59
+ ],
60
+ name: "transferWithAuthorization",
61
+ outputs: [],
62
+ stateMutability: "nonpayable",
63
+ type: "function"
64
+ },
65
+ {
66
+ inputs: [
67
+ { name: "from", type: "address" },
68
+ { name: "to", type: "address" },
69
+ { name: "value", type: "uint256" },
70
+ { name: "validAfter", type: "uint256" },
71
+ { name: "validBefore", type: "uint256" },
72
+ { name: "nonce", type: "bytes32" },
73
+ { name: "signature", type: "bytes" }
74
+ ],
75
+ name: "transferWithAuthorization",
76
+ outputs: [],
77
+ stateMutability: "nonpayable",
78
+ type: "function"
79
+ },
80
+ {
81
+ inputs: [{ name: "account", type: "address" }],
82
+ name: "balanceOf",
83
+ outputs: [{ name: "", type: "uint256" }],
84
+ stateMutability: "view",
85
+ type: "function"
86
+ },
87
+ {
88
+ inputs: [],
89
+ name: "version",
90
+ outputs: [{ name: "", type: "string" }],
91
+ stateMutability: "view",
92
+ type: "function"
93
+ },
94
+ {
95
+ inputs: [],
96
+ name: "name",
97
+ outputs: [{ name: "", type: "string" }],
98
+ stateMutability: "view",
99
+ type: "function"
100
+ },
101
+ {
102
+ inputs: [
103
+ { name: "authorizer", type: "address" },
104
+ { name: "nonce", type: "bytes32" }
105
+ ],
106
+ name: "authorizationState",
107
+ outputs: [{ name: "", type: "bool" }],
108
+ stateMutability: "view",
109
+ type: "function"
110
+ }
111
+ ];
112
+ var eip2612PermitTypes = {
113
+ Permit: [
114
+ { name: "owner", type: "address" },
115
+ { name: "spender", type: "address" },
116
+ { name: "value", type: "uint256" },
117
+ { name: "nonce", type: "uint256" },
118
+ { name: "deadline", type: "uint256" }
119
+ ]
120
+ };
121
+ var eip2612NoncesAbi = [
122
+ {
123
+ type: "function",
124
+ name: "nonces",
125
+ inputs: [{ name: "owner", type: "address" }],
126
+ outputs: [{ type: "uint256" }],
127
+ stateMutability: "view"
128
+ }
129
+ ];
130
+ var erc20ApproveAbi = [
131
+ {
132
+ type: "function",
133
+ name: "approve",
134
+ inputs: [
135
+ { name: "spender", type: "address" },
136
+ { name: "amount", type: "uint256" }
137
+ ],
138
+ outputs: [{ type: "bool" }],
139
+ stateMutability: "nonpayable"
140
+ }
141
+ ];
142
+ var erc20AllowanceAbi = [
143
+ {
144
+ type: "function",
145
+ name: "allowance",
146
+ inputs: [
147
+ { name: "owner", type: "address" },
148
+ { name: "spender", type: "address" }
149
+ ],
150
+ outputs: [{ type: "uint256" }],
151
+ stateMutability: "view"
152
+ }
153
+ ];
154
+ var ERC20_APPROVE_GAS_LIMIT = 70000n;
155
+ var DEFAULT_MAX_FEE_PER_GAS = 1000000000n;
156
+ var DEFAULT_MAX_PRIORITY_FEE_PER_GAS = 100000000n;
157
+ var PERMIT2_ADDRESS = "0x000000000022D473030F116dDEE9F6B43aC78BA3";
158
+ var x402ExactPermit2ProxyAddress = "0x402085c248EeA27D92E8b30b2C58ed07f9E20001";
159
+ var x402UptoPermit2ProxyAddress = "0x4020A4f3b7b90ccA423B9fabCc0CE57C6C240002";
160
+ var permit2WitnessABIComponents = [
161
+ { name: "to", type: "address", internalType: "address" },
162
+ { name: "validAfter", type: "uint256", internalType: "uint256" }
163
+ ];
164
+ var uptoPermit2WitnessABIComponents = [
165
+ { name: "to", type: "address", internalType: "address" },
166
+ { name: "facilitator", type: "address", internalType: "address" },
167
+ { name: "validAfter", type: "uint256", internalType: "uint256" }
168
+ ];
169
+ var x402UptoPermit2ProxyABI = [
170
+ {
171
+ type: "function",
172
+ name: "PERMIT2",
173
+ inputs: [],
174
+ outputs: [{ name: "", type: "address", internalType: "contract ISignatureTransfer" }],
175
+ stateMutability: "view"
176
+ },
177
+ {
178
+ type: "function",
179
+ name: "WITNESS_TYPEHASH",
180
+ inputs: [],
181
+ outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
182
+ stateMutability: "view"
183
+ },
184
+ {
185
+ type: "function",
186
+ name: "WITNESS_TYPE_STRING",
187
+ inputs: [],
188
+ outputs: [{ name: "", type: "string", internalType: "string" }],
189
+ stateMutability: "view"
190
+ },
191
+ {
192
+ type: "function",
193
+ name: "settle",
194
+ inputs: [
195
+ {
196
+ name: "permit",
197
+ type: "tuple",
198
+ internalType: "struct ISignatureTransfer.PermitTransferFrom",
199
+ components: [
200
+ {
201
+ name: "permitted",
202
+ type: "tuple",
203
+ internalType: "struct ISignatureTransfer.TokenPermissions",
204
+ components: [
205
+ { name: "token", type: "address", internalType: "address" },
206
+ { name: "amount", type: "uint256", internalType: "uint256" }
207
+ ]
208
+ },
209
+ { name: "nonce", type: "uint256", internalType: "uint256" },
210
+ { name: "deadline", type: "uint256", internalType: "uint256" }
211
+ ]
212
+ },
213
+ { name: "amount", type: "uint256", internalType: "uint256" },
214
+ { name: "owner", type: "address", internalType: "address" },
215
+ {
216
+ name: "witness",
217
+ type: "tuple",
218
+ internalType: "struct x402UptoPermit2Proxy.Witness",
219
+ components: uptoPermit2WitnessABIComponents
220
+ },
221
+ { name: "signature", type: "bytes", internalType: "bytes" }
222
+ ],
223
+ outputs: [],
224
+ stateMutability: "nonpayable"
225
+ },
226
+ {
227
+ type: "function",
228
+ name: "settleWithPermit",
229
+ inputs: [
230
+ {
231
+ name: "permit2612",
232
+ type: "tuple",
233
+ internalType: "struct x402UptoPermit2Proxy.EIP2612Permit",
234
+ components: [
235
+ { name: "value", type: "uint256", internalType: "uint256" },
236
+ { name: "deadline", type: "uint256", internalType: "uint256" },
237
+ { name: "r", type: "bytes32", internalType: "bytes32" },
238
+ { name: "s", type: "bytes32", internalType: "bytes32" },
239
+ { name: "v", type: "uint8", internalType: "uint8" }
240
+ ]
241
+ },
242
+ {
243
+ name: "permit",
244
+ type: "tuple",
245
+ internalType: "struct ISignatureTransfer.PermitTransferFrom",
246
+ components: [
247
+ {
248
+ name: "permitted",
249
+ type: "tuple",
250
+ internalType: "struct ISignatureTransfer.TokenPermissions",
251
+ components: [
252
+ { name: "token", type: "address", internalType: "address" },
253
+ { name: "amount", type: "uint256", internalType: "uint256" }
254
+ ]
255
+ },
256
+ { name: "nonce", type: "uint256", internalType: "uint256" },
257
+ { name: "deadline", type: "uint256", internalType: "uint256" }
258
+ ]
259
+ },
260
+ { name: "amount", type: "uint256", internalType: "uint256" },
261
+ { name: "owner", type: "address", internalType: "address" },
262
+ {
263
+ name: "witness",
264
+ type: "tuple",
265
+ internalType: "struct x402UptoPermit2Proxy.Witness",
266
+ components: uptoPermit2WitnessABIComponents
267
+ },
268
+ { name: "signature", type: "bytes", internalType: "bytes" }
269
+ ],
270
+ outputs: [],
271
+ stateMutability: "nonpayable"
272
+ },
273
+ { type: "event", name: "Settled", inputs: [], anonymous: false },
274
+ { type: "event", name: "SettledWithPermit", inputs: [], anonymous: false },
275
+ { type: "error", name: "AmountExceedsPermitted", inputs: [] },
276
+ { type: "error", name: "InvalidDestination", inputs: [] },
277
+ { type: "error", name: "InvalidOwner", inputs: [] },
278
+ { type: "error", name: "InvalidPermit2Address", inputs: [] },
279
+ { type: "error", name: "PaymentTooEarly", inputs: [] },
280
+ { type: "error", name: "Permit2612AmountMismatch", inputs: [] },
281
+ { type: "error", name: "ReentrancyGuardReentrantCall", inputs: [] },
282
+ { type: "error", name: "UnauthorizedFacilitator", inputs: [] }
283
+ ];
284
+ var x402ExactPermit2ProxyABI = [
285
+ {
286
+ type: "function",
287
+ name: "PERMIT2",
288
+ inputs: [],
289
+ outputs: [{ name: "", type: "address", internalType: "contract ISignatureTransfer" }],
290
+ stateMutability: "view"
291
+ },
292
+ {
293
+ type: "function",
294
+ name: "WITNESS_TYPEHASH",
295
+ inputs: [],
296
+ outputs: [{ name: "", type: "bytes32", internalType: "bytes32" }],
297
+ stateMutability: "view"
298
+ },
299
+ {
300
+ type: "function",
301
+ name: "WITNESS_TYPE_STRING",
302
+ inputs: [],
303
+ outputs: [{ name: "", type: "string", internalType: "string" }],
304
+ stateMutability: "view"
305
+ },
306
+ {
307
+ type: "function",
308
+ name: "settle",
309
+ inputs: [
310
+ {
311
+ name: "permit",
312
+ type: "tuple",
313
+ internalType: "struct ISignatureTransfer.PermitTransferFrom",
314
+ components: [
315
+ {
316
+ name: "permitted",
317
+ type: "tuple",
318
+ internalType: "struct ISignatureTransfer.TokenPermissions",
319
+ components: [
320
+ { name: "token", type: "address", internalType: "address" },
321
+ { name: "amount", type: "uint256", internalType: "uint256" }
322
+ ]
323
+ },
324
+ { name: "nonce", type: "uint256", internalType: "uint256" },
325
+ { name: "deadline", type: "uint256", internalType: "uint256" }
326
+ ]
327
+ },
328
+ { name: "owner", type: "address", internalType: "address" },
329
+ {
330
+ name: "witness",
331
+ type: "tuple",
332
+ internalType: "struct x402ExactPermit2Proxy.Witness",
333
+ components: permit2WitnessABIComponents
334
+ },
335
+ { name: "signature", type: "bytes", internalType: "bytes" }
336
+ ],
337
+ outputs: [],
338
+ stateMutability: "nonpayable"
339
+ },
340
+ {
341
+ type: "function",
342
+ name: "settleWithPermit",
343
+ inputs: [
344
+ {
345
+ name: "permit2612",
346
+ type: "tuple",
347
+ internalType: "struct x402ExactPermit2Proxy.EIP2612Permit",
348
+ components: [
349
+ { name: "value", type: "uint256", internalType: "uint256" },
350
+ { name: "deadline", type: "uint256", internalType: "uint256" },
351
+ { name: "r", type: "bytes32", internalType: "bytes32" },
352
+ { name: "s", type: "bytes32", internalType: "bytes32" },
353
+ { name: "v", type: "uint8", internalType: "uint8" }
354
+ ]
355
+ },
356
+ {
357
+ name: "permit",
358
+ type: "tuple",
359
+ internalType: "struct ISignatureTransfer.PermitTransferFrom",
360
+ components: [
361
+ {
362
+ name: "permitted",
363
+ type: "tuple",
364
+ internalType: "struct ISignatureTransfer.TokenPermissions",
365
+ components: [
366
+ { name: "token", type: "address", internalType: "address" },
367
+ { name: "amount", type: "uint256", internalType: "uint256" }
368
+ ]
369
+ },
370
+ { name: "nonce", type: "uint256", internalType: "uint256" },
371
+ { name: "deadline", type: "uint256", internalType: "uint256" }
372
+ ]
373
+ },
374
+ { name: "owner", type: "address", internalType: "address" },
375
+ {
376
+ name: "witness",
377
+ type: "tuple",
378
+ internalType: "struct x402ExactPermit2Proxy.Witness",
379
+ components: permit2WitnessABIComponents
380
+ },
381
+ { name: "signature", type: "bytes", internalType: "bytes" }
382
+ ],
383
+ outputs: [],
384
+ stateMutability: "nonpayable"
385
+ },
386
+ { type: "event", name: "Settled", inputs: [], anonymous: false },
387
+ { type: "event", name: "SettledWithPermit", inputs: [], anonymous: false },
388
+ { type: "error", name: "InvalidAmount", inputs: [] },
389
+ { type: "error", name: "InvalidDestination", inputs: [] },
390
+ { type: "error", name: "InvalidOwner", inputs: [] },
391
+ { type: "error", name: "InvalidPermit2Address", inputs: [] },
392
+ { type: "error", name: "PaymentTooEarly", inputs: [] },
393
+ { type: "error", name: "Permit2612AmountMismatch", inputs: [] },
394
+ { type: "error", name: "ReentrancyGuardReentrantCall", inputs: [] }
395
+ ];
396
+
397
+ export {
398
+ authorizationTypes,
399
+ permit2WitnessTypes,
400
+ uptoPermit2WitnessTypes,
401
+ eip3009ABI,
402
+ eip2612PermitTypes,
403
+ eip2612NoncesAbi,
404
+ erc20ApproveAbi,
405
+ erc20AllowanceAbi,
406
+ ERC20_APPROVE_GAS_LIMIT,
407
+ DEFAULT_MAX_FEE_PER_GAS,
408
+ DEFAULT_MAX_PRIORITY_FEE_PER_GAS,
409
+ PERMIT2_ADDRESS,
410
+ x402ExactPermit2ProxyAddress,
411
+ x402UptoPermit2ProxyAddress,
412
+ x402UptoPermit2ProxyABI,
413
+ x402ExactPermit2ProxyABI
414
+ };
415
+ //# sourceMappingURL=chunk-MACPBXCT.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/constants.ts"],"sourcesContent":["// EIP-3009 TransferWithAuthorization types for EIP-712 signing\nexport const authorizationTypes = {\n TransferWithAuthorization: [\n { name: \"from\", type: \"address\" },\n { name: \"to\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"validAfter\", type: \"uint256\" },\n { name: \"validBefore\", type: \"uint256\" },\n { name: \"nonce\", type: \"bytes32\" },\n ],\n} as const;\n\n/**\n * Permit2 EIP-712 types for signing PermitWitnessTransferFrom (exact scheme).\n * Must match the exact format expected by the Permit2 contract.\n * Note: Types must be in ALPHABETICAL order after the primary type (TokenPermissions < Witness).\n */\nexport const permit2WitnessTypes = {\n PermitWitnessTransferFrom: [\n { name: \"permitted\", type: \"TokenPermissions\" },\n { name: \"spender\", type: \"address\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n { name: \"witness\", type: \"Witness\" },\n ],\n TokenPermissions: [\n { name: \"token\", type: \"address\" },\n { name: \"amount\", type: \"uint256\" },\n ],\n Witness: [\n { name: \"to\", type: \"address\" },\n { name: \"validAfter\", type: \"uint256\" },\n ],\n} as const;\n\n/**\n * Permit2 EIP-712 types for signing PermitWitnessTransferFrom (upto scheme).\n * The upto witness includes a `facilitator` field that the exact witness does not.\n * This ensures only the authorized facilitator can settle the payment.\n * Must match: Witness(address to,address facilitator,uint256 validAfter)\n */\nexport const uptoPermit2WitnessTypes = {\n PermitWitnessTransferFrom: [\n { name: \"permitted\", type: \"TokenPermissions\" },\n { name: \"spender\", type: \"address\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n { name: \"witness\", type: \"Witness\" },\n ],\n TokenPermissions: [\n { name: \"token\", type: \"address\" },\n { name: \"amount\", type: \"uint256\" },\n ],\n Witness: [\n { name: \"to\", type: \"address\" },\n { name: \"facilitator\", type: \"address\" },\n { name: \"validAfter\", type: \"uint256\" },\n ],\n} as const;\n\n// EIP3009 ABI for transferWithAuthorization function\nexport const eip3009ABI = [\n {\n inputs: [\n { name: \"from\", type: \"address\" },\n { name: \"to\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"validAfter\", type: \"uint256\" },\n { name: \"validBefore\", type: \"uint256\" },\n { name: \"nonce\", type: \"bytes32\" },\n { name: \"v\", type: \"uint8\" },\n { name: \"r\", type: \"bytes32\" },\n { name: \"s\", type: \"bytes32\" },\n ],\n name: \"transferWithAuthorization\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [\n { name: \"from\", type: \"address\" },\n { name: \"to\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"validAfter\", type: \"uint256\" },\n { name: \"validBefore\", type: \"uint256\" },\n { name: \"nonce\", type: \"bytes32\" },\n { name: \"signature\", type: \"bytes\" },\n ],\n name: \"transferWithAuthorization\",\n outputs: [],\n stateMutability: \"nonpayable\",\n type: \"function\",\n },\n {\n inputs: [{ name: \"account\", type: \"address\" }],\n name: \"balanceOf\",\n outputs: [{ name: \"\", type: \"uint256\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"version\",\n outputs: [{ name: \"\", type: \"string\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [],\n name: \"name\",\n outputs: [{ name: \"\", type: \"string\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n {\n inputs: [\n { name: \"authorizer\", type: \"address\" },\n { name: \"nonce\", type: \"bytes32\" },\n ],\n name: \"authorizationState\",\n outputs: [{ name: \"\", type: \"bool\" }],\n stateMutability: \"view\",\n type: \"function\",\n },\n] as const;\n\n/**\n * EIP-2612 Permit EIP-712 types for signing token.permit().\n */\nexport const eip2612PermitTypes = {\n Permit: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n { name: \"value\", type: \"uint256\" },\n { name: \"nonce\", type: \"uint256\" },\n { name: \"deadline\", type: \"uint256\" },\n ],\n} as const;\n\n/**\n * EIP-2612 nonces ABI for querying current nonce.\n */\nexport const eip2612NoncesAbi = [\n {\n type: \"function\",\n name: \"nonces\",\n inputs: [{ name: \"owner\", type: \"address\" }],\n outputs: [{ type: \"uint256\" }],\n stateMutability: \"view\",\n },\n] as const;\n\n/** ERC-20 approve(address,uint256) ABI for encoding/decoding approval calldata. */\nexport const erc20ApproveAbi = [\n {\n type: \"function\",\n name: \"approve\",\n inputs: [\n { name: \"spender\", type: \"address\" },\n { name: \"amount\", type: \"uint256\" },\n ],\n outputs: [{ type: \"bool\" }],\n stateMutability: \"nonpayable\",\n },\n] as const;\n\n/** ERC-20 allowance(address,address) ABI for checking spender approval. */\nexport const erc20AllowanceAbi = [\n {\n type: \"function\",\n name: \"allowance\",\n inputs: [\n { name: \"owner\", type: \"address\" },\n { name: \"spender\", type: \"address\" },\n ],\n outputs: [{ type: \"uint256\" }],\n stateMutability: \"view\",\n },\n] as const;\n\n/** Gas limit for a standard ERC-20 approve() transaction. */\nexport const ERC20_APPROVE_GAS_LIMIT = 70_000n;\n\n/** Fallback max fee per gas (1 gwei) when fee estimation fails. */\nexport const DEFAULT_MAX_FEE_PER_GAS = 1_000_000_000n;\n\n/** Fallback max priority fee per gas (0.1 gwei) when fee estimation fails. */\nexport const DEFAULT_MAX_PRIORITY_FEE_PER_GAS = 100_000_000n;\n\n/**\n * Canonical Permit2 contract address.\n * Same address on all EVM chains via CREATE2 deployment.\n *\n * @see https://github.com/Uniswap/permit2\n */\nexport const PERMIT2_ADDRESS = \"0x000000000022D473030F116dDEE9F6B43aC78BA3\" as const;\n\n/**\n * x402ExactPermit2Proxy contract address.\n * Vanity address: 0x4020...0001 for easy recognition.\n * This address is deterministic based on:\n * - Arachnid's deterministic deployer (0x4e59b44847b379578588920cA78FbF26c0B4956C)\n * - Vanity-mined salt for prefix 0x4020 and suffix 0001\n * - Contract bytecode + constructor args (PERMIT2_ADDRESS)\n */\nexport const x402ExactPermit2ProxyAddress = \"0x402085c248EeA27D92E8b30b2C58ed07f9E20001\" as const;\n\n/**\n * x402UptoPermit2Proxy contract address.\n * Vanity address: 0x4020...0002 for easy recognition.\n * This address is deterministic based on:\n * - Arachnid's deterministic deployer (0x4e59b44847b379578588920cA78FbF26c0B4956C)\n * - Vanity-mined salt for prefix 0x4020 and suffix 0002\n * - Contract bytecode + constructor args (PERMIT2_ADDRESS)\n */\nexport const x402UptoPermit2ProxyAddress = \"0x4020A4f3b7b90ccA423B9fabCc0CE57C6C240002\" as const;\n\n/**\n * ABI components for the exact Permit2 witness tuple: Witness(address to, uint256 validAfter).\n */\nconst permit2WitnessABIComponents = [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"validAfter\", type: \"uint256\", internalType: \"uint256\" },\n] as const;\n\n/**\n * ABI components for the upto Permit2 witness tuple:\n * Witness(address to, address facilitator, uint256 validAfter).\n */\nconst uptoPermit2WitnessABIComponents = [\n { name: \"to\", type: \"address\", internalType: \"address\" },\n { name: \"facilitator\", type: \"address\", internalType: \"address\" },\n { name: \"validAfter\", type: \"uint256\", internalType: \"uint256\" },\n] as const;\n\n/**\n * x402UptoPermit2Proxy ABI — settle/settleWithPermit for the upto payment scheme.\n * Key differences from exact: settle() takes a `uint256 amount` parameter, and the\n * Witness struct includes an `address facilitator` field.\n */\nexport const x402UptoPermit2ProxyABI = [\n {\n type: \"function\",\n name: \"PERMIT2\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"contract ISignatureTransfer\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"WITNESS_TYPEHASH\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"WITNESS_TYPE_STRING\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"settle\",\n inputs: [\n {\n name: \"permit\",\n type: \"tuple\",\n internalType: \"struct ISignatureTransfer.PermitTransferFrom\",\n components: [\n {\n name: \"permitted\",\n type: \"tuple\",\n internalType: \"struct ISignatureTransfer.TokenPermissions\",\n components: [\n { name: \"token\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n },\n { name: \"nonce\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n ],\n },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"owner\", type: \"address\", internalType: \"address\" },\n {\n name: \"witness\",\n type: \"tuple\",\n internalType: \"struct x402UptoPermit2Proxy.Witness\",\n components: uptoPermit2WitnessABIComponents,\n },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"settleWithPermit\",\n inputs: [\n {\n name: \"permit2612\",\n type: \"tuple\",\n internalType: \"struct x402UptoPermit2Proxy.EIP2612Permit\",\n components: [\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"r\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"s\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"v\", type: \"uint8\", internalType: \"uint8\" },\n ],\n },\n {\n name: \"permit\",\n type: \"tuple\",\n internalType: \"struct ISignatureTransfer.PermitTransferFrom\",\n components: [\n {\n name: \"permitted\",\n type: \"tuple\",\n internalType: \"struct ISignatureTransfer.TokenPermissions\",\n components: [\n { name: \"token\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n },\n { name: \"nonce\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n ],\n },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"owner\", type: \"address\", internalType: \"address\" },\n {\n name: \"witness\",\n type: \"tuple\",\n internalType: \"struct x402UptoPermit2Proxy.Witness\",\n components: uptoPermit2WitnessABIComponents,\n },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n { type: \"event\", name: \"Settled\", inputs: [], anonymous: false },\n { type: \"event\", name: \"SettledWithPermit\", inputs: [], anonymous: false },\n { type: \"error\", name: \"AmountExceedsPermitted\", inputs: [] },\n { type: \"error\", name: \"InvalidDestination\", inputs: [] },\n { type: \"error\", name: \"InvalidOwner\", inputs: [] },\n { type: \"error\", name: \"InvalidPermit2Address\", inputs: [] },\n { type: \"error\", name: \"PaymentTooEarly\", inputs: [] },\n { type: \"error\", name: \"Permit2612AmountMismatch\", inputs: [] },\n { type: \"error\", name: \"ReentrancyGuardReentrantCall\", inputs: [] },\n { type: \"error\", name: \"UnauthorizedFacilitator\", inputs: [] },\n] as const;\n\n/**\n * x402ExactPermit2Proxy ABI - settle function for exact payment scheme.\n */\nexport const x402ExactPermit2ProxyABI = [\n {\n type: \"function\",\n name: \"PERMIT2\",\n inputs: [],\n outputs: [{ name: \"\", type: \"address\", internalType: \"contract ISignatureTransfer\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"WITNESS_TYPEHASH\",\n inputs: [],\n outputs: [{ name: \"\", type: \"bytes32\", internalType: \"bytes32\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"WITNESS_TYPE_STRING\",\n inputs: [],\n outputs: [{ name: \"\", type: \"string\", internalType: \"string\" }],\n stateMutability: \"view\",\n },\n {\n type: \"function\",\n name: \"settle\",\n inputs: [\n {\n name: \"permit\",\n type: \"tuple\",\n internalType: \"struct ISignatureTransfer.PermitTransferFrom\",\n components: [\n {\n name: \"permitted\",\n type: \"tuple\",\n internalType: \"struct ISignatureTransfer.TokenPermissions\",\n components: [\n { name: \"token\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n },\n { name: \"nonce\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n ],\n },\n { name: \"owner\", type: \"address\", internalType: \"address\" },\n {\n name: \"witness\",\n type: \"tuple\",\n internalType: \"struct x402ExactPermit2Proxy.Witness\",\n components: permit2WitnessABIComponents,\n },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n {\n type: \"function\",\n name: \"settleWithPermit\",\n inputs: [\n {\n name: \"permit2612\",\n type: \"tuple\",\n internalType: \"struct x402ExactPermit2Proxy.EIP2612Permit\",\n components: [\n { name: \"value\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"r\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"s\", type: \"bytes32\", internalType: \"bytes32\" },\n { name: \"v\", type: \"uint8\", internalType: \"uint8\" },\n ],\n },\n {\n name: \"permit\",\n type: \"tuple\",\n internalType: \"struct ISignatureTransfer.PermitTransferFrom\",\n components: [\n {\n name: \"permitted\",\n type: \"tuple\",\n internalType: \"struct ISignatureTransfer.TokenPermissions\",\n components: [\n { name: \"token\", type: \"address\", internalType: \"address\" },\n { name: \"amount\", type: \"uint256\", internalType: \"uint256\" },\n ],\n },\n { name: \"nonce\", type: \"uint256\", internalType: \"uint256\" },\n { name: \"deadline\", type: \"uint256\", internalType: \"uint256\" },\n ],\n },\n { name: \"owner\", type: \"address\", internalType: \"address\" },\n {\n name: \"witness\",\n type: \"tuple\",\n internalType: \"struct x402ExactPermit2Proxy.Witness\",\n components: permit2WitnessABIComponents,\n },\n { name: \"signature\", type: \"bytes\", internalType: \"bytes\" },\n ],\n outputs: [],\n stateMutability: \"nonpayable\",\n },\n { type: \"event\", name: \"Settled\", inputs: [], anonymous: false },\n { type: \"event\", name: \"SettledWithPermit\", inputs: [], anonymous: false },\n { type: \"error\", name: \"InvalidAmount\", inputs: [] },\n { type: \"error\", name: \"InvalidDestination\", inputs: [] },\n { type: \"error\", name: \"InvalidOwner\", inputs: [] },\n { type: \"error\", name: \"InvalidPermit2Address\", inputs: [] },\n { type: \"error\", name: \"PaymentTooEarly\", inputs: [] },\n { type: \"error\", name: \"Permit2612AmountMismatch\", inputs: [] },\n { type: \"error\", name: \"ReentrancyGuardReentrantCall\", inputs: [] },\n] as const;\n"],"mappings":"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","names":[]}
@@ -0,0 +1,113 @@
1
+ // src/exact/facilitator/errors.ts
2
+ var ErrAssetNotDeployedContract = "asset_not_deployed_contract";
3
+ var ErrInvalidScheme = "invalid_exact_evm_scheme";
4
+ var ErrNetworkMismatch = "invalid_exact_evm_network_mismatch";
5
+ var ErrMissingEip712Domain = "invalid_exact_evm_missing_eip712_domain";
6
+ var ErrRecipientMismatch = "invalid_exact_evm_recipient_mismatch";
7
+ var ErrInvalidSignature = "invalid_exact_evm_signature";
8
+ var ErrValidBeforeExpired = "invalid_exact_evm_payload_authorization_valid_before";
9
+ var ErrValidAfterInFuture = "invalid_exact_evm_payload_authorization_valid_after";
10
+ var ErrInvalidAuthorizationValue = "invalid_exact_evm_authorization_value";
11
+ var ErrUndeployedSmartWallet = "invalid_exact_evm_payload_undeployed_smart_wallet";
12
+ var ErrTransactionFailed = "invalid_exact_evm_transaction_failed";
13
+ var ErrEip3009TokenNameMismatch = "invalid_exact_evm_token_name_mismatch";
14
+ var ErrEip3009TokenVersionMismatch = "invalid_exact_evm_token_version_mismatch";
15
+ var ErrEip3009NotSupported = "invalid_exact_evm_eip3009_not_supported";
16
+ var ErrEip3009NonceAlreadyUsed = "invalid_exact_evm_nonce_already_used";
17
+ var ErrEip3009InsufficientBalance = "invalid_exact_evm_insufficient_balance";
18
+ var ErrEip3009SimulationFailed = "invalid_exact_evm_transaction_simulation_failed";
19
+ var ErrPermit2InvalidSpender = "invalid_permit2_spender";
20
+ var ErrPermit2RecipientMismatch = "invalid_permit2_recipient_mismatch";
21
+ var ErrPermit2DeadlineExpired = "permit2_deadline_expired";
22
+ var ErrPermit2NotYetValid = "permit2_not_yet_valid";
23
+ var ErrPermit2AmountMismatch = "permit2_amount_mismatch";
24
+ var ErrPermit2TokenMismatch = "permit2_token_mismatch";
25
+ var ErrPermit2InvalidSignature = "invalid_permit2_signature";
26
+ var ErrPermit2AllowanceRequired = "permit2_allowance_required";
27
+ var ErrPermit2SimulationFailed = "permit2_simulation_failed";
28
+ var ErrPermit2InsufficientBalance = "permit2_insufficient_balance";
29
+ var ErrPermit2ProxyNotDeployed = "permit2_proxy_not_deployed";
30
+ var ErrPermit2InvalidAmount = "permit2_invalid_amount";
31
+ var ErrPermit2InvalidDestination = "permit2_invalid_destination";
32
+ var ErrPermit2InvalidOwner = "permit2_invalid_owner";
33
+ var ErrPermit2PaymentTooEarly = "permit2_payment_too_early";
34
+ var ErrPermit2InvalidNonce = "permit2_invalid_nonce";
35
+ var ErrPermit2612AmountMismatch = "permit2_2612_amount_mismatch";
36
+ var ErrErc20ApprovalInvalidFormat = "invalid_erc20_approval_extension_format";
37
+ var ErrErc20ApprovalFromMismatch = "erc20_approval_from_mismatch";
38
+ var ErrErc20ApprovalAssetMismatch = "erc20_approval_asset_mismatch";
39
+ var ErrErc20ApprovalSpenderNotPermit2 = "erc20_approval_spender_not_permit2";
40
+ var ErrErc20ApprovalTxWrongTarget = "erc20_approval_tx_wrong_target";
41
+ var ErrErc20ApprovalTxWrongSelector = "erc20_approval_tx_wrong_selector";
42
+ var ErrErc20ApprovalTxWrongSpender = "erc20_approval_tx_wrong_spender";
43
+ var ErrErc20ApprovalTxInvalidCalldata = "erc20_approval_tx_invalid_calldata";
44
+ var ErrErc20ApprovalTxSignerMismatch = "erc20_approval_tx_signer_mismatch";
45
+ var ErrErc20ApprovalTxInvalidSignature = "erc20_approval_tx_invalid_signature";
46
+ var ErrErc20ApprovalTxParseFailed = "erc20_approval_tx_parse_failed";
47
+ var ErrErc20ApprovalTxFailed = "erc20_approval_tx_failed";
48
+ var ErrInvalidEip2612ExtensionFormat = "invalid_eip2612_extension_format";
49
+ var ErrEip2612FromMismatch = "eip2612_from_mismatch";
50
+ var ErrEip2612AssetMismatch = "eip2612_asset_mismatch";
51
+ var ErrEip2612SpenderNotPermit2 = "eip2612_spender_not_permit2";
52
+ var ErrEip2612DeadlineExpired = "eip2612_deadline_expired";
53
+ var ErrUnsupportedPayloadType = "unsupported_payload_type";
54
+ var ErrInvalidTransactionState = "invalid_transaction_state";
55
+ var ErrFactoryNotAllowed = "eip6492_factory_not_allowed";
56
+
57
+ export {
58
+ ErrAssetNotDeployedContract,
59
+ ErrInvalidScheme,
60
+ ErrNetworkMismatch,
61
+ ErrMissingEip712Domain,
62
+ ErrRecipientMismatch,
63
+ ErrInvalidSignature,
64
+ ErrValidBeforeExpired,
65
+ ErrValidAfterInFuture,
66
+ ErrInvalidAuthorizationValue,
67
+ ErrUndeployedSmartWallet,
68
+ ErrTransactionFailed,
69
+ ErrEip3009TokenNameMismatch,
70
+ ErrEip3009TokenVersionMismatch,
71
+ ErrEip3009NotSupported,
72
+ ErrEip3009NonceAlreadyUsed,
73
+ ErrEip3009InsufficientBalance,
74
+ ErrEip3009SimulationFailed,
75
+ ErrPermit2InvalidSpender,
76
+ ErrPermit2RecipientMismatch,
77
+ ErrPermit2DeadlineExpired,
78
+ ErrPermit2NotYetValid,
79
+ ErrPermit2AmountMismatch,
80
+ ErrPermit2TokenMismatch,
81
+ ErrPermit2InvalidSignature,
82
+ ErrPermit2AllowanceRequired,
83
+ ErrPermit2SimulationFailed,
84
+ ErrPermit2InsufficientBalance,
85
+ ErrPermit2ProxyNotDeployed,
86
+ ErrPermit2InvalidAmount,
87
+ ErrPermit2InvalidDestination,
88
+ ErrPermit2InvalidOwner,
89
+ ErrPermit2PaymentTooEarly,
90
+ ErrPermit2InvalidNonce,
91
+ ErrPermit2612AmountMismatch,
92
+ ErrErc20ApprovalInvalidFormat,
93
+ ErrErc20ApprovalFromMismatch,
94
+ ErrErc20ApprovalAssetMismatch,
95
+ ErrErc20ApprovalSpenderNotPermit2,
96
+ ErrErc20ApprovalTxWrongTarget,
97
+ ErrErc20ApprovalTxWrongSelector,
98
+ ErrErc20ApprovalTxWrongSpender,
99
+ ErrErc20ApprovalTxInvalidCalldata,
100
+ ErrErc20ApprovalTxSignerMismatch,
101
+ ErrErc20ApprovalTxInvalidSignature,
102
+ ErrErc20ApprovalTxParseFailed,
103
+ ErrErc20ApprovalTxFailed,
104
+ ErrInvalidEip2612ExtensionFormat,
105
+ ErrEip2612FromMismatch,
106
+ ErrEip2612AssetMismatch,
107
+ ErrEip2612SpenderNotPermit2,
108
+ ErrEip2612DeadlineExpired,
109
+ ErrUnsupportedPayloadType,
110
+ ErrInvalidTransactionState,
111
+ ErrFactoryNotAllowed
112
+ };
113
+ //# sourceMappingURL=chunk-P3QOX3QZ.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/exact/facilitator/errors.ts"],"sourcesContent":["/**\n * Named error reason constants for the exact EVM facilitator.\n *\n * These strings must be character-for-character identical to the Go constants in\n * go/mechanisms/evm/exact/facilitator/errors.go to maintain cross-SDK parity.\n */\n\nexport const ErrAssetNotDeployedContract = \"asset_not_deployed_contract\";\n\nexport const ErrInvalidScheme = \"invalid_exact_evm_scheme\";\nexport const ErrNetworkMismatch = \"invalid_exact_evm_network_mismatch\";\nexport const ErrMissingEip712Domain = \"invalid_exact_evm_missing_eip712_domain\";\nexport const ErrRecipientMismatch = \"invalid_exact_evm_recipient_mismatch\";\nexport const ErrInvalidSignature = \"invalid_exact_evm_signature\";\nexport const ErrValidBeforeExpired = \"invalid_exact_evm_payload_authorization_valid_before\";\nexport const ErrValidAfterInFuture = \"invalid_exact_evm_payload_authorization_valid_after\";\nexport const ErrInvalidAuthorizationValue = \"invalid_exact_evm_authorization_value\";\nexport const ErrUndeployedSmartWallet = \"invalid_exact_evm_payload_undeployed_smart_wallet\";\nexport const ErrTransactionFailed = \"invalid_exact_evm_transaction_failed\";\n\n// EIP-3009 verify errors\nexport const ErrEip3009TokenNameMismatch = \"invalid_exact_evm_token_name_mismatch\";\nexport const ErrEip3009TokenVersionMismatch = \"invalid_exact_evm_token_version_mismatch\";\nexport const ErrEip3009NotSupported = \"invalid_exact_evm_eip3009_not_supported\";\nexport const ErrEip3009NonceAlreadyUsed = \"invalid_exact_evm_nonce_already_used\";\nexport const ErrEip3009InsufficientBalance = \"invalid_exact_evm_insufficient_balance\";\nexport const ErrEip3009SimulationFailed = \"invalid_exact_evm_transaction_simulation_failed\";\n\n// Permit2 verify errors\nexport const ErrPermit2InvalidSpender = \"invalid_permit2_spender\";\nexport const ErrPermit2RecipientMismatch = \"invalid_permit2_recipient_mismatch\";\nexport const ErrPermit2DeadlineExpired = \"permit2_deadline_expired\";\nexport const ErrPermit2NotYetValid = \"permit2_not_yet_valid\";\nexport const ErrPermit2AmountMismatch = \"permit2_amount_mismatch\";\nexport const ErrPermit2TokenMismatch = \"permit2_token_mismatch\";\nexport const ErrPermit2InvalidSignature = \"invalid_permit2_signature\";\nexport const ErrPermit2AllowanceRequired = \"permit2_allowance_required\";\nexport const ErrPermit2SimulationFailed = \"permit2_simulation_failed\";\nexport const ErrPermit2InsufficientBalance = \"permit2_insufficient_balance\";\nexport const ErrPermit2ProxyNotDeployed = \"permit2_proxy_not_deployed\";\n\n// Permit2 settle errors (from contract reverts)\nexport const ErrPermit2InvalidAmount = \"permit2_invalid_amount\";\nexport const ErrPermit2InvalidDestination = \"permit2_invalid_destination\";\nexport const ErrPermit2InvalidOwner = \"permit2_invalid_owner\";\nexport const ErrPermit2PaymentTooEarly = \"permit2_payment_too_early\";\nexport const ErrPermit2InvalidNonce = \"permit2_invalid_nonce\";\nexport const ErrPermit2612AmountMismatch = \"permit2_2612_amount_mismatch\";\n\n// ERC-20 approval gas sponsoring verify errors\nexport const ErrErc20ApprovalInvalidFormat = \"invalid_erc20_approval_extension_format\";\nexport const ErrErc20ApprovalFromMismatch = \"erc20_approval_from_mismatch\";\nexport const ErrErc20ApprovalAssetMismatch = \"erc20_approval_asset_mismatch\";\nexport const ErrErc20ApprovalSpenderNotPermit2 = \"erc20_approval_spender_not_permit2\";\nexport const ErrErc20ApprovalTxWrongTarget = \"erc20_approval_tx_wrong_target\";\nexport const ErrErc20ApprovalTxWrongSelector = \"erc20_approval_tx_wrong_selector\";\nexport const ErrErc20ApprovalTxWrongSpender = \"erc20_approval_tx_wrong_spender\";\nexport const ErrErc20ApprovalTxInvalidCalldata = \"erc20_approval_tx_invalid_calldata\";\nexport const ErrErc20ApprovalTxSignerMismatch = \"erc20_approval_tx_signer_mismatch\";\nexport const ErrErc20ApprovalTxInvalidSignature = \"erc20_approval_tx_invalid_signature\";\nexport const ErrErc20ApprovalTxParseFailed = \"erc20_approval_tx_parse_failed\";\nexport const ErrErc20ApprovalTxFailed = \"erc20_approval_tx_failed\";\n\n// EIP-2612 gas sponsoring verify errors\nexport const ErrInvalidEip2612ExtensionFormat = \"invalid_eip2612_extension_format\";\nexport const ErrEip2612FromMismatch = \"eip2612_from_mismatch\";\nexport const ErrEip2612AssetMismatch = \"eip2612_asset_mismatch\";\nexport const ErrEip2612SpenderNotPermit2 = \"eip2612_spender_not_permit2\";\nexport const ErrEip2612DeadlineExpired = \"eip2612_deadline_expired\";\n\n// Shared settle errors\nexport const ErrUnsupportedPayloadType = \"unsupported_payload_type\";\nexport const ErrInvalidTransactionState = \"invalid_transaction_state\";\nexport const ErrFactoryNotAllowed = \"eip6492_factory_not_allowed\";\n"],"mappings":";AAOO,IAAM,8BAA8B;AAEpC,IAAM,mBAAmB;AACzB,IAAM,qBAAqB;AAC3B,IAAM,yBAAyB;AAC/B,IAAM,uBAAuB;AAC7B,IAAM,sBAAsB;AAC5B,IAAM,wBAAwB;AAC9B,IAAM,wBAAwB;AAC9B,IAAM,+BAA+B;AACrC,IAAM,2BAA2B;AACjC,IAAM,uBAAuB;AAG7B,IAAM,8BAA8B;AACpC,IAAM,iCAAiC;AACvC,IAAM,yBAAyB;AAC/B,IAAM,6BAA6B;AACnC,IAAM,gCAAgC;AACtC,IAAM,6BAA6B;AAGnC,IAAM,2BAA2B;AACjC,IAAM,8BAA8B;AACpC,IAAM,4BAA4B;AAClC,IAAM,wBAAwB;AAC9B,IAAM,2BAA2B;AACjC,IAAM,0BAA0B;AAChC,IAAM,6BAA6B;AACnC,IAAM,8BAA8B;AACpC,IAAM,6BAA6B;AACnC,IAAM,gCAAgC;AACtC,IAAM,6BAA6B;AAGnC,IAAM,0BAA0B;AAChC,IAAM,+BAA+B;AACrC,IAAM,yBAAyB;AAC/B,IAAM,4BAA4B;AAClC,IAAM,yBAAyB;AAC/B,IAAM,8BAA8B;AAGpC,IAAM,gCAAgC;AACtC,IAAM,+BAA+B;AACrC,IAAM,gCAAgC;AACtC,IAAM,oCAAoC;AAC1C,IAAM,gCAAgC;AACtC,IAAM,kCAAkC;AACxC,IAAM,iCAAiC;AACvC,IAAM,oCAAoC;AAC1C,IAAM,mCAAmC;AACzC,IAAM,qCAAqC;AAC3C,IAAM,gCAAgC;AACtC,IAAM,2BAA2B;AAGjC,IAAM,mCAAmC;AACzC,IAAM,yBAAyB;AAC/B,IAAM,0BAA0B;AAChC,IAAM,8BAA8B;AACpC,IAAM,4BAA4B;AAGlC,IAAM,4BAA4B;AAClC,IAAM,6BAA6B;AACnC,IAAM,uBAAuB;","names":[]}
@@ -0,0 +1,47 @@
1
+ import {
2
+ createPermit2PayloadForProxy
3
+ } from "./chunk-H2EYJIZL.mjs";
4
+ import {
5
+ PERMIT2_ADDRESS,
6
+ erc20AllowanceAbi,
7
+ erc20ApproveAbi,
8
+ x402ExactPermit2ProxyAddress
9
+ } from "./chunk-MACPBXCT.mjs";
10
+
11
+ // src/exact/client/permit2.ts
12
+ import { encodeFunctionData, getAddress } from "viem";
13
+ var MAX_UINT256 = BigInt("0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff");
14
+ async function createPermit2Payload(signer, x402Version, paymentRequirements) {
15
+ return createPermit2PayloadForProxy(
16
+ x402ExactPermit2ProxyAddress,
17
+ signer,
18
+ x402Version,
19
+ paymentRequirements
20
+ );
21
+ }
22
+ function createPermit2ApprovalTx(tokenAddress) {
23
+ const data = encodeFunctionData({
24
+ abi: erc20ApproveAbi,
25
+ functionName: "approve",
26
+ args: [PERMIT2_ADDRESS, MAX_UINT256]
27
+ });
28
+ return {
29
+ to: getAddress(tokenAddress),
30
+ data
31
+ };
32
+ }
33
+ function getPermit2AllowanceReadParams(params) {
34
+ return {
35
+ address: getAddress(params.tokenAddress),
36
+ abi: erc20AllowanceAbi,
37
+ functionName: "allowance",
38
+ args: [getAddress(params.ownerAddress), PERMIT2_ADDRESS]
39
+ };
40
+ }
41
+
42
+ export {
43
+ createPermit2Payload,
44
+ createPermit2ApprovalTx,
45
+ getPermit2AllowanceReadParams
46
+ };
47
+ //# sourceMappingURL=chunk-QVATVA3J.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/exact/client/permit2.ts"],"sourcesContent":["import { PaymentRequirements, PaymentPayloadResult } from \"@bankofai/x402-core/types\";\nimport { encodeFunctionData, getAddress } from \"viem\";\nimport {\n PERMIT2_ADDRESS,\n x402ExactPermit2ProxyAddress,\n erc20ApproveAbi,\n erc20AllowanceAbi,\n} from \"../../constants\";\nimport { ClientEvmSigner } from \"../../signer\";\nimport { createPermit2PayloadForProxy } from \"../../shared/permit2\";\n\n/** Maximum uint256 value for unlimited approval. */\nconst MAX_UINT256 = BigInt(\"0xffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff\");\n\n/**\n * Creates a Permit2 payload using the x402Permit2Proxy witness pattern.\n * The spender is set to x402Permit2Proxy, which enforces that funds\n * can only be sent to the witness.to address.\n *\n * @param signer - The EVM signer for client operations\n * @param x402Version - The x402 protocol version\n * @param paymentRequirements - The payment requirements\n * @returns Promise resolving to a payment payload result\n */\nexport async function createPermit2Payload(\n signer: ClientEvmSigner,\n x402Version: number,\n paymentRequirements: PaymentRequirements,\n): Promise<PaymentPayloadResult> {\n return createPermit2PayloadForProxy(\n x402ExactPermit2ProxyAddress,\n signer,\n x402Version,\n paymentRequirements,\n );\n}\n\n/**\n * Creates transaction data to approve Permit2 to spend tokens.\n * The user sends this transaction (paying gas) before using Permit2 flow.\n *\n * @param tokenAddress - The ERC20 token contract address\n * @returns Transaction data to send for approval\n *\n * @example\n * ```typescript\n * const tx = createPermit2ApprovalTx(\"0x...\");\n * await walletClient.sendTransaction({\n * to: tx.to,\n * data: tx.data,\n * });\n * ```\n */\nexport function createPermit2ApprovalTx(tokenAddress: `0x${string}`): {\n to: `0x${string}`;\n data: `0x${string}`;\n} {\n const data = encodeFunctionData({\n abi: erc20ApproveAbi,\n functionName: \"approve\",\n args: [PERMIT2_ADDRESS, MAX_UINT256],\n });\n\n return {\n to: getAddress(tokenAddress),\n data,\n };\n}\n\n/**\n * Parameters for checking Permit2 allowance.\n * Application provides these to check if approval is needed.\n */\nexport interface Permit2AllowanceParams {\n tokenAddress: `0x${string}`;\n ownerAddress: `0x${string}`;\n}\n\n/**\n * Returns contract read parameters for checking Permit2 allowance.\n * Use with a public client to check if the user has approved Permit2.\n *\n * @param params - The allowance check parameters\n * @returns Contract read parameters for checking allowance\n *\n * @example\n * ```typescript\n * const readParams = getPermit2AllowanceReadParams({\n * tokenAddress: \"0x...\",\n * ownerAddress: \"0x...\",\n * });\n *\n * const allowance = await publicClient.readContract(readParams);\n * const needsApproval = allowance < requiredAmount;\n * ```\n */\nexport function getPermit2AllowanceReadParams(params: Permit2AllowanceParams): {\n address: `0x${string}`;\n abi: typeof erc20AllowanceAbi;\n functionName: \"allowance\";\n args: [`0x${string}`, `0x${string}`];\n} {\n return {\n address: getAddress(params.tokenAddress),\n abi: erc20AllowanceAbi,\n functionName: \"allowance\",\n args: [getAddress(params.ownerAddress), PERMIT2_ADDRESS],\n };\n}\n"],"mappings":";;;;;;;;;;;AACA,SAAS,oBAAoB,kBAAkB;AAW/C,IAAM,cAAc,OAAO,oEAAoE;AAY/F,eAAsB,qBACpB,QACA,aACA,qBAC+B;AAC/B,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF;AACF;AAkBO,SAAS,wBAAwB,cAGtC;AACA,QAAM,OAAO,mBAAmB;AAAA,IAC9B,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,iBAAiB,WAAW;AAAA,EACrC,CAAC;AAED,SAAO;AAAA,IACL,IAAI,WAAW,YAAY;AAAA,IAC3B;AAAA,EACF;AACF;AA6BO,SAAS,8BAA8B,QAK5C;AACA,SAAO;AAAA,IACL,SAAS,WAAW,OAAO,YAAY;AAAA,IACvC,KAAK;AAAA,IACL,cAAc;AAAA,IACd,MAAM,CAAC,WAAW,OAAO,YAAY,GAAG,eAAe;AAAA,EACzD;AACF;","names":[]}