@bankofai/x402 0.5.9 → 0.6.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 (211) hide show
  1. package/dist/client/x402Client.js +1 -1
  2. package/dist/client/x402Client.js.map +1 -1
  3. package/dist/errors.d.ts +8 -0
  4. package/dist/errors.d.ts.map +1 -1
  5. package/dist/errors.js +13 -0
  6. package/dist/errors.js.map +1 -1
  7. package/dist/facilitator/client.d.ts +77 -0
  8. package/dist/facilitator/client.d.ts.map +1 -0
  9. package/dist/facilitator/client.js +130 -0
  10. package/dist/facilitator/client.js.map +1 -0
  11. package/dist/facilitator/index.d.ts +14 -0
  12. package/dist/facilitator/index.d.ts.map +1 -0
  13. package/dist/facilitator/index.js +12 -0
  14. package/dist/facilitator/index.js.map +1 -0
  15. package/dist/facilitator/x402Facilitator.d.ts +97 -0
  16. package/dist/facilitator/x402Facilitator.d.ts.map +1 -0
  17. package/dist/facilitator/x402Facilitator.js +212 -0
  18. package/dist/facilitator/x402Facilitator.js.map +1 -0
  19. package/dist/http/client.d.ts +66 -17
  20. package/dist/http/client.d.ts.map +1 -1
  21. package/dist/http/client.js +90 -31
  22. package/dist/http/client.js.map +1 -1
  23. package/dist/index.d.ts +4 -1
  24. package/dist/index.d.ts.map +1 -1
  25. package/dist/index.js +7 -1
  26. package/dist/index.js.map +1 -1
  27. package/dist/mechanisms/_base/index.d.ts +19 -0
  28. package/dist/mechanisms/_base/index.d.ts.map +1 -0
  29. package/dist/mechanisms/_base/index.js +17 -0
  30. package/dist/mechanisms/_base/index.js.map +1 -0
  31. package/dist/mechanisms/_exact_base/adapter.d.ts +23 -0
  32. package/dist/mechanisms/_exact_base/adapter.d.ts.map +1 -0
  33. package/dist/mechanisms/_exact_base/adapter.js +9 -0
  34. package/dist/mechanisms/_exact_base/adapter.js.map +1 -0
  35. package/dist/mechanisms/_exact_base/evmAdapter.d.ts +10 -0
  36. package/dist/mechanisms/_exact_base/evmAdapter.d.ts.map +1 -0
  37. package/dist/mechanisms/_exact_base/evmAdapter.js +28 -0
  38. package/dist/mechanisms/_exact_base/evmAdapter.js.map +1 -0
  39. package/dist/mechanisms/_exact_base/facilitator.d.ts +46 -0
  40. package/dist/mechanisms/_exact_base/facilitator.d.ts.map +1 -0
  41. package/dist/mechanisms/_exact_base/facilitator.js +87 -0
  42. package/dist/mechanisms/_exact_base/facilitator.js.map +1 -0
  43. package/dist/mechanisms/_exact_base/index.d.ts +12 -0
  44. package/dist/mechanisms/_exact_base/index.d.ts.map +1 -0
  45. package/dist/mechanisms/_exact_base/index.js +10 -0
  46. package/dist/mechanisms/_exact_base/index.js.map +1 -0
  47. package/dist/mechanisms/_exact_base/server.d.ts +40 -0
  48. package/dist/mechanisms/_exact_base/server.d.ts.map +1 -0
  49. package/dist/mechanisms/_exact_base/server.js +62 -0
  50. package/dist/mechanisms/_exact_base/server.js.map +1 -0
  51. package/dist/mechanisms/_exact_base/tronAdapter.d.ts +11 -0
  52. package/dist/mechanisms/_exact_base/tronAdapter.d.ts.map +1 -0
  53. package/dist/mechanisms/_exact_base/tronAdapter.js +48 -0
  54. package/dist/mechanisms/_exact_base/tronAdapter.js.map +1 -0
  55. package/dist/mechanisms/{nativeExact.d.ts → _exact_base/types.d.ts} +4 -4
  56. package/dist/mechanisms/_exact_base/types.d.ts.map +1 -0
  57. package/dist/mechanisms/{nativeExact.js → _exact_base/types.js} +1 -1
  58. package/dist/mechanisms/_exact_base/types.js.map +1 -0
  59. package/dist/mechanisms/_exact_permit_base/facilitator.d.ts +44 -0
  60. package/dist/mechanisms/_exact_permit_base/facilitator.d.ts.map +1 -0
  61. package/dist/mechanisms/_exact_permit_base/facilitator.js +65 -0
  62. package/dist/mechanisms/_exact_permit_base/facilitator.js.map +1 -0
  63. package/dist/mechanisms/_exact_permit_base/index.d.ts +8 -0
  64. package/dist/mechanisms/_exact_permit_base/index.d.ts.map +1 -0
  65. package/dist/mechanisms/_exact_permit_base/index.js +7 -0
  66. package/dist/mechanisms/_exact_permit_base/index.js.map +1 -0
  67. package/dist/mechanisms/_exact_permit_base/server.d.ts +31 -0
  68. package/dist/mechanisms/_exact_permit_base/server.d.ts.map +1 -0
  69. package/dist/mechanisms/_exact_permit_base/server.js +53 -0
  70. package/dist/mechanisms/_exact_permit_base/server.js.map +1 -0
  71. package/dist/mechanisms/{nativeExactEvm.d.ts → evm/exact/client.d.ts} +2 -2
  72. package/dist/mechanisms/evm/exact/client.d.ts.map +1 -0
  73. package/dist/mechanisms/{nativeExactEvm.js → evm/exact/client.js} +4 -4
  74. package/dist/mechanisms/evm/exact/client.js.map +1 -0
  75. package/dist/mechanisms/evm/exact/facilitator.d.ts +20 -0
  76. package/dist/mechanisms/evm/exact/facilitator.d.ts.map +1 -0
  77. package/dist/mechanisms/evm/exact/facilitator.js +28 -0
  78. package/dist/mechanisms/evm/exact/facilitator.js.map +1 -0
  79. package/dist/mechanisms/evm/exact/index.d.ts +4 -0
  80. package/dist/mechanisms/evm/exact/index.d.ts.map +1 -0
  81. package/dist/mechanisms/evm/exact/index.js +4 -0
  82. package/dist/mechanisms/evm/exact/index.js.map +1 -0
  83. package/dist/mechanisms/evm/exact/server.d.ts +19 -0
  84. package/dist/mechanisms/evm/exact/server.d.ts.map +1 -0
  85. package/dist/mechanisms/evm/exact/server.js +23 -0
  86. package/dist/mechanisms/evm/exact/server.js.map +1 -0
  87. package/dist/mechanisms/{exactEvm.d.ts → evm/exact_permit/client.d.ts} +2 -2
  88. package/dist/mechanisms/evm/exact_permit/client.d.ts.map +1 -0
  89. package/dist/mechanisms/{exactEvm.js → evm/exact_permit/client.js} +2 -2
  90. package/dist/mechanisms/evm/exact_permit/client.js.map +1 -0
  91. package/dist/mechanisms/evm/exact_permit/facilitator.d.ts +18 -0
  92. package/dist/mechanisms/evm/exact_permit/facilitator.d.ts.map +1 -0
  93. package/dist/mechanisms/evm/exact_permit/facilitator.js +25 -0
  94. package/dist/mechanisms/evm/exact_permit/facilitator.js.map +1 -0
  95. package/dist/mechanisms/evm/exact_permit/index.d.ts +4 -0
  96. package/dist/mechanisms/evm/exact_permit/index.d.ts.map +1 -0
  97. package/dist/mechanisms/evm/exact_permit/index.js +4 -0
  98. package/dist/mechanisms/evm/exact_permit/index.js.map +1 -0
  99. package/dist/mechanisms/evm/exact_permit/server.d.ts +11 -0
  100. package/dist/mechanisms/evm/exact_permit/server.d.ts.map +1 -0
  101. package/dist/mechanisms/evm/exact_permit/server.js +16 -0
  102. package/dist/mechanisms/evm/exact_permit/server.js.map +1 -0
  103. package/dist/mechanisms/index.d.ts +27 -7
  104. package/dist/mechanisms/index.d.ts.map +1 -1
  105. package/dist/mechanisms/index.js +27 -11
  106. package/dist/mechanisms/index.js.map +1 -1
  107. package/dist/mechanisms/{nativeExactTron.d.ts → tron/exact/client.d.ts} +2 -2
  108. package/dist/mechanisms/tron/exact/client.d.ts.map +1 -0
  109. package/dist/mechanisms/{nativeExactTron.js → tron/exact/client.js} +4 -4
  110. package/dist/mechanisms/tron/exact/client.js.map +1 -0
  111. package/dist/mechanisms/tron/exact/facilitator.d.ts +17 -0
  112. package/dist/mechanisms/tron/exact/facilitator.d.ts.map +1 -0
  113. package/dist/mechanisms/tron/exact/facilitator.js +25 -0
  114. package/dist/mechanisms/tron/exact/facilitator.js.map +1 -0
  115. package/dist/mechanisms/tron/exact/index.d.ts +4 -0
  116. package/dist/mechanisms/tron/exact/index.d.ts.map +1 -0
  117. package/dist/mechanisms/tron/exact/index.js +4 -0
  118. package/dist/mechanisms/tron/exact/index.js.map +1 -0
  119. package/dist/mechanisms/tron/exact/server.d.ts +18 -0
  120. package/dist/mechanisms/tron/exact/server.d.ts.map +1 -0
  121. package/dist/mechanisms/tron/exact/server.js +22 -0
  122. package/dist/mechanisms/tron/exact/server.js.map +1 -0
  123. package/dist/mechanisms/{exactGasfree.d.ts → tron/exact_gasfree/client.d.ts} +3 -3
  124. package/dist/mechanisms/tron/exact_gasfree/client.d.ts.map +1 -0
  125. package/dist/mechanisms/{exactGasfree.js → tron/exact_gasfree/client.js} +4 -4
  126. package/dist/mechanisms/tron/exact_gasfree/client.js.map +1 -0
  127. package/dist/mechanisms/tron/exact_gasfree/facilitator.d.ts +38 -0
  128. package/dist/mechanisms/tron/exact_gasfree/facilitator.d.ts.map +1 -0
  129. package/dist/mechanisms/tron/exact_gasfree/facilitator.js +71 -0
  130. package/dist/mechanisms/tron/exact_gasfree/facilitator.js.map +1 -0
  131. package/dist/mechanisms/tron/exact_gasfree/index.d.ts +5 -0
  132. package/dist/mechanisms/tron/exact_gasfree/index.d.ts.map +1 -0
  133. package/dist/mechanisms/tron/exact_gasfree/index.js +4 -0
  134. package/dist/mechanisms/tron/exact_gasfree/index.js.map +1 -0
  135. package/dist/mechanisms/tron/exact_gasfree/server.d.ts +23 -0
  136. package/dist/mechanisms/tron/exact_gasfree/server.d.ts.map +1 -0
  137. package/dist/mechanisms/tron/exact_gasfree/server.js +43 -0
  138. package/dist/mechanisms/tron/exact_gasfree/server.js.map +1 -0
  139. package/dist/mechanisms/{exact.d.ts → tron/exact_permit/client.d.ts} +2 -2
  140. package/dist/mechanisms/tron/exact_permit/client.d.ts.map +1 -0
  141. package/dist/mechanisms/{exact.js → tron/exact_permit/client.js} +2 -2
  142. package/dist/mechanisms/tron/exact_permit/client.js.map +1 -0
  143. package/dist/mechanisms/tron/exact_permit/facilitator.d.ts +17 -0
  144. package/dist/mechanisms/tron/exact_permit/facilitator.d.ts.map +1 -0
  145. package/dist/mechanisms/tron/exact_permit/facilitator.js +24 -0
  146. package/dist/mechanisms/tron/exact_permit/facilitator.js.map +1 -0
  147. package/dist/mechanisms/tron/exact_permit/index.d.ts +4 -0
  148. package/dist/mechanisms/tron/exact_permit/index.d.ts.map +1 -0
  149. package/dist/mechanisms/tron/exact_permit/index.js +4 -0
  150. package/dist/mechanisms/tron/exact_permit/index.js.map +1 -0
  151. package/dist/mechanisms/tron/exact_permit/server.d.ts +11 -0
  152. package/dist/mechanisms/tron/exact_permit/server.d.ts.map +1 -0
  153. package/dist/mechanisms/tron/exact_permit/server.js +22 -0
  154. package/dist/mechanisms/tron/exact_permit/server.js.map +1 -0
  155. package/dist/middleware/core.d.ts +75 -0
  156. package/dist/middleware/core.d.ts.map +1 -0
  157. package/dist/middleware/core.js +132 -0
  158. package/dist/middleware/core.js.map +1 -0
  159. package/dist/middleware/express.d.ts +40 -0
  160. package/dist/middleware/express.d.ts.map +1 -0
  161. package/dist/middleware/express.js +83 -0
  162. package/dist/middleware/express.js.map +1 -0
  163. package/dist/middleware/hono.d.ts +43 -0
  164. package/dist/middleware/hono.d.ts.map +1 -0
  165. package/dist/middleware/hono.js +72 -0
  166. package/dist/middleware/hono.js.map +1 -0
  167. package/dist/middleware/index.d.ts +12 -0
  168. package/dist/middleware/index.d.ts.map +1 -0
  169. package/dist/middleware/index.js +11 -0
  170. package/dist/middleware/index.js.map +1 -0
  171. package/dist/server/index.d.ts +12 -0
  172. package/dist/server/index.d.ts.map +1 -0
  173. package/dist/server/index.js +10 -0
  174. package/dist/server/index.js.map +1 -0
  175. package/dist/server/types.d.ts +78 -0
  176. package/dist/server/types.d.ts.map +1 -0
  177. package/dist/server/types.js +12 -0
  178. package/dist/server/types.js.map +1 -0
  179. package/dist/server/x402Server.d.ts +115 -0
  180. package/dist/server/x402Server.d.ts.map +1 -0
  181. package/dist/server/x402Server.js +318 -0
  182. package/dist/server/x402Server.js.map +1 -0
  183. package/dist/tokens.d.ts +29 -0
  184. package/dist/tokens.d.ts.map +1 -1
  185. package/dist/tokens.js +44 -0
  186. package/dist/tokens.js.map +1 -1
  187. package/dist/utils/encoding.d.ts +7 -0
  188. package/dist/utils/encoding.d.ts.map +1 -1
  189. package/dist/utils/encoding.js +15 -0
  190. package/dist/utils/encoding.js.map +1 -1
  191. package/dist/utils/index.d.ts +1 -1
  192. package/dist/utils/index.d.ts.map +1 -1
  193. package/dist/utils/index.js +1 -1
  194. package/dist/utils/index.js.map +1 -1
  195. package/dist/utils/tx_verification.d.ts +113 -0
  196. package/dist/utils/tx_verification.d.ts.map +1 -0
  197. package/dist/utils/tx_verification.js +98 -0
  198. package/dist/utils/tx_verification.js.map +1 -0
  199. package/package.json +15 -2
  200. package/dist/mechanisms/exact.d.ts.map +0 -1
  201. package/dist/mechanisms/exact.js.map +0 -1
  202. package/dist/mechanisms/exactEvm.d.ts.map +0 -1
  203. package/dist/mechanisms/exactEvm.js.map +0 -1
  204. package/dist/mechanisms/exactGasfree.d.ts.map +0 -1
  205. package/dist/mechanisms/exactGasfree.js.map +0 -1
  206. package/dist/mechanisms/nativeExact.d.ts.map +0 -1
  207. package/dist/mechanisms/nativeExact.js.map +0 -1
  208. package/dist/mechanisms/nativeExactEvm.d.ts.map +0 -1
  209. package/dist/mechanisms/nativeExactEvm.js.map +0 -1
  210. package/dist/mechanisms/nativeExactTron.d.ts.map +0 -1
  211. package/dist/mechanisms/nativeExactTron.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/facilitator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAWH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAgB,6BAA6B;IAClB;IAA/B,YAA+B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAExD,MAAM;QACJ,OAAO,YAAY,CAAC;IACtB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,QAAQ,CACZ,OAA4B,EAC5B,QAAkC;QAElC,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,OAAuB,EACvB,YAAiC;QAEjC,MAAM,aAAa,GAAG,IAAI,CAAC,oBAAoB,CAAC,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,uBAAuB,EAAE,CAAC;QACpE,CAAC;QAED,wCAAwC;QACxC,IAAI,MAAM,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,KAAK,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC;YACxF,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,aAAa,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC9D,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;QAC5D,CAAC;QAED,uBAAuB;QACvB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;QAC1C,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,WAAW,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBACnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,SAAS,EAAE,CAAC;YACtD,CAAC;YACD,IAAI,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,IAAI,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC;gBAClE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,CAAC;YAC5D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,qBAAqB,EAAE,CAAC;QAClE,CAAC;QAED,yDAAyD;QACzD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;QAC3E,IAAI,CAAC,SAAS,CAAC,OAAO;YAAE,OAAO,SAAS,CAAC;QAEzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAWD;;;;OAIG;IACO,KAAK,CAAC,sBAAsB,CACpC,QAAwB,EACxB,aAAkC;QAElC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;IAES,oBAAoB,CAC5B,OAAuB;QAEvB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QACxE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAChE,OAAQ,GAA+D,IAAI,IAAI,CAAC;IAClF,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Shared base for the `exact` scheme — mirrors Python
3
+ * `bankofai.x402.mechanisms._exact_base`.
4
+ */
5
+ export { DEFAULT_VALIDITY_SECONDS, SCHEME_EXACT, TRANSFER_AUTH_EIP712_TYPES, TRANSFER_AUTH_PRIMARY_TYPE, buildEip712Domain, buildEip712Message, createNonce, createValidityWindow, } from './types.js';
6
+ export type { TransferAuthorization } from './types.js';
7
+ export type { ChainAdapter } from './adapter.js';
8
+ export { EvmChainAdapter } from './evmAdapter.js';
9
+ export { TronChainAdapter } from './tronAdapter.js';
10
+ export { ExactBaseServerMechanism } from './server.js';
11
+ export { ExactBaseFacilitatorMechanism } from './facilitator.js';
12
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,0BAA0B,EAC1B,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,GACrB,MAAM,YAAY,CAAC;AACpB,YAAY,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAExD,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Shared base for the `exact` scheme — mirrors Python
3
+ * `bankofai.x402.mechanisms._exact_base`.
4
+ */
5
+ export { DEFAULT_VALIDITY_SECONDS, SCHEME_EXACT, TRANSFER_AUTH_EIP712_TYPES, TRANSFER_AUTH_PRIMARY_TYPE, buildEip712Domain, buildEip712Message, createNonce, createValidityWindow, } from './types.js';
6
+ export { EvmChainAdapter } from './evmAdapter.js';
7
+ export { TronChainAdapter } from './tronAdapter.js';
8
+ export { ExactBaseServerMechanism } from './server.js';
9
+ export { ExactBaseFacilitatorMechanism } from './facilitator.js';
10
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EACL,wBAAwB,EACxB,YAAY,EACZ,0BAA0B,EAC1B,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,GACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EAAE,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Shared base for `exact` scheme server mechanisms.
3
+ *
4
+ * Mirrors Python `mechanisms._exact_base.base.ExactBaseServerMechanism`.
5
+ *
6
+ * Per-chain mechanisms (`evm/exact/server.ts`, `tron/exact/server.ts`)
7
+ * subclass this and provide a {@link ChainAdapter}. The base handles:
8
+ * - price parsing (delegate to {@link parsePrice})
9
+ * - requirements enhancement (token name / version from registry)
10
+ * - basic validation (network + address format)
11
+ *
12
+ * `verify_signature` requires on-chain or chain-specific signing libs — left
13
+ * abstract here for subclasses to implement with their chain's tooling.
14
+ */
15
+ import type { ChainAdapter } from './adapter.js';
16
+ import type { ServerMechanism } from '../../server/types.js';
17
+ import type { PaymentPayload, PaymentPermit, PaymentRequirements } from '../../types/index.js';
18
+ export declare abstract class ExactBaseServerMechanism implements ServerMechanism {
19
+ protected readonly adapter: ChainAdapter;
20
+ constructor(adapter: ChainAdapter);
21
+ scheme(): string;
22
+ parsePrice(price: string, network: string): Promise<import("../../tokens.js").AssetAmount>;
23
+ /**
24
+ * Attach token name + version to `extra` so clients have everything needed
25
+ * to build the EIP-712 / TIP-712 typed-data domain.
26
+ */
27
+ enhancePaymentRequirements(requirements: PaymentRequirements, _deliveryMode: string): Promise<PaymentRequirements>;
28
+ validatePaymentRequirements(requirements: PaymentRequirements): boolean;
29
+ /**
30
+ * Server-side signature verification. Chain-specific — subclasses must
31
+ * implement using their chain's signature recovery primitives (viem for
32
+ * EVM, tron-utils for TRON).
33
+ *
34
+ * For `exact`, the signed object is the `authorization` (ERC-3009-style).
35
+ */
36
+ abstract verifySignature(permit: PaymentPermit | null | undefined, signature: string, network: string): Promise<boolean>;
37
+ /** Convenience hook to pull the authorization out of a payload. */
38
+ protected extractAuthorization(payload: PaymentPayload): PaymentPayload['payload']['authorization'] | null;
39
+ }
40
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEjD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,cAAc,EACd,aAAa,EACb,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAG9B,8BAAsB,wBAAyB,YAAW,eAAe;IAC3D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY;gBAArB,OAAO,EAAE,YAAY;IAEpD,MAAM,IAAI,MAAM;IAIV,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAI/C;;;OAGG;IACG,0BAA0B,CAC9B,YAAY,EAAE,mBAAmB,EACjC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC;IAa/B,2BAA2B,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO;IAOvE;;;;;;OAMG;IACH,QAAQ,CAAC,eAAe,CACtB,MAAM,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACxC,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,OAAO,CAAC;IAEnB,mEAAmE;IACnE,SAAS,CAAC,oBAAoB,CAC5B,OAAO,EAAE,cAAc,GACtB,cAAc,CAAC,SAAS,CAAC,CAAC,eAAe,CAAC,GAAG,IAAI;CAKrD"}
@@ -0,0 +1,62 @@
1
+ /**
2
+ * Shared base for `exact` scheme server mechanisms.
3
+ *
4
+ * Mirrors Python `mechanisms._exact_base.base.ExactBaseServerMechanism`.
5
+ *
6
+ * Per-chain mechanisms (`evm/exact/server.ts`, `tron/exact/server.ts`)
7
+ * subclass this and provide a {@link ChainAdapter}. The base handles:
8
+ * - price parsing (delegate to {@link parsePrice})
9
+ * - requirements enhancement (token name / version from registry)
10
+ * - basic validation (network + address format)
11
+ *
12
+ * `verify_signature` requires on-chain or chain-specific signing libs — left
13
+ * abstract here for subclasses to implement with their chain's tooling.
14
+ */
15
+ import { parsePrice, findByAddress } from '../../tokens.js';
16
+ import { SCHEME_EXACT } from './types.js';
17
+ export class ExactBaseServerMechanism {
18
+ adapter;
19
+ constructor(adapter) {
20
+ this.adapter = adapter;
21
+ }
22
+ scheme() {
23
+ return SCHEME_EXACT;
24
+ }
25
+ async parsePrice(price, network) {
26
+ return parsePrice(price, network);
27
+ }
28
+ /**
29
+ * Attach token name + version to `extra` so clients have everything needed
30
+ * to build the EIP-712 / TIP-712 typed-data domain.
31
+ */
32
+ async enhancePaymentRequirements(requirements, _deliveryMode) {
33
+ const token = findByAddress(requirements.network, requirements.asset);
34
+ if (!token)
35
+ return requirements;
36
+ return {
37
+ ...requirements,
38
+ extra: {
39
+ ...(requirements.extra ?? {}),
40
+ name: token.name,
41
+ ...(token.version ? { version: token.version } : {}),
42
+ },
43
+ };
44
+ }
45
+ validatePaymentRequirements(requirements) {
46
+ if (!this.adapter.validateNetwork(requirements.network))
47
+ return false;
48
+ if (!this.adapter.validateAddress(requirements.asset))
49
+ return false;
50
+ if (!this.adapter.validateAddress(requirements.payTo))
51
+ return false;
52
+ return true;
53
+ }
54
+ /** Convenience hook to pull the authorization out of a payload. */
55
+ extractAuthorization(payload) {
56
+ if (payload.payload.authorization)
57
+ return payload.payload.authorization;
58
+ const ext = (payload.extensions ?? {})['transferAuthorization'];
59
+ return ext ?? null;
60
+ }
61
+ }
62
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAGH,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAO5D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAE1C,MAAM,OAAgB,wBAAwB;IACb;IAA/B,YAA+B,OAAqB;QAArB,YAAO,GAAP,OAAO,CAAc;IAAG,CAAC;IAExD,MAAM;QACJ,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,OAAe;QAC7C,OAAO,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,0BAA0B,CAC9B,YAAiC,EACjC,aAAqB;QAErB,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK;YAAE,OAAO,YAAY,CAAC;QAChC,OAAO;YACL,GAAG,YAAY;YACf,KAAK,EAAE;gBACL,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD;SACF,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,YAAiC;QAC3D,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,OAAO,CAAC;YAAE,OAAO,KAAK,CAAC;QACtE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QACpE,OAAO,IAAI,CAAC;IACd,CAAC;IAeD,mEAAmE;IACzD,oBAAoB,CAC5B,OAAuB;QAEvB,IAAI,OAAO,CAAC,OAAO,CAAC,aAAa;YAAE,OAAO,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QACxE,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,UAAU,IAAI,EAAE,CAAC,CAAC,uBAAuB,CAAC,CAAC;QAChE,OAAQ,GAAkD,IAAI,IAAI,CAAC;IACrE,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import type { ChainAdapter } from './adapter.js';
2
+ /** TRON (`tron:<name>`) ChainAdapter. */
3
+ export declare class TronChainAdapter implements ChainAdapter {
4
+ parseChainId(network: string): number;
5
+ validateNetwork(network: string): boolean;
6
+ validateAddress(address: string): boolean;
7
+ normalizeAddress(address: string): string;
8
+ /** TIP-712 requires 0x-prefixed EVM-hex form for every address field. */
9
+ toSigningAddress(address: string): string;
10
+ }
11
+ //# sourceMappingURL=tronAdapter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tronAdapter.d.ts","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/tronAdapter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAUjD,yCAAyC;AACzC,qBAAa,gBAAiB,YAAW,YAAY;IACnD,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAQrC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAIzC,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAQzC,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAYzC,yEAAyE;IACzE,gBAAgB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;CAG1C"}
@@ -0,0 +1,48 @@
1
+ import { TronAddressConverter, toBase58 } from '../../address.js';
2
+ const TRON_CHAIN_IDS = {
3
+ 'tron:mainnet': 728126428,
4
+ 'tron:shasta': 2494104990,
5
+ 'tron:nile': 3448148188,
6
+ };
7
+ const TRON_CONVERTER = new TronAddressConverter();
8
+ /** TRON (`tron:<name>`) ChainAdapter. */
9
+ export class TronChainAdapter {
10
+ parseChainId(network) {
11
+ const id = TRON_CHAIN_IDS[network];
12
+ if (id === undefined) {
13
+ throw new Error(`Unknown TRON network: ${network}`);
14
+ }
15
+ return id;
16
+ }
17
+ validateNetwork(network) {
18
+ return network.startsWith('tron:');
19
+ }
20
+ validateAddress(address) {
21
+ if (typeof address !== 'string')
22
+ return false;
23
+ // Accept both Base58 (T...) and 0x-prefixed hex forms
24
+ if (address.startsWith('T') && address.length === 34)
25
+ return true;
26
+ if (address.startsWith('0x') && address.length === 42)
27
+ return true;
28
+ return false;
29
+ }
30
+ normalizeAddress(address) {
31
+ if (!this.validateAddress(address))
32
+ return address;
33
+ if (address.startsWith('0x')) {
34
+ try {
35
+ return toBase58(address);
36
+ }
37
+ catch {
38
+ return address;
39
+ }
40
+ }
41
+ return address;
42
+ }
43
+ /** TIP-712 requires 0x-prefixed EVM-hex form for every address field. */
44
+ toSigningAddress(address) {
45
+ return TRON_CONVERTER.toEvmFormat(address);
46
+ }
47
+ }
48
+ //# sourceMappingURL=tronAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tronAdapter.js","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/tronAdapter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAGlE,MAAM,cAAc,GAA2B;IAC7C,cAAc,EAAE,SAAS;IACzB,aAAa,EAAE,UAAU;IACzB,WAAW,EAAE,UAAU;CACxB,CAAC;AAEF,MAAM,cAAc,GAAG,IAAI,oBAAoB,EAAE,CAAC;AAElD,yCAAyC;AACzC,MAAM,OAAO,gBAAgB;IAC3B,YAAY,CAAC,OAAe;QAC1B,MAAM,EAAE,GAAG,cAAc,CAAC,OAAO,CAAC,CAAC;QACnC,IAAI,EAAE,KAAK,SAAS,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,yBAAyB,OAAO,EAAE,CAAC,CAAC;QACtD,CAAC;QACD,OAAO,EAAE,CAAC;IACZ,CAAC;IAED,eAAe,CAAC,OAAe;QAC7B,OAAO,OAAO,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;IACrC,CAAC;IAED,eAAe,CAAC,OAAe;QAC7B,IAAI,OAAO,OAAO,KAAK,QAAQ;YAAE,OAAO,KAAK,CAAC;QAC9C,sDAAsD;QACtD,IAAI,OAAO,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QAClE,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,OAAO,CAAC,MAAM,KAAK,EAAE;YAAE,OAAO,IAAI,CAAC;QACnE,OAAO,KAAK,CAAC;IACf,CAAC;IAED,gBAAgB,CAAC,OAAe;QAC9B,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;YAAE,OAAO,OAAO,CAAC;QACnD,IAAI,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,OAAO,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC3B,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,yEAAyE;IACzE,gBAAgB,CAAC,OAAe;QAC9B,OAAO,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;CACF"}
@@ -4,9 +4,9 @@
4
4
  * exact uses ERC-3009 TransferWithAuthorization for direct token transfers
5
5
  * without going through a PaymentPermit contract.
6
6
  */
7
- import type { Hex } from '../address.js';
8
- import type { TransferAuthorization } from '../types/payment.js';
9
- export type { TransferAuthorization } from '../types/payment.js';
7
+ import type { Hex } from '../../address.js';
8
+ import type { TransferAuthorization } from '../../types/payment.js';
9
+ export type { TransferAuthorization } from '../../types/payment.js';
10
10
  /** Scheme name */
11
11
  export declare const SCHEME_EXACT = "exact";
12
12
  /** Default validity period (1 hour) */
@@ -54,4 +54,4 @@ export declare function createNonce(): string;
54
54
  * Adds a 30-second buffer before now to account for clock skew.
55
55
  */
56
56
  export declare function createValidityWindow(duration?: number): [number, number];
57
- //# sourceMappingURL=nativeExact.d.ts.map
57
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAC;AAC5C,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,YAAY,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AAEpE,kBAAkB;AAClB,eAAO,MAAM,YAAY,UAAU,CAAC;AAEpC,uCAAuC;AACvC,eAAO,MAAM,wBAAwB,OAAO,CAAC;AAE7C;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;CAS7B,CAAC;AAEX,eAAO,MAAM,0BAA0B,8BAA8B,CAAC;AAEtE;;GAEG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,YAAY,EAAE,MAAM,EACpB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,MAAM,GACxB,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAOzB;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,IAAI,EAAE,qBAAqB,EAC3B,gBAAgB,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,GAAG,GACtC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CASzB;AAED;;GAEG;AACH,wBAAgB,WAAW,IAAI,MAAM,CAIpC;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,CAClC,QAAQ,GAAE,MAAiC,GAC1C,CAAC,MAAM,EAAE,MAAM,CAAC,CAGlB"}
@@ -63,4 +63,4 @@ export function createValidityWindow(duration = DEFAULT_VALIDITY_SECONDS) {
63
63
  const now = Math.floor(Date.now() / 1000);
64
64
  return [now - 30, now + duration];
65
65
  }
66
- //# sourceMappingURL=nativeExact.js.map
66
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/mechanisms/_exact_base/types.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,kBAAkB;AAClB,MAAM,CAAC,MAAM,YAAY,GAAG,OAAO,CAAC;AAEpC,uCAAuC;AACvC,MAAM,CAAC,MAAM,wBAAwB,GAAG,IAAI,CAAC;AAE7C;;;GAGG;AACH,MAAM,CAAC,MAAM,0BAA0B,GAAG;IACxC,yBAAyB,EAAE;QACzB,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE;QACjC,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,SAAS,EAAE;QAC/B,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;QAClC,EAAE,IAAI,EAAE,YAAY,EAAE,IAAI,EAAE,SAAS,EAAE;QACvC,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,SAAS,EAAE;QACxC,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE;KACnC;CACO,CAAC;AAEX,MAAM,CAAC,MAAM,0BAA0B,GAAG,2BAA2B,CAAC;AAEtE;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAC/B,SAAiB,EACjB,YAAoB,EACpB,OAAe,EACf,iBAAyB;IAEzB,OAAO;QACL,IAAI,EAAE,SAAS;QACf,OAAO,EAAE,YAAY;QACrB,OAAO;QACP,iBAAiB;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,kBAAkB,CAChC,IAA2B,EAC3B,gBAAuC;IAEvC,OAAO;QACL,IAAI,EAAE,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC;QACjC,EAAE,EAAE,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC7B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;QACzB,UAAU,EAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC;QACnC,WAAW,EAAE,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC;QACrC,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW;IACzB,MAAM,KAAK,GAAG,IAAI,UAAU,CAAC,EAAE,CAAC,CAAC;IACjC,MAAM,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAC9B,OAAO,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AACrF,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,oBAAoB,CAClC,WAAmB,wBAAwB;IAE3C,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,GAAG,EAAE,EAAE,GAAG,GAAG,QAAQ,CAAC,CAAC;AACpC,CAAC"}
@@ -0,0 +1,44 @@
1
+ /**
2
+ * Shared base for `exact_permit` scheme facilitator mechanisms.
3
+ *
4
+ * Mirrors Python `mechanisms._exact_permit_base.facilitator.BaseExactPermitFacilitatorMechanism`.
5
+ */
6
+ import type { FacilitatorMechanism } from '../../facilitator/x402Facilitator.js';
7
+ import type { FeeQuoteResponse, PaymentPayload, PaymentRequirements, SettleResponse, VerifyResponse } from '../../types/index.js';
8
+ /** Fee policy used by `feeQuote`. */
9
+ export interface BaseExactPermitFee {
10
+ /** Address that collects the facilitator fee. */
11
+ feeTo: string;
12
+ /** Optional caller address that the on-chain contract requires. */
13
+ caller?: string;
14
+ /**
15
+ * Base fee in smallest unit, keyed by `${network}:${tokenAddress}`. Tokens
16
+ * not in this map use {@link defaultBaseFee}.
17
+ */
18
+ baseFeesByToken?: Record<string, string>;
19
+ /** Fallback fee when no per-token entry matches. Default `"0"`. */
20
+ defaultBaseFee?: string;
21
+ }
22
+ export declare abstract class BaseExactPermitFacilitatorMechanism implements FacilitatorMechanism {
23
+ protected readonly fee: BaseExactPermitFee;
24
+ constructor(fee: BaseExactPermitFee);
25
+ scheme(): string;
26
+ feeQuote(accept: PaymentRequirements, _context?: Record<string, unknown>): Promise<FeeQuoteResponse | null>;
27
+ /**
28
+ * Off-chain verify path: structural checks live here, signature + balance
29
+ * + nonce + on-chain state checks go in subclass.
30
+ */
31
+ verify(payload: PaymentPayload, requirements: PaymentRequirements): Promise<VerifyResponse>;
32
+ /**
33
+ * Chain-specific on-chain verification. Default: trust upstream
34
+ * (returns `isValid: true`). Subclasses MUST override for real
35
+ * signature recovery + balance + nonce checks.
36
+ */
37
+ protected verifyOnChain(_payload: PaymentPayload, _requirements: PaymentRequirements): Promise<VerifyResponse>;
38
+ /**
39
+ * Submit the permit on-chain. Chain-specific — subclasses MUST implement
40
+ * via viem (EVM) / tronweb (TRON).
41
+ */
42
+ abstract settle(payload: PaymentPayload, requirements: PaymentRequirements): Promise<SettleResponse>;
43
+ }
44
+ //# sourceMappingURL=facilitator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../../src/mechanisms/_exact_permit_base/facilitator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sCAAsC,CAAC;AACjF,OAAO,KAAK,EACV,gBAAgB,EAChB,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,cAAc,EACf,MAAM,sBAAsB,CAAC;AAI9B,qCAAqC;AACrC,MAAM,WAAW,kBAAkB;IACjC,iDAAiD;IACjD,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACzC,mEAAmE;IACnE,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,8BAAsB,mCAAoC,YAAW,oBAAoB;IAC3E,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,kBAAkB;gBAAvB,GAAG,EAAE,kBAAkB;IAEtD,MAAM,IAAI,MAAM;IAIV,QAAQ,CACZ,MAAM,EAAE,mBAAmB,EAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GACjC,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiBnC;;;OAGG;IACG,MAAM,CACV,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,cAAc,CAAC;IAuB1B;;;;OAIG;cACa,aAAa,CAC3B,QAAQ,EAAE,cAAc,EACxB,aAAa,EAAE,mBAAmB,GACjC,OAAO,CAAC,cAAc,CAAC;IAI1B;;;OAGG;IACH,QAAQ,CAAC,MAAM,CACb,OAAO,EAAE,cAAc,EACvB,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,cAAc,CAAC;CAC3B"}
@@ -0,0 +1,65 @@
1
+ /**
2
+ * Shared base for `exact_permit` scheme facilitator mechanisms.
3
+ *
4
+ * Mirrors Python `mechanisms._exact_permit_base.facilitator.BaseExactPermitFacilitatorMechanism`.
5
+ */
6
+ const SCHEME_EXACT_PERMIT = 'exact_permit';
7
+ export class BaseExactPermitFacilitatorMechanism {
8
+ fee;
9
+ constructor(fee) {
10
+ this.fee = fee;
11
+ }
12
+ scheme() {
13
+ return SCHEME_EXACT_PERMIT;
14
+ }
15
+ async feeQuote(accept, _context) {
16
+ const key = `${accept.network}:${accept.asset.toLowerCase()}`;
17
+ const feeAmount = this.fee.baseFeesByToken?.[key] ?? this.fee.defaultBaseFee ?? '0';
18
+ return {
19
+ fee: {
20
+ feeTo: this.fee.feeTo,
21
+ feeAmount,
22
+ ...(this.fee.caller ? { caller: this.fee.caller } : {}),
23
+ },
24
+ pricing: 'fixed',
25
+ scheme: this.scheme(),
26
+ network: accept.network,
27
+ asset: accept.asset,
28
+ };
29
+ }
30
+ /**
31
+ * Off-chain verify path: structural checks live here, signature + balance
32
+ * + nonce + on-chain state checks go in subclass.
33
+ */
34
+ async verify(payload, requirements) {
35
+ const permit = payload.payload.paymentPermit;
36
+ if (!permit) {
37
+ return { isValid: false, invalidReason: 'missing_permit' };
38
+ }
39
+ if (permit.payment.payToken !== requirements.asset) {
40
+ return { isValid: false, invalidReason: 'asset_mismatch' };
41
+ }
42
+ if (permit.payment.payTo !== requirements.payTo) {
43
+ return { isValid: false, invalidReason: 'payTo_mismatch' };
44
+ }
45
+ try {
46
+ if (BigInt(permit.payment.payAmount) < BigInt(requirements.amount)) {
47
+ return { isValid: false, invalidReason: 'amount_too_low' };
48
+ }
49
+ }
50
+ catch {
51
+ return { isValid: false, invalidReason: 'invalid_amount' };
52
+ }
53
+ // Chain-specific signature + on-chain balance / nonce checks
54
+ return this.verifyOnChain(payload, requirements);
55
+ }
56
+ /**
57
+ * Chain-specific on-chain verification. Default: trust upstream
58
+ * (returns `isValid: true`). Subclasses MUST override for real
59
+ * signature recovery + balance + nonce checks.
60
+ */
61
+ async verifyOnChain(_payload, _requirements) {
62
+ return { isValid: true };
63
+ }
64
+ }
65
+ //# sourceMappingURL=facilitator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../../src/mechanisms/_exact_permit_base/facilitator.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAWH,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAiB3C,MAAM,OAAgB,mCAAmC;IACxB;IAA/B,YAA+B,GAAuB;QAAvB,QAAG,GAAH,GAAG,CAAoB;IAAG,CAAC;IAE1D,MAAM;QACJ,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,MAA2B,EAC3B,QAAkC;QAElC,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,OAAO,IAAI,MAAM,CAAC,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;QAC9D,MAAM,SAAS,GACb,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,GAAG,CAAC,cAAc,IAAI,GAAG,CAAC;QACpE,OAAO;YACL,GAAG,EAAE;gBACH,KAAK,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK;gBACrB,SAAS;gBACT,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACxD;YACD,OAAO,EAAE,OAAO;YAChB,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE;YACrB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,KAAK,EAAE,MAAM,CAAC,KAAK;SACpB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,MAAM,CACV,OAAuB,EACvB,YAAiC;QAEjC,MAAM,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC;QAC7C,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;YACnD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,KAAK,YAAY,CAAC,KAAK,EAAE,CAAC;YAChD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;QAC7D,CAAC;QACD,IAAI,CAAC;YACH,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;YAC7D,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;QAC7D,CAAC;QAED,6DAA6D;QAC7D,OAAO,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;IACnD,CAAC;IAED;;;;OAIG;IACO,KAAK,CAAC,aAAa,CAC3B,QAAwB,EACxB,aAAkC;QAElC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IAC3B,CAAC;CAUF"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Shared base for `exact_permit` scheme — mirrors Python
3
+ * `bankofai.x402.mechanisms._exact_permit_base`.
4
+ */
5
+ export { BaseExactPermitServerMechanism } from './server.js';
6
+ export { BaseExactPermitFacilitatorMechanism, } from './facilitator.js';
7
+ export type { BaseExactPermitFee } from './facilitator.js';
8
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/mechanisms/_exact_permit_base/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,mCAAmC,GACpC,MAAM,kBAAkB,CAAC;AAC1B,YAAY,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Shared base for `exact_permit` scheme — mirrors Python
3
+ * `bankofai.x402.mechanisms._exact_permit_base`.
4
+ */
5
+ export { BaseExactPermitServerMechanism } from './server.js';
6
+ export { BaseExactPermitFacilitatorMechanism, } from './facilitator.js';
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/mechanisms/_exact_permit_base/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,8BAA8B,EAAE,MAAM,aAAa,CAAC;AAC7D,OAAO,EACL,mCAAmC,GACpC,MAAM,kBAAkB,CAAC"}
@@ -0,0 +1,31 @@
1
+ /**
2
+ * Shared base for `exact_permit` scheme server mechanisms.
3
+ *
4
+ * Mirrors Python `mechanisms._exact_permit_base.server.BaseExactPermitServerMechanism`.
5
+ */
6
+ import type { ServerMechanism } from '../../server/types.js';
7
+ import type { PaymentPermit, PaymentRequirements } from '../../types/index.js';
8
+ export declare abstract class BaseExactPermitServerMechanism implements ServerMechanism {
9
+ /** CAIP-2 prefix this mechanism handles (`"eip155:"` or `"tron:"`). */
10
+ protected abstract getNetworkPrefix(): string;
11
+ /** Format-only address validation (no on-chain lookup). */
12
+ protected abstract validateAddressFormat(address: string): boolean;
13
+ scheme(): string;
14
+ parsePrice(price: string, network: string): Promise<import("../../tokens.js").AssetAmount>;
15
+ enhancePaymentRequirements(requirements: PaymentRequirements, _deliveryMode: string): Promise<PaymentRequirements>;
16
+ validatePaymentRequirements(requirements: PaymentRequirements): boolean;
17
+ /**
18
+ * Verify the EIP-712 / TIP-712 permit signature server-side.
19
+ *
20
+ * TODO(v0.6.0b): port Python's `verify_signature` —
21
+ * - hash the typed-data per chain
22
+ * - recover signer from `signature`
23
+ * - compare to `permit.buyer`
24
+ *
25
+ * Until then returns `true` and defers to the facilitator's authoritative
26
+ * verification. The interface is present so middleware can call it
27
+ * uniformly when full impl lands.
28
+ */
29
+ verifySignature(_permit: PaymentPermit | null | undefined, _signature: string, _network: string): Promise<boolean>;
30
+ }
31
+ //# sourceMappingURL=server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../../src/mechanisms/_exact_permit_base/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAC7D,OAAO,KAAK,EACV,aAAa,EACb,mBAAmB,EACpB,MAAM,sBAAsB,CAAC;AAI9B,8BAAsB,8BAA+B,YAAW,eAAe;IAC7E,uEAAuE;IACvE,SAAS,CAAC,QAAQ,CAAC,gBAAgB,IAAI,MAAM;IAC7C,2DAA2D;IAC3D,SAAS,CAAC,QAAQ,CAAC,qBAAqB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO;IAElE,MAAM,IAAI,MAAM;IAIV,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM;IAIzC,0BAA0B,CAC9B,YAAY,EAAE,mBAAmB,EACjC,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,mBAAmB,CAAC;IAa/B,2BAA2B,CAAC,YAAY,EAAE,mBAAmB,GAAG,OAAO;IAOvE;;;;;;;;;;;OAWG;IACG,eAAe,CACnB,OAAO,EAAE,aAAa,GAAG,IAAI,GAAG,SAAS,EACzC,UAAU,EAAE,MAAM,EAClB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,OAAO,CAAC;CAGpB"}
@@ -0,0 +1,53 @@
1
+ /**
2
+ * Shared base for `exact_permit` scheme server mechanisms.
3
+ *
4
+ * Mirrors Python `mechanisms._exact_permit_base.server.BaseExactPermitServerMechanism`.
5
+ */
6
+ import { findByAddress, parsePrice } from '../../tokens.js';
7
+ const SCHEME_EXACT_PERMIT = 'exact_permit';
8
+ export class BaseExactPermitServerMechanism {
9
+ scheme() {
10
+ return SCHEME_EXACT_PERMIT;
11
+ }
12
+ async parsePrice(price, network) {
13
+ return parsePrice(price, network);
14
+ }
15
+ async enhancePaymentRequirements(requirements, _deliveryMode) {
16
+ const token = findByAddress(requirements.network, requirements.asset);
17
+ if (!token)
18
+ return requirements;
19
+ return {
20
+ ...requirements,
21
+ extra: {
22
+ ...(requirements.extra ?? {}),
23
+ name: token.name,
24
+ ...(token.version ? { version: token.version } : {}),
25
+ },
26
+ };
27
+ }
28
+ validatePaymentRequirements(requirements) {
29
+ if (!requirements.network.startsWith(this.getNetworkPrefix()))
30
+ return false;
31
+ if (!this.validateAddressFormat(requirements.asset))
32
+ return false;
33
+ if (!this.validateAddressFormat(requirements.payTo))
34
+ return false;
35
+ return true;
36
+ }
37
+ /**
38
+ * Verify the EIP-712 / TIP-712 permit signature server-side.
39
+ *
40
+ * TODO(v0.6.0b): port Python's `verify_signature` —
41
+ * - hash the typed-data per chain
42
+ * - recover signer from `signature`
43
+ * - compare to `permit.buyer`
44
+ *
45
+ * Until then returns `true` and defers to the facilitator's authoritative
46
+ * verification. The interface is present so middleware can call it
47
+ * uniformly when full impl lands.
48
+ */
49
+ async verifySignature(_permit, _signature, _network) {
50
+ return true;
51
+ }
52
+ }
53
+ //# sourceMappingURL=server.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/mechanisms/_exact_permit_base/server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAO5D,MAAM,mBAAmB,GAAG,cAAc,CAAC;AAE3C,MAAM,OAAgB,8BAA8B;IAMlD,MAAM;QACJ,OAAO,mBAAmB,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAa,EAAE,OAAe;QAC7C,OAAO,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;IACpC,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,YAAiC,EACjC,aAAqB;QAErB,MAAM,KAAK,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QACtE,IAAI,CAAC,KAAK;YAAE,OAAO,YAAY,CAAC;QAChC,OAAO;YACL,GAAG,YAAY;YACf,KAAK,EAAE;gBACL,GAAG,CAAC,YAAY,CAAC,KAAK,IAAI,EAAE,CAAC;gBAC7B,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;aACrD;SACF,CAAC;IACJ,CAAC;IAED,2BAA2B,CAAC,YAAiC;QAC3D,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,gBAAgB,EAAE,CAAC;YAAE,OAAO,KAAK,CAAC;QAC5E,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAClE,IAAI,CAAC,IAAI,CAAC,qBAAqB,CAAC,YAAY,CAAC,KAAK,CAAC;YAAE,OAAO,KAAK,CAAC;QAClE,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;;;;;;;;;;OAWG;IACH,KAAK,CAAC,eAAe,CACnB,OAAyC,EACzC,UAAkB,EAClB,QAAgB;QAEhB,OAAO,IAAI,CAAC;IACd,CAAC;CACF"}
@@ -4,7 +4,7 @@
4
4
  * Uses ERC-3009 TransferWithAuthorization with EIP-712 signing.
5
5
  * EVM addresses are used directly without conversion.
6
6
  */
7
- import type { ClientMechanism, ClientSigner, PaymentRequirements, PaymentPayload } from '../index.js';
7
+ import type { ClientMechanism, ClientSigner, PaymentRequirements, PaymentPayload } from '../../../index.js';
8
8
  /**
9
9
  * EVM client mechanism for "exact" payment scheme
10
10
  */
@@ -16,4 +16,4 @@ export declare class ExactEvmClientMechanism implements ClientMechanism {
16
16
  scheme(): string;
17
17
  createPaymentPayload(requirements: PaymentRequirements, resource: string): Promise<PaymentPayload>;
18
18
  }
19
- //# sourceMappingURL=nativeExactEvm.d.ts.map
19
+ //# sourceMappingURL=client.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../../../../src/mechanisms/evm/exact/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,YAAY,EACZ,mBAAmB,EACnB,cAAc,EACf,MAAM,mBAAmB,CAAC;AAiB3B;;GAEG;AACH,qBAAa,uBAAwB,YAAW,eAAe;IAC7D,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,gBAAgB,CAA6B;gBAEzC,MAAM,EAAE,YAAY;IAIhC,SAAS,IAAI,YAAY;IAIzB,MAAM,IAAI,MAAM;IAIV,oBAAoB,CACxB,YAAY,EAAE,mBAAmB,EACjC,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,cAAc,CAAC;CAoD3B"}
@@ -4,9 +4,9 @@
4
4
  * Uses ERC-3009 TransferWithAuthorization with EIP-712 signing.
5
5
  * EVM addresses are used directly without conversion.
6
6
  */
7
- import { getChainId, EvmAddressConverter, } from '../index.js';
8
- import { findByAddress } from '../tokens.js';
9
- import { SCHEME_EXACT, TRANSFER_AUTH_EIP712_TYPES, TRANSFER_AUTH_PRIMARY_TYPE, buildEip712Domain, buildEip712Message, createNonce, createValidityWindow, } from './nativeExact.js';
7
+ import { getChainId, EvmAddressConverter, } from '../../../index.js';
8
+ import { findByAddress } from '../../../tokens.js';
9
+ import { SCHEME_EXACT, TRANSFER_AUTH_EIP712_TYPES, TRANSFER_AUTH_PRIMARY_TYPE, buildEip712Domain, buildEip712Message, createNonce, createValidityWindow, } from '../../_exact_base/types.js';
10
10
  /**
11
11
  * EVM client mechanism for "exact" payment scheme
12
12
  */
@@ -58,4 +58,4 @@ export class ExactEvmClientMechanism {
58
58
  };
59
59
  }
60
60
  }
61
- //# sourceMappingURL=nativeExactEvm.js.map
61
+ //# sourceMappingURL=client.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../../../../src/mechanisms/evm/exact/client.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAQH,OAAO,EACL,UAAU,EACV,mBAAmB,GACpB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACnD,OAAO,EACL,YAAY,EACZ,0BAA0B,EAC1B,0BAA0B,EAC1B,iBAAiB,EACjB,kBAAkB,EAClB,WAAW,EACX,oBAAoB,GACrB,MAAM,4BAA4B,CAAC;AAGpC;;GAEG;AACH,MAAM,OAAO,uBAAuB;IAC1B,MAAM,CAAe;IACrB,gBAAgB,GAAG,IAAI,mBAAmB,EAAE,CAAC;IAErD,YAAY,MAAoB;QAC9B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,SAAS;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,MAAM;QACJ,OAAO,YAAY,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,oBAAoB,CACxB,YAAiC,EACjC,QAAgB;QAEhB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC;QACxC,MAAM,QAAQ,GAAG,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,UAAU,EAAE,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;QAEzD,MAAM,CAAC,UAAU,EAAE,WAAW,CAAC,GAAG,oBAAoB,EAAE,CAAC;QACzD,MAAM,KAAK,GAAG,WAAW,EAAE,CAAC;QAE5B,MAAM,aAAa,GAA0B;YAC3C,IAAI,EAAE,QAAQ;YACd,EAAE,EAAE,MAAM;YACV,KAAK,EAAE,YAAY,CAAC,MAAM;YAC1B,UAAU,EAAE,MAAM,CAAC,UAAU,CAAC;YAC9B,WAAW,EAAE,MAAM,CAAC,WAAW,CAAC;YAChC,KAAK;SACN,CAAC;QAEF,4CAA4C;QAC5C,MAAM,SAAS,GAAG,aAAa,CAAC,YAAY,CAAC,OAAO,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;QAC1E,MAAM,SAAS,GAAG,SAAS,EAAE,IAAI,IAAI,eAAe,CAAC;QACrD,MAAM,YAAY,GAAG,SAAS,EAAE,OAAO,IAAI,YAAY,CAAC,KAAK,EAAE,OAAO,IAAI,GAAG,CAAC;QAE9E,MAAM,OAAO,GAAG,UAAU,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;QACjD,MAAM,MAAM,GAAG,iBAAiB,CAC9B,SAAS,EACT,YAAY,EACZ,OAAO,EACP,SAAS,CAAC,WAAW,CAAC,YAAY,CAAC,KAAK,CAAC,CAC1C,CAAC;QAEF,MAAM,OAAO,GAAG,kBAAkB,CAAC,aAAa,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;QAEzF,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAC/C,MAAM,EACN,0BAA0B,EAC1B,OAAO,EACP,0BAA0B,CAC3B,CAAC;QAEF,OAAO;YACL,WAAW,EAAE,CAAC;YACd,QAAQ,EAAE,EAAE,GAAG,EAAE,QAAQ,EAAE;YAC3B,QAAQ,EAAE,YAAY;YACtB,OAAO,EAAE;gBACP,SAAS;gBACT,aAAa;aACd;YACD,UAAU,EAAE;gBACV,qBAAqB,EAAE,aAAa;aACrC;SACF,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import { ExactBaseFacilitatorMechanism } from '../../_exact_base/facilitator.js';
2
+ import type { PaymentPayload, PaymentRequirements, SettleResponse } from '../../../types/index.js';
3
+ /**
4
+ * BSC / EVM facilitator mechanism for the `exact` scheme.
5
+ *
6
+ * Mirrors Python `mechanisms.evm.exact.facilitator.ExactEvmFacilitatorMechanism`.
7
+ */
8
+ export declare class ExactEvmFacilitatorMechanism extends ExactBaseFacilitatorMechanism {
9
+ constructor();
10
+ /**
11
+ * Settle the ERC-3009 authorization by calling `transferWithAuthorization`
12
+ * on the token contract.
13
+ *
14
+ * TODO(v0.6.0b): wire a viem `WalletClient` and invoke the contract. Until
15
+ * then this returns `success: false` so the upstream caller knows the
16
+ * chain integration is not yet wired.
17
+ */
18
+ settle(_payload: PaymentPayload, requirements: PaymentRequirements): Promise<SettleResponse>;
19
+ }
20
+ //# sourceMappingURL=facilitator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facilitator.d.ts","sourceRoot":"","sources":["../../../../src/mechanisms/evm/exact/facilitator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AAEjF,OAAO,KAAK,EACV,cAAc,EACd,mBAAmB,EACnB,cAAc,EACf,MAAM,yBAAyB,CAAC;AAEjC;;;;GAIG;AACH,qBAAa,4BAA6B,SAAQ,6BAA6B;;IAK7E;;;;;;;OAOG;IACG,MAAM,CACV,QAAQ,EAAE,cAAc,EACxB,YAAY,EAAE,mBAAmB,GAChC,OAAO,CAAC,cAAc,CAAC;CAO3B"}
@@ -0,0 +1,28 @@
1
+ import { ExactBaseFacilitatorMechanism } from '../../_exact_base/facilitator.js';
2
+ import { EvmChainAdapter } from '../../_exact_base/evmAdapter.js';
3
+ /**
4
+ * BSC / EVM facilitator mechanism for the `exact` scheme.
5
+ *
6
+ * Mirrors Python `mechanisms.evm.exact.facilitator.ExactEvmFacilitatorMechanism`.
7
+ */
8
+ export class ExactEvmFacilitatorMechanism extends ExactBaseFacilitatorMechanism {
9
+ constructor() {
10
+ super(new EvmChainAdapter());
11
+ }
12
+ /**
13
+ * Settle the ERC-3009 authorization by calling `transferWithAuthorization`
14
+ * on the token contract.
15
+ *
16
+ * TODO(v0.6.0b): wire a viem `WalletClient` and invoke the contract. Until
17
+ * then this returns `success: false` so the upstream caller knows the
18
+ * chain integration is not yet wired.
19
+ */
20
+ async settle(_payload, requirements) {
21
+ return {
22
+ success: false,
23
+ network: requirements.network,
24
+ errorReason: 'evm_exact_settle_not_implemented',
25
+ };
26
+ }
27
+ }
28
+ //# sourceMappingURL=facilitator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"facilitator.js","sourceRoot":"","sources":["../../../../src/mechanisms/evm/exact/facilitator.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,kCAAkC,CAAC;AACjF,OAAO,EAAE,eAAe,EAAE,MAAM,iCAAiC,CAAC;AAOlE;;;;GAIG;AACH,MAAM,OAAO,4BAA6B,SAAQ,6BAA6B;IAC7E;QACE,KAAK,CAAC,IAAI,eAAe,EAAE,CAAC,CAAC;IAC/B,CAAC;IAED;;;;;;;OAOG;IACH,KAAK,CAAC,MAAM,CACV,QAAwB,EACxB,YAAiC;QAEjC,OAAO;YACL,OAAO,EAAE,KAAK;YACd,OAAO,EAAE,YAAY,CAAC,OAAO;YAC7B,WAAW,EAAE,kCAAkC;SAChD,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,4 @@
1
+ export { ExactEvmClientMechanism } from './client.js';
2
+ export { ExactEvmServerMechanism } from './server.js';
3
+ export { ExactEvmFacilitatorMechanism } from './facilitator.js';
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/mechanisms/evm/exact/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACtD,OAAO,EAAE,4BAA4B,EAAE,MAAM,kBAAkB,CAAC"}