envoy-pay 0.1.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 (364) hide show
  1. package/CHANGELOG.md +99 -0
  2. package/LICENSE +200 -0
  3. package/README.md +529 -0
  4. package/dist/cjs/adapters/base.js +174 -0
  5. package/dist/cjs/adapters/base.js.map +1 -0
  6. package/dist/cjs/adapters/evm.js +339 -0
  7. package/dist/cjs/adapters/evm.js.map +1 -0
  8. package/dist/cjs/adapters/index.js +15 -0
  9. package/dist/cjs/adapters/index.js.map +1 -0
  10. package/dist/cjs/adapters/ows.js +204 -0
  11. package/dist/cjs/adapters/ows.js.map +1 -0
  12. package/dist/cjs/adapters/solana.js +210 -0
  13. package/dist/cjs/adapters/solana.js.map +1 -0
  14. package/dist/cjs/adapters/stellar.js +173 -0
  15. package/dist/cjs/adapters/stellar.js.map +1 -0
  16. package/dist/cjs/adapters/stripe.js +338 -0
  17. package/dist/cjs/adapters/stripe.js.map +1 -0
  18. package/dist/cjs/adapters/types.js +3 -0
  19. package/dist/cjs/adapters/types.js.map +1 -0
  20. package/dist/cjs/client.js +309 -0
  21. package/dist/cjs/client.js.map +1 -0
  22. package/dist/cjs/contracts/abis/EnvoyFacilitator.js +197 -0
  23. package/dist/cjs/contracts/abis/EnvoyFacilitator.js.map +1 -0
  24. package/dist/cjs/contracts/addresses.js +42 -0
  25. package/dist/cjs/contracts/addresses.js.map +1 -0
  26. package/dist/cjs/contracts/facilitator.js +225 -0
  27. package/dist/cjs/contracts/facilitator.js.map +1 -0
  28. package/dist/cjs/contracts/index.js +21 -0
  29. package/dist/cjs/contracts/index.js.map +1 -0
  30. package/dist/cjs/facilitator/facilitator-service.js +305 -0
  31. package/dist/cjs/facilitator/facilitator-service.js.map +1 -0
  32. package/dist/cjs/facilitator/fee-calculator.js +134 -0
  33. package/dist/cjs/facilitator/fee-calculator.js.map +1 -0
  34. package/dist/cjs/facilitator/index.js +12 -0
  35. package/dist/cjs/facilitator/index.js.map +1 -0
  36. package/dist/cjs/facilitator/types.js +99 -0
  37. package/dist/cjs/facilitator/types.js.map +1 -0
  38. package/dist/cjs/identity/agent-card.js +143 -0
  39. package/dist/cjs/identity/agent-card.js.map +1 -0
  40. package/dist/cjs/identity/agent-identity.js +166 -0
  41. package/dist/cjs/identity/agent-identity.js.map +1 -0
  42. package/dist/cjs/identity/did-resolver.js +149 -0
  43. package/dist/cjs/identity/did-resolver.js.map +1 -0
  44. package/dist/cjs/identity/erc8004/abis.js +218 -0
  45. package/dist/cjs/identity/erc8004/abis.js.map +1 -0
  46. package/dist/cjs/identity/erc8004/identity.js +268 -0
  47. package/dist/cjs/identity/erc8004/identity.js.map +1 -0
  48. package/dist/cjs/identity/erc8004/index.js +36 -0
  49. package/dist/cjs/identity/erc8004/index.js.map +1 -0
  50. package/dist/cjs/identity/erc8004/reputation.js +110 -0
  51. package/dist/cjs/identity/erc8004/reputation.js.map +1 -0
  52. package/dist/cjs/identity/erc8004/types.js +3 -0
  53. package/dist/cjs/identity/erc8004/types.js.map +1 -0
  54. package/dist/cjs/identity/index.js +61 -0
  55. package/dist/cjs/identity/index.js.map +1 -0
  56. package/dist/cjs/identity/owner-registry.js +140 -0
  57. package/dist/cjs/identity/owner-registry.js.map +1 -0
  58. package/dist/cjs/identity/reputation.js +193 -0
  59. package/dist/cjs/identity/reputation.js.map +1 -0
  60. package/dist/cjs/identity/types.js +16 -0
  61. package/dist/cjs/identity/types.js.map +1 -0
  62. package/dist/cjs/index.js +72 -0
  63. package/dist/cjs/index.js.map +1 -0
  64. package/dist/cjs/logger.js +7 -0
  65. package/dist/cjs/logger.js.map +1 -0
  66. package/dist/cjs/monitor/evm-watcher.js +165 -0
  67. package/dist/cjs/monitor/evm-watcher.js.map +1 -0
  68. package/dist/cjs/monitor/index.js +32 -0
  69. package/dist/cjs/monitor/index.js.map +1 -0
  70. package/dist/cjs/monitor/multi-watcher.js +94 -0
  71. package/dist/cjs/monitor/multi-watcher.js.map +1 -0
  72. package/dist/cjs/monitor/solana-watcher.js +172 -0
  73. package/dist/cjs/monitor/solana-watcher.js.map +1 -0
  74. package/dist/cjs/monitor/stellar-watcher.js +125 -0
  75. package/dist/cjs/monitor/stellar-watcher.js.map +1 -0
  76. package/dist/cjs/mpp.js +187 -0
  77. package/dist/cjs/mpp.js.map +1 -0
  78. package/dist/cjs/policy.js +71 -0
  79. package/dist/cjs/policy.js.map +1 -0
  80. package/dist/cjs/providers/bridge.js +323 -0
  81. package/dist/cjs/providers/bridge.js.map +1 -0
  82. package/dist/cjs/providers/onchainos.js +210 -0
  83. package/dist/cjs/providers/onchainos.js.map +1 -0
  84. package/dist/cjs/requests/eip681.js +77 -0
  85. package/dist/cjs/requests/eip681.js.map +1 -0
  86. package/dist/cjs/requests/index.js +18 -0
  87. package/dist/cjs/requests/index.js.map +1 -0
  88. package/dist/cjs/requests/sep7.js +61 -0
  89. package/dist/cjs/requests/sep7.js.map +1 -0
  90. package/dist/cjs/requests/solana-pay.js +51 -0
  91. package/dist/cjs/requests/solana-pay.js.map +1 -0
  92. package/dist/cjs/requests/universal.js +40 -0
  93. package/dist/cjs/requests/universal.js.map +1 -0
  94. package/dist/cjs/server/index.js +35 -0
  95. package/dist/cjs/server/index.js.map +1 -0
  96. package/dist/cjs/server/mpp-gate.js +118 -0
  97. package/dist/cjs/server/mpp-gate.js.map +1 -0
  98. package/dist/cjs/server/payment-gate.js +92 -0
  99. package/dist/cjs/server/payment-gate.js.map +1 -0
  100. package/dist/cjs/server/receipt.js +52 -0
  101. package/dist/cjs/server/receipt.js.map +1 -0
  102. package/dist/cjs/server/webhook.js +122 -0
  103. package/dist/cjs/server/webhook.js.map +1 -0
  104. package/dist/cjs/server/x402-gate.js +103 -0
  105. package/dist/cjs/server/x402-gate.js.map +1 -0
  106. package/dist/cjs/solana.js +14 -0
  107. package/dist/cjs/solana.js.map +1 -0
  108. package/dist/cjs/stellar.js +14 -0
  109. package/dist/cjs/stellar.js.map +1 -0
  110. package/dist/cjs/wallet/balance-aggregator.js +149 -0
  111. package/dist/cjs/wallet/balance-aggregator.js.map +1 -0
  112. package/dist/cjs/wallet/chain-router.js +254 -0
  113. package/dist/cjs/wallet/chain-router.js.map +1 -0
  114. package/dist/cjs/wallet/index.js +15 -0
  115. package/dist/cjs/wallet/index.js.map +1 -0
  116. package/dist/cjs/wallet/intent-resolver.js +145 -0
  117. package/dist/cjs/wallet/intent-resolver.js.map +1 -0
  118. package/dist/cjs/wallet/session-manager.js +170 -0
  119. package/dist/cjs/wallet/session-manager.js.map +1 -0
  120. package/dist/cjs/wallet/types.js +14 -0
  121. package/dist/cjs/wallet/types.js.map +1 -0
  122. package/dist/cjs/wallet/unified-wallet.js +253 -0
  123. package/dist/cjs/wallet/unified-wallet.js.map +1 -0
  124. package/dist/esm/adapters/base.js +170 -0
  125. package/dist/esm/adapters/base.js.map +1 -0
  126. package/dist/esm/adapters/evm.js +334 -0
  127. package/dist/esm/adapters/evm.js.map +1 -0
  128. package/dist/esm/adapters/index.js +6 -0
  129. package/dist/esm/adapters/index.js.map +1 -0
  130. package/dist/esm/adapters/ows.js +194 -0
  131. package/dist/esm/adapters/ows.js.map +1 -0
  132. package/dist/esm/adapters/solana.js +206 -0
  133. package/dist/esm/adapters/solana.js.map +1 -0
  134. package/dist/esm/adapters/stellar.js +136 -0
  135. package/dist/esm/adapters/stellar.js.map +1 -0
  136. package/dist/esm/adapters/stripe.js +334 -0
  137. package/dist/esm/adapters/stripe.js.map +1 -0
  138. package/dist/esm/adapters/types.js +2 -0
  139. package/dist/esm/adapters/types.js.map +1 -0
  140. package/dist/esm/client.js +302 -0
  141. package/dist/esm/client.js.map +1 -0
  142. package/dist/esm/contracts/abis/EnvoyFacilitator.js +194 -0
  143. package/dist/esm/contracts/abis/EnvoyFacilitator.js.map +1 -0
  144. package/dist/esm/contracts/addresses.js +38 -0
  145. package/dist/esm/contracts/addresses.js.map +1 -0
  146. package/dist/esm/contracts/facilitator.js +218 -0
  147. package/dist/esm/contracts/facilitator.js.map +1 -0
  148. package/dist/esm/contracts/index.js +8 -0
  149. package/dist/esm/contracts/index.js.map +1 -0
  150. package/dist/esm/facilitator/facilitator-service.js +301 -0
  151. package/dist/esm/facilitator/facilitator-service.js.map +1 -0
  152. package/dist/esm/facilitator/fee-calculator.js +130 -0
  153. package/dist/esm/facilitator/fee-calculator.js.map +1 -0
  154. package/dist/esm/facilitator/index.js +5 -0
  155. package/dist/esm/facilitator/index.js.map +1 -0
  156. package/dist/esm/facilitator/types.js +96 -0
  157. package/dist/esm/facilitator/types.js.map +1 -0
  158. package/dist/esm/identity/agent-card.js +139 -0
  159. package/dist/esm/identity/agent-card.js.map +1 -0
  160. package/dist/esm/identity/agent-identity.js +162 -0
  161. package/dist/esm/identity/agent-identity.js.map +1 -0
  162. package/dist/esm/identity/did-resolver.js +145 -0
  163. package/dist/esm/identity/did-resolver.js.map +1 -0
  164. package/dist/esm/identity/erc8004/abis.js +215 -0
  165. package/dist/esm/identity/erc8004/abis.js.map +1 -0
  166. package/dist/esm/identity/erc8004/identity.js +250 -0
  167. package/dist/esm/identity/erc8004/identity.js.map +1 -0
  168. package/dist/esm/identity/erc8004/index.js +13 -0
  169. package/dist/esm/identity/erc8004/index.js.map +1 -0
  170. package/dist/esm/identity/erc8004/reputation.js +105 -0
  171. package/dist/esm/identity/erc8004/reputation.js.map +1 -0
  172. package/dist/esm/identity/erc8004/types.js +2 -0
  173. package/dist/esm/identity/erc8004/types.js.map +1 -0
  174. package/dist/esm/identity/index.js +19 -0
  175. package/dist/esm/identity/index.js.map +1 -0
  176. package/dist/esm/identity/owner-registry.js +136 -0
  177. package/dist/esm/identity/owner-registry.js.map +1 -0
  178. package/dist/esm/identity/reputation.js +189 -0
  179. package/dist/esm/identity/reputation.js.map +1 -0
  180. package/dist/esm/identity/types.js +15 -0
  181. package/dist/esm/identity/types.js.map +1 -0
  182. package/dist/esm/index.js +37 -0
  183. package/dist/esm/index.js.map +1 -0
  184. package/dist/esm/logger.js +3 -0
  185. package/dist/esm/logger.js.map +1 -0
  186. package/dist/esm/monitor/evm-watcher.js +162 -0
  187. package/dist/esm/monitor/evm-watcher.js.map +1 -0
  188. package/dist/esm/monitor/index.js +25 -0
  189. package/dist/esm/monitor/index.js.map +1 -0
  190. package/dist/esm/monitor/multi-watcher.js +91 -0
  191. package/dist/esm/monitor/multi-watcher.js.map +1 -0
  192. package/dist/esm/monitor/solana-watcher.js +169 -0
  193. package/dist/esm/monitor/solana-watcher.js.map +1 -0
  194. package/dist/esm/monitor/stellar-watcher.js +122 -0
  195. package/dist/esm/monitor/stellar-watcher.js.map +1 -0
  196. package/dist/esm/mpp.js +175 -0
  197. package/dist/esm/mpp.js.map +1 -0
  198. package/dist/esm/policy.js +67 -0
  199. package/dist/esm/policy.js.map +1 -0
  200. package/dist/esm/providers/bridge.js +319 -0
  201. package/dist/esm/providers/bridge.js.map +1 -0
  202. package/dist/esm/providers/onchainos.js +172 -0
  203. package/dist/esm/providers/onchainos.js.map +1 -0
  204. package/dist/esm/requests/eip681.js +74 -0
  205. package/dist/esm/requests/eip681.js.map +1 -0
  206. package/dist/esm/requests/index.js +11 -0
  207. package/dist/esm/requests/index.js.map +1 -0
  208. package/dist/esm/requests/sep7.js +58 -0
  209. package/dist/esm/requests/sep7.js.map +1 -0
  210. package/dist/esm/requests/solana-pay.js +48 -0
  211. package/dist/esm/requests/solana-pay.js.map +1 -0
  212. package/dist/esm/requests/universal.js +37 -0
  213. package/dist/esm/requests/universal.js.map +1 -0
  214. package/dist/esm/server/index.js +27 -0
  215. package/dist/esm/server/index.js.map +1 -0
  216. package/dist/esm/server/mpp-gate.js +115 -0
  217. package/dist/esm/server/mpp-gate.js.map +1 -0
  218. package/dist/esm/server/payment-gate.js +89 -0
  219. package/dist/esm/server/payment-gate.js.map +1 -0
  220. package/dist/esm/server/receipt.js +48 -0
  221. package/dist/esm/server/receipt.js.map +1 -0
  222. package/dist/esm/server/webhook.js +119 -0
  223. package/dist/esm/server/webhook.js.map +1 -0
  224. package/dist/esm/server/x402-gate.js +100 -0
  225. package/dist/esm/server/x402-gate.js.map +1 -0
  226. package/dist/esm/solana.js +8 -0
  227. package/dist/esm/solana.js.map +1 -0
  228. package/dist/esm/stellar.js +8 -0
  229. package/dist/esm/stellar.js.map +1 -0
  230. package/dist/esm/wallet/balance-aggregator.js +145 -0
  231. package/dist/esm/wallet/balance-aggregator.js.map +1 -0
  232. package/dist/esm/wallet/chain-router.js +250 -0
  233. package/dist/esm/wallet/chain-router.js.map +1 -0
  234. package/dist/esm/wallet/index.js +7 -0
  235. package/dist/esm/wallet/index.js.map +1 -0
  236. package/dist/esm/wallet/intent-resolver.js +141 -0
  237. package/dist/esm/wallet/intent-resolver.js.map +1 -0
  238. package/dist/esm/wallet/session-manager.js +166 -0
  239. package/dist/esm/wallet/session-manager.js.map +1 -0
  240. package/dist/esm/wallet/types.js +13 -0
  241. package/dist/esm/wallet/types.js.map +1 -0
  242. package/dist/esm/wallet/unified-wallet.js +249 -0
  243. package/dist/esm/wallet/unified-wallet.js.map +1 -0
  244. package/dist/types/adapters/base.d.ts +53 -0
  245. package/dist/types/adapters/base.d.ts.map +1 -0
  246. package/dist/types/adapters/evm.d.ts +93 -0
  247. package/dist/types/adapters/evm.d.ts.map +1 -0
  248. package/dist/types/adapters/index.d.ts +7 -0
  249. package/dist/types/adapters/index.d.ts.map +1 -0
  250. package/dist/types/adapters/ows.d.ts +123 -0
  251. package/dist/types/adapters/ows.d.ts.map +1 -0
  252. package/dist/types/adapters/solana.d.ts +77 -0
  253. package/dist/types/adapters/solana.d.ts.map +1 -0
  254. package/dist/types/adapters/stellar.d.ts +67 -0
  255. package/dist/types/adapters/stellar.d.ts.map +1 -0
  256. package/dist/types/adapters/stripe.d.ts +206 -0
  257. package/dist/types/adapters/stripe.d.ts.map +1 -0
  258. package/dist/types/adapters/types.d.ts +110 -0
  259. package/dist/types/adapters/types.d.ts.map +1 -0
  260. package/dist/types/client.d.ts +89 -0
  261. package/dist/types/client.d.ts.map +1 -0
  262. package/dist/types/contracts/abis/EnvoyFacilitator.d.ts +296 -0
  263. package/dist/types/contracts/abis/EnvoyFacilitator.d.ts.map +1 -0
  264. package/dist/types/contracts/addresses.d.ts +24 -0
  265. package/dist/types/contracts/addresses.d.ts.map +1 -0
  266. package/dist/types/contracts/facilitator.d.ts +172 -0
  267. package/dist/types/contracts/facilitator.d.ts.map +1 -0
  268. package/dist/types/contracts/index.d.ts +6 -0
  269. package/dist/types/contracts/index.d.ts.map +1 -0
  270. package/dist/types/facilitator/facilitator-service.d.ts +69 -0
  271. package/dist/types/facilitator/facilitator-service.d.ts.map +1 -0
  272. package/dist/types/facilitator/fee-calculator.d.ts +48 -0
  273. package/dist/types/facilitator/fee-calculator.d.ts.map +1 -0
  274. package/dist/types/facilitator/index.d.ts +5 -0
  275. package/dist/types/facilitator/index.d.ts.map +1 -0
  276. package/dist/types/facilitator/types.d.ts +221 -0
  277. package/dist/types/facilitator/types.d.ts.map +1 -0
  278. package/dist/types/identity/agent-card.d.ts +83 -0
  279. package/dist/types/identity/agent-card.d.ts.map +1 -0
  280. package/dist/types/identity/agent-identity.d.ts +102 -0
  281. package/dist/types/identity/agent-identity.d.ts.map +1 -0
  282. package/dist/types/identity/did-resolver.d.ts +70 -0
  283. package/dist/types/identity/did-resolver.d.ts.map +1 -0
  284. package/dist/types/identity/erc8004/abis.d.ts +336 -0
  285. package/dist/types/identity/erc8004/abis.d.ts.map +1 -0
  286. package/dist/types/identity/erc8004/identity.d.ts +109 -0
  287. package/dist/types/identity/erc8004/identity.d.ts.map +1 -0
  288. package/dist/types/identity/erc8004/index.d.ts +15 -0
  289. package/dist/types/identity/erc8004/index.d.ts.map +1 -0
  290. package/dist/types/identity/erc8004/reputation.d.ts +52 -0
  291. package/dist/types/identity/erc8004/reputation.d.ts.map +1 -0
  292. package/dist/types/identity/erc8004/types.d.ts +31 -0
  293. package/dist/types/identity/erc8004/types.d.ts.map +1 -0
  294. package/dist/types/identity/index.d.ts +10 -0
  295. package/dist/types/identity/index.d.ts.map +1 -0
  296. package/dist/types/identity/owner-registry.d.ts +68 -0
  297. package/dist/types/identity/owner-registry.d.ts.map +1 -0
  298. package/dist/types/identity/reputation.d.ts +66 -0
  299. package/dist/types/identity/reputation.d.ts.map +1 -0
  300. package/dist/types/identity/types.d.ts +182 -0
  301. package/dist/types/identity/types.d.ts.map +1 -0
  302. package/dist/types/index.d.ts +17 -0
  303. package/dist/types/index.d.ts.map +1 -0
  304. package/dist/types/logger.d.ts +10 -0
  305. package/dist/types/logger.d.ts.map +1 -0
  306. package/dist/types/monitor/evm-watcher.d.ts +40 -0
  307. package/dist/types/monitor/evm-watcher.d.ts.map +1 -0
  308. package/dist/types/monitor/index.d.ts +25 -0
  309. package/dist/types/monitor/index.d.ts.map +1 -0
  310. package/dist/types/monitor/multi-watcher.d.ts +48 -0
  311. package/dist/types/monitor/multi-watcher.d.ts.map +1 -0
  312. package/dist/types/monitor/solana-watcher.d.ts +36 -0
  313. package/dist/types/monitor/solana-watcher.d.ts.map +1 -0
  314. package/dist/types/monitor/stellar-watcher.d.ts +34 -0
  315. package/dist/types/monitor/stellar-watcher.d.ts.map +1 -0
  316. package/dist/types/mpp.d.ts +153 -0
  317. package/dist/types/mpp.d.ts.map +1 -0
  318. package/dist/types/policy.d.ts +40 -0
  319. package/dist/types/policy.d.ts.map +1 -0
  320. package/dist/types/providers/bridge.d.ts +162 -0
  321. package/dist/types/providers/bridge.d.ts.map +1 -0
  322. package/dist/types/providers/onchainos.d.ts +128 -0
  323. package/dist/types/providers/onchainos.d.ts.map +1 -0
  324. package/dist/types/requests/eip681.d.ts +51 -0
  325. package/dist/types/requests/eip681.d.ts.map +1 -0
  326. package/dist/types/requests/index.d.ts +11 -0
  327. package/dist/types/requests/index.d.ts.map +1 -0
  328. package/dist/types/requests/sep7.d.ts +56 -0
  329. package/dist/types/requests/sep7.d.ts.map +1 -0
  330. package/dist/types/requests/solana-pay.d.ts +50 -0
  331. package/dist/types/requests/solana-pay.d.ts.map +1 -0
  332. package/dist/types/requests/universal.d.ts +28 -0
  333. package/dist/types/requests/universal.d.ts.map +1 -0
  334. package/dist/types/server/index.d.ts +27 -0
  335. package/dist/types/server/index.d.ts.map +1 -0
  336. package/dist/types/server/mpp-gate.d.ts +66 -0
  337. package/dist/types/server/mpp-gate.d.ts.map +1 -0
  338. package/dist/types/server/payment-gate.d.ts +33 -0
  339. package/dist/types/server/payment-gate.d.ts.map +1 -0
  340. package/dist/types/server/receipt.d.ts +52 -0
  341. package/dist/types/server/receipt.d.ts.map +1 -0
  342. package/dist/types/server/webhook.d.ts +46 -0
  343. package/dist/types/server/webhook.d.ts.map +1 -0
  344. package/dist/types/server/x402-gate.d.ts +70 -0
  345. package/dist/types/server/x402-gate.d.ts.map +1 -0
  346. package/dist/types/solana.d.ts +7 -0
  347. package/dist/types/solana.d.ts.map +1 -0
  348. package/dist/types/stellar.d.ts +7 -0
  349. package/dist/types/stellar.d.ts.map +1 -0
  350. package/dist/types/wallet/balance-aggregator.d.ts +51 -0
  351. package/dist/types/wallet/balance-aggregator.d.ts.map +1 -0
  352. package/dist/types/wallet/chain-router.d.ts +44 -0
  353. package/dist/types/wallet/chain-router.d.ts.map +1 -0
  354. package/dist/types/wallet/index.d.ts +7 -0
  355. package/dist/types/wallet/index.d.ts.map +1 -0
  356. package/dist/types/wallet/intent-resolver.d.ts +39 -0
  357. package/dist/types/wallet/intent-resolver.d.ts.map +1 -0
  358. package/dist/types/wallet/session-manager.d.ts +57 -0
  359. package/dist/types/wallet/session-manager.d.ts.map +1 -0
  360. package/dist/types/wallet/types.d.ts +161 -0
  361. package/dist/types/wallet/types.d.ts.map +1 -0
  362. package/dist/types/wallet/unified-wallet.d.ts +122 -0
  363. package/dist/types/wallet/unified-wallet.d.ts.map +1 -0
  364. package/package.json +194 -0
@@ -0,0 +1,93 @@
1
+ import { PaymentAdapter } from './types';
2
+ import { Logger } from '../logger';
3
+ /** All EVM chains supported by envoy-pay. Celo is the first-class default. */
4
+ export type EvmChainName = 'celo' | 'celo-alfajores' | 'base' | 'base-sepolia' | 'arbitrum' | 'arbitrum-sepolia' | 'optimism' | 'optimism-sepolia' | 'ethereum' | 'ethereum-sepolia' | 'polygon' | 'polygon-amoy' | 'xlayer' | 'xlayer-testnet';
5
+ /** ERC-20 stablecoin descriptor (address + decimals). */
6
+ export interface StablecoinInfo {
7
+ address: `0x${string}`;
8
+ decimals: number;
9
+ }
10
+ export interface EvmAdapterOptions {
11
+ /**
12
+ * Chain to settle on.
13
+ * @example 'base', 'arbitrum', 'optimism', 'ethereum', 'polygon'
14
+ * @example 'base-sepolia', 'arbitrum-sepolia' (testnets)
15
+ */
16
+ chain: EvmChainName;
17
+ /**
18
+ * Asset to settle with.
19
+ * - 'native' — chain's native token (ETH on L1/L2, MATIC on Polygon, CELO on Celo)
20
+ * - 'USDC' — Circle's native USDC (ERC-20)
21
+ * - 'cUSD' / 'cEUR' / 'cREAL' — Mento stablecoins (Celo only)
22
+ * - any string symbol present in the chain's `stablecoins` map
23
+ * @default 'native'
24
+ */
25
+ asset?: 'native' | 'USDC' | 'cUSD' | 'cEUR' | 'cREAL' | 'USDT' | string;
26
+ /** Hex private key (0x-prefixed). If omitted, a random key is generated. */
27
+ privateKey?: `0x${string}`;
28
+ /** Optional custom RPC URL. Uses viem's default public RPCs if omitted. */
29
+ rpcUrl?: string;
30
+ /** Optional logger. SDK is silent by default. */
31
+ logger?: Logger;
32
+ }
33
+ /**
34
+ * EvmPaymentAdapter — Universal EVM on-chain settlement.
35
+ *
36
+ * One adapter for ALL EVM chains supported by x402:
37
+ * Base, Arbitrum, Optimism, Ethereum, Polygon — mainnet & testnet.
38
+ *
39
+ * Supports native token (ETH/MATIC) and USDC (Circle ERC-20) transfers.
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * // Arbitrum USDC settlement
44
+ * const adapter = new EvmPaymentAdapter({
45
+ * chain: 'arbitrum',
46
+ * asset: 'USDC',
47
+ * privateKey: '0x...',
48
+ * });
49
+ *
50
+ * // Base ETH settlement (testnet)
51
+ * const adapter = new EvmPaymentAdapter({
52
+ * chain: 'base-sepolia',
53
+ * asset: 'native',
54
+ * });
55
+ * ```
56
+ *
57
+ * @see https://x402.org — x402 payment protocol
58
+ * @see https://envoy.dev — envoy production infrastructure
59
+ */
60
+ export declare class EvmPaymentAdapter implements PaymentAdapter {
61
+ readonly chainName: string;
62
+ readonly caip2Id: string;
63
+ private wallet;
64
+ private publicClient;
65
+ private account;
66
+ private chainConfig;
67
+ private asset;
68
+ private log;
69
+ constructor(options: EvmAdapterOptions);
70
+ getAddress(): string;
71
+ /** Get native token balance (ETH, MATIC, etc.). */
72
+ getNativeBalance(): Promise<string>;
73
+ /** Get USDC balance (6 decimals). Returns '0.00' if USDC not supported. */
74
+ getUsdcBalance(): Promise<string>;
75
+ /** Get balance for any stablecoin symbol present on this chain. Returns '0.00' if not supported. */
76
+ getStablecoinBalance(symbol: string): Promise<string>;
77
+ /** List stablecoin symbols available on this chain. */
78
+ listStablecoins(): string[];
79
+ pay(destination: string, amount: string, network: string): Promise<string | null>;
80
+ private payNative;
81
+ private payStablecoin;
82
+ private shortAddr;
83
+ }
84
+ /** Returns metadata for all supported EVM chains. */
85
+ export declare function listEvmChains(): Array<{
86
+ name: EvmChainName;
87
+ displayName: string;
88
+ chainId: number;
89
+ caip2Id: string;
90
+ hasUsdc: boolean;
91
+ stablecoins: string[];
92
+ }>;
93
+ //# sourceMappingURL=evm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm.d.ts","sourceRoot":"","sources":["../../../src/adapters/evm.ts"],"names":[],"mappings":"AA2BA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAI/C,8EAA8E;AAC9E,MAAM,MAAM,YAAY,GACpB,MAAM,GACN,gBAAgB,GAChB,MAAM,GACN,cAAc,GACd,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,kBAAkB,GAClB,UAAU,GACV,kBAAkB,GAClB,SAAS,GACT,cAAc,GACd,QAAQ,GACR,gBAAgB,CAAC;AAErB,yDAAyD;AACzD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,KAAK,MAAM,EAAE,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA0KD,MAAM,WAAW,iBAAiB;IAChC;;;;OAIG;IACH,KAAK,EAAE,YAAY,CAAC;IACpB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,QAAQ,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,CAAC;IACxE,4EAA4E;IAC5E,UAAU,CAAC,EAAE,KAAK,MAAM,EAAE,CAAC;IAC3B,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;GA0BG;AACH,qBAAa,iBAAkB,YAAW,cAAc;IACtD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,OAAO,CAAyC;IACxD,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,iBAAiB;IAwCtC,UAAU,IAAI,MAAM;IAIpB,mDAAmD;IAC7C,gBAAgB,IAAI,OAAO,CAAC,MAAM,CAAC;IAOzC,2EAA2E;IACrE,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAIvC,oGAAoG;IAC9F,oBAAoB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAc3D,uDAAuD;IACvD,eAAe,IAAI,MAAM,EAAE;IAIrB,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YASX,SAAS;YAqCT,aAAa;IA2C3B,OAAO,CAAC,SAAS;CAGlB;AAID,qDAAqD;AACrD,wBAAgB,aAAa,IAAI,KAAK,CAAC;IACrC,IAAI,EAAE,YAAY,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB,CAAC,CASD"}
@@ -0,0 +1,7 @@
1
+ export { PaymentAdapter } from './types';
2
+ export { EvmPaymentAdapter, EvmAdapterOptions, EvmChainName, listEvmChains } from './evm';
3
+ export { StripePaymentAdapter, StripeAdapterOptions } from './stripe';
4
+ export { BasePaymentAdapter, BaseAdapterOptions } from './base';
5
+ export { StellarPaymentAdapter, StellarPaymentAdapterOptions } from './stellar';
6
+ export { SolanaPaymentAdapter, SolanaAdapterOptions } from './solana';
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/adapters/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAC1F,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,QAAQ,CAAC;AAChE,OAAO,EAAE,qBAAqB,EAAE,4BAA4B,EAAE,MAAM,WAAW,CAAC;AAChF,OAAO,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC"}
@@ -0,0 +1,123 @@
1
+ /**
2
+ * OWS Adapter — Bridge between Open Wallet Standard and envoy.
3
+ *
4
+ * Uses `@open-wallet-standard/core` for local key management,
5
+ * policy-gated signing, and multi-chain address derivation.
6
+ * envoy handles the payment protocol layer (x402, MPP).
7
+ *
8
+ * Architecture:
9
+ * ```
10
+ * Agent → EnvoyClient → OWSAdapter → @open-wallet-standard/core
11
+ * ├── createWallet()
12
+ * ├── signTransaction()
13
+ * ├── signMessage()
14
+ * └── Policy Engine (spending limits)
15
+ * ```
16
+ *
17
+ * @example
18
+ * ```ts
19
+ * import { createOwsAdapter } from 'envoy-pay';
20
+ *
21
+ * // Create adapter backed by OWS local wallet
22
+ * const adapter = createOwsAdapter({
23
+ * walletName: 'agent-treasury',
24
+ * chain: 'evm',
25
+ * chainId: 'eip155:8453',
26
+ * rpcUrl: 'https://mainnet.base.org',
27
+ * });
28
+ *
29
+ * // Use with envoy client
30
+ * const client = new EnvoyClient({ adapter });
31
+ * await client.handle402(response);
32
+ * ```
33
+ *
34
+ * @see https://github.com/open-wallet-standard/core
35
+ * @see OWS Specification: docs/00-specification.md
36
+ */
37
+ import type { PaymentAdapter } from './types';
38
+ export interface OwsAdapterOptions {
39
+ /** Name of the OWS wallet (created if it doesn't exist). */
40
+ walletName: string;
41
+ /** Chain family for signing ('evm', 'solana', 'stellar', etc.). */
42
+ chain: 'evm' | 'solana' | 'xrpl' | 'sui' | 'bitcoin' | 'cosmos' | 'tron' | 'filecoin';
43
+ /** CAIP-2 chain identifier (e.g. 'eip155:8453'). */
44
+ chainId: string;
45
+ /** Custom RPC URL for signAndSend. If omitted, OWS uses built-in defaults. */
46
+ rpcUrl?: string;
47
+ /** OWS vault path. Defaults to ~/.ows */
48
+ vaultPath?: string;
49
+ /** Passphrase for encrypted wallets, or an OWS API key token (ows_key_...). */
50
+ passphrase?: string;
51
+ /** Account index for HD derivation. Defaults to 0. */
52
+ accountIndex?: number;
53
+ /** Human-readable chain name for display. */
54
+ chainName?: string;
55
+ /** Logger function. */
56
+ logger?: (msg: string) => void;
57
+ }
58
+ /**
59
+ * Create a PaymentAdapter backed by an OWS local wallet.
60
+ *
61
+ * The adapter automatically creates the wallet if it doesn't exist,
62
+ * and derives the address for the specified chain.
63
+ */
64
+ export declare function createOwsAdapter(options: OwsAdapterOptions): PaymentAdapter;
65
+ /**
66
+ * Create an OWS policy for agent spending limits.
67
+ *
68
+ * @example
69
+ * ```ts
70
+ * createOwsPolicy({
71
+ * id: 'agent-budget',
72
+ * name: 'Agent daily budget',
73
+ * allowedChains: ['eip155:8453'],
74
+ * expiresAt: '2026-12-31T23:59:59Z',
75
+ * });
76
+ * ```
77
+ */
78
+ export declare function createOwsPolicy(options: {
79
+ id: string;
80
+ name: string;
81
+ allowedChains?: string[];
82
+ expiresAt?: string;
83
+ vaultPath?: string;
84
+ }): void;
85
+ /**
86
+ * Create a scoped OWS API key for agent access.
87
+ * The agent uses this token as the passphrase — it NEVER sees the private key.
88
+ *
89
+ * @returns The API key token (shown once — caller must save it)
90
+ */
91
+ export declare function createOwsAgentKey(options: {
92
+ name: string;
93
+ walletName: string;
94
+ policyIds: string[];
95
+ passphrase: string;
96
+ expiresAt?: string;
97
+ vaultPath?: string;
98
+ }): {
99
+ token: string;
100
+ id: string;
101
+ name: string;
102
+ };
103
+ /**
104
+ * Import an existing wallet into OWS from a mnemonic.
105
+ */
106
+ export declare function importOwsWallet(name: string, mnemonic: string, passphrase?: string, vaultPath?: string): import("@open-wallet-standard/core").WalletInfo;
107
+ /**
108
+ * Import an existing wallet from a private key.
109
+ */
110
+ export declare function importOwsWalletFromKey(name: string, privateKeyHex: string, chain?: 'evm' | 'solana', passphrase?: string, vaultPath?: string): import("@open-wallet-standard/core").WalletInfo;
111
+ /**
112
+ * Export the mnemonic from an OWS wallet.
113
+ */
114
+ export declare function exportOwsWallet(nameOrId: string, passphrase?: string, vaultPath?: string): string;
115
+ /**
116
+ * List all OWS wallets.
117
+ */
118
+ export declare function listOwsWallets(vaultPath?: string): import("@open-wallet-standard/core").WalletInfo[];
119
+ /**
120
+ * Delete an OWS wallet.
121
+ */
122
+ export declare function deleteOwsWallet(nameOrId: string, vaultPath?: string): void;
123
+ //# sourceMappingURL=ows.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ows.d.ts","sourceRoot":"","sources":["../../../src/adapters/ows.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAmCG;AAiBH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAI9C,MAAM,WAAW,iBAAiB;IAChC,4DAA4D;IAC5D,UAAU,EAAE,MAAM,CAAC;IAEnB,mEAAmE;IACnE,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,GAAG,SAAS,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IAEtF,oDAAoD;IACpD,OAAO,EAAE,MAAM,CAAC;IAEhB,8EAA8E;IAC9E,MAAM,CAAC,EAAE,MAAM,CAAC;IAEhB,yCAAyC;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,+EAA+E;IAC/E,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB,sDAAsD;IACtD,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,6CAA6C;IAC7C,SAAS,CAAC,EAAE,MAAM,CAAC;IAEnB,uBAAuB;IACvB,MAAM,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CAChC;AAID;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,iBAAiB,GAAG,cAAc,CA6F3E;AAID;;;;;;;;;;;;GAYG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE;IACvC,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG,IAAI,CA2BP;AAED;;;;;GAKG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE;IACzC,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,GAAG;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,EAAE,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,CAS9C;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,mDAGnB;AAED;;GAEG;AACH,wBAAgB,sBAAsB,CACpC,IAAI,EAAE,MAAM,EACZ,aAAa,EAAE,MAAM,EACrB,KAAK,GAAE,KAAK,GAAG,QAAgB,EAC/B,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,mDAGnB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,EAChB,UAAU,CAAC,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GACjB,MAAM,CAER;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,SAAS,CAAC,EAAE,MAAM,qDAEhD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,QAEnE"}
@@ -0,0 +1,77 @@
1
+ import { PaymentAdapter } from './types';
2
+ import { Logger } from '../logger';
3
+ export interface SolanaAdapterOptions {
4
+ /**
5
+ * Solana secret key as a Uint8Array (64 bytes) or base58 string.
6
+ * If omitted, a random keypair is generated (useful for receiving-only agents).
7
+ */
8
+ secretKey?: Uint8Array | number[];
9
+ /**
10
+ * Network: 'mainnet-beta' | 'devnet' | 'testnet'
11
+ * @default 'devnet'
12
+ */
13
+ network?: 'mainnet-beta' | 'devnet' | 'testnet';
14
+ /**
15
+ * Asset to settle with.
16
+ * - 'SOL' — native SOL (default)
17
+ * - 'USDC' — Circle's native USDC (SPL token)
18
+ * @default 'SOL'
19
+ */
20
+ asset?: 'SOL' | 'USDC';
21
+ /** Optional custom RPC URL. Uses Solana public RPC if omitted. */
22
+ rpcUrl?: string;
23
+ /** Optional logger. SDK is silent by default. */
24
+ logger?: Logger;
25
+ }
26
+ /**
27
+ * SolanaPaymentAdapter — On-chain settlement on Solana.
28
+ *
29
+ * Supports:
30
+ * - Native SOL transfers (System Program)
31
+ * - USDC (SPL Token) transfers with automatic ATA creation
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * // SOL on devnet
36
+ * const adapter = new SolanaPaymentAdapter({
37
+ * secretKey: myKeypair.secretKey,
38
+ * network: 'devnet',
39
+ * asset: 'SOL',
40
+ * logger: console.log,
41
+ * });
42
+ *
43
+ * // USDC on mainnet
44
+ * const adapter = new SolanaPaymentAdapter({
45
+ * secretKey: myKeypair.secretKey,
46
+ * network: 'mainnet-beta',
47
+ * asset: 'USDC',
48
+ * });
49
+ * ```
50
+ *
51
+ * @see https://spl.solana.com/token — SPL Token program
52
+ * @see https://envoy.dev — envoy production infrastructure
53
+ */
54
+ export declare class SolanaPaymentAdapter implements PaymentAdapter {
55
+ readonly chainName: string;
56
+ readonly caip2Id: string;
57
+ private connection;
58
+ private keypair;
59
+ private asset;
60
+ private usdcMint;
61
+ private network;
62
+ private log;
63
+ constructor(options: SolanaAdapterOptions);
64
+ getAddress(): string;
65
+ /** Get SOL balance in SOL (not lamports). */
66
+ getSolBalance(): Promise<string>;
67
+ /** Get USDC balance (6 decimals). */
68
+ getUsdcBalance(): Promise<string>;
69
+ pay(destination: string, amount: string, network: string): Promise<string | null>;
70
+ private paySol;
71
+ private payUsdc;
72
+ /** Find the Associated Token Account for USDC. Returns null if none. */
73
+ private findAta;
74
+ /** Request SOL airdrop from devnet/testnet faucet (for testing). */
75
+ requestAirdrop(amountSol?: number): Promise<string | null>;
76
+ }
77
+ //# sourceMappingURL=solana.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana.d.ts","sourceRoot":"","sources":["../../../src/adapters/solana.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAY/C,MAAM,WAAW,oBAAoB;IACnC;;;OAGG;IACH,SAAS,CAAC,EAAE,UAAU,GAAG,MAAM,EAAE,CAAC;IAClC;;;OAGG;IACH,OAAO,CAAC,EAAE,cAAc,GAAG,QAAQ,GAAG,SAAS,CAAC;IAChD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB,kEAAkE;IAClE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,iDAAiD;IACjD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AACH,qBAAa,oBAAqB,YAAW,cAAc;IACzD,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,UAAU,CAAa;IAC/B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,KAAK,CAAiB;IAC9B,OAAO,CAAC,QAAQ,CAAY;IAC5B,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,oBAAoB;IA4BzC,UAAU,IAAI,MAAM;IAIpB,6CAA6C;IACvC,aAAa,IAAI,OAAO,CAAC,MAAM,CAAC;IAKtC,qCAAqC;IAC/B,cAAc,IAAI,OAAO,CAAC,MAAM,CAAC;IAWjC,GAAG,CACP,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;YASX,MAAM;YAwCN,OAAO;IA2DrB,wEAAwE;YAC1D,OAAO;IAoBrB,oEAAoE;IAC9D,cAAc,CAAC,SAAS,GAAE,MAAU,GAAG,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CAiBpE"}
@@ -0,0 +1,67 @@
1
+ import { PaymentAdapter } from './types';
2
+ import { Logger } from '../logger';
3
+ export interface StellarPaymentAdapterOptions {
4
+ /** Stellar secret key for the agent's wallet. */
5
+ secretKey: string;
6
+ /**
7
+ * Asset to settle with:
8
+ * - 'XLM' — native lumens (default for testnet)
9
+ * - 'USDC' — Circle's native USDC on Stellar (recommended for production)
10
+ */
11
+ asset?: 'XLM' | 'USDC';
12
+ /**
13
+ * Network: 'mainnet' | 'testnet' (default: 'testnet').
14
+ * Determines Horizon URL, network passphrase, and CAIP-2 ID.
15
+ */
16
+ network?: 'mainnet' | 'testnet';
17
+ /** Override the Horizon URL. */
18
+ horizonUrl?: string;
19
+ /** Optional logger. */
20
+ logger?: Logger;
21
+ }
22
+ /**
23
+ * StellarPaymentAdapter — On-chain settlement on the Stellar network.
24
+ *
25
+ * Supports:
26
+ * - Native XLM payments (testnet default)
27
+ * - Circle USDC payments (production recommended)
28
+ *
29
+ * The production envoy stack settles USDC on Stellar mainnet.
30
+ * @see https://envoy.dev
31
+ * @see https://stellar.org/usdc
32
+ */
33
+ export declare class StellarPaymentAdapter implements PaymentAdapter {
34
+ readonly chainName = "Stellar";
35
+ readonly caip2Id: string;
36
+ private keypair;
37
+ private server;
38
+ private networkPassphrase;
39
+ private assetType;
40
+ private log;
41
+ constructor(options: StellarPaymentAdapterOptions);
42
+ getAddress(): string;
43
+ /**
44
+ * Get the Stellar asset object based on configuration.
45
+ * - XLM: native asset (no trustline needed)
46
+ * - USDC: Circle's issued USDC (trustline required)
47
+ */
48
+ private getAsset;
49
+ /**
50
+ * Convert atomic units to human-readable amount.
51
+ * Stellar uses 7 decimal places (stroops) for all assets.
52
+ */
53
+ private formatAmount;
54
+ pay(destination: string, amount: string, network: string): Promise<string | null>;
55
+ /**
56
+ * Check if the account has a USDC trustline.
57
+ * Returns false if using XLM or if the trustline exists.
58
+ * Returns true if USDC is selected but trustline is missing.
59
+ */
60
+ needsTrustline(): Promise<boolean>;
61
+ /**
62
+ * Establish a USDC trustline (required before receiving USDC).
63
+ * Only needed once per account.
64
+ */
65
+ createUsdcTrustline(): Promise<string | null>;
66
+ }
67
+ //# sourceMappingURL=stellar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stellar.d.ts","sourceRoot":"","sources":["../../../src/adapters/stellar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AACzC,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAK/C,MAAM,WAAW,4BAA4B;IAC3C,iDAAiD;IACjD,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACvB;;;OAGG;IACH,OAAO,CAAC,EAAE,SAAS,GAAG,SAAS,CAAC;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;GAUG;AACH,qBAAa,qBAAsB,YAAW,cAAc;IAC1D,SAAgB,SAAS,aAAa;IACtC,SAAgB,OAAO,EAAE,MAAM,CAAC;IAEhC,OAAO,CAAC,OAAO,CAAqB;IACpC,OAAO,CAAC,MAAM,CAA4B;IAC1C,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,SAAS,CAAiB;IAClC,OAAO,CAAC,GAAG,CAAS;gBAER,OAAO,EAAE,4BAA4B;IAqBjD,UAAU,IAAI,MAAM;IAIpB;;;;OAIG;IACH,OAAO,CAAC,QAAQ;IAOhB;;;OAGG;IACH,OAAO,CAAC,YAAY;IAIP,GAAG,CACd,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,MAAM,GACd,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;IA0CzB;;;;OAIG;IACU,cAAc,IAAI,OAAO,CAAC,OAAO,CAAC;IAiB/C;;;OAGG;IACU,mBAAmB,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;CA6B3D"}
@@ -0,0 +1,206 @@
1
+ import { PaymentAdapter } from './types';
2
+ import { Logger } from '../logger';
3
+ import { MppChallenge } from '../mpp';
4
+ /**
5
+ * Configuration for the Stripe MPP adapter.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * const adapter = new StripePaymentAdapter({
10
+ * stripeSecretKey: process.env.STRIPE_SECRET_KEY!,
11
+ * networkId: 'my-business-network',
12
+ * });
13
+ * ```
14
+ */
15
+ export interface StripeAdapterOptions {
16
+ /**
17
+ * Stripe secret key (sk_test_... or sk_live_...).
18
+ * Used to create SPTs and PaymentIntents.
19
+ */
20
+ stripeSecretKey: string;
21
+ /**
22
+ * Stripe Business Network ID.
23
+ * Found in Dashboard → Settings → Business profile.
24
+ */
25
+ networkId?: string;
26
+ /**
27
+ * Accepted payment method types.
28
+ * @default ['card']
29
+ */
30
+ paymentMethodTypes?: string[];
31
+ /**
32
+ * Default payment method ID for autonomous agents.
33
+ * e.g. 'pm_card_visa' for test mode.
34
+ * If set, the adapter can create SPTs autonomously.
35
+ */
36
+ paymentMethodId?: string;
37
+ /**
38
+ * Default currency for payments.
39
+ * @default 'usd'
40
+ */
41
+ currency?: string;
42
+ /**
43
+ * SPT expiration window in seconds.
44
+ * @default 300 (5 minutes)
45
+ */
46
+ sptExpirySeconds?: number;
47
+ /**
48
+ * Stripe API base URL.
49
+ * @default 'https://api.stripe.com'
50
+ */
51
+ stripeApiBase?: string;
52
+ /** Optional logger. SDK is silent by default. */
53
+ logger?: Logger;
54
+ }
55
+ /**
56
+ * Result of creating a Shared Payment Token.
57
+ */
58
+ interface SptResult {
59
+ id: string;
60
+ object: string;
61
+ expires_at?: number;
62
+ }
63
+ /**
64
+ * Result of creating/confirming a PaymentIntent.
65
+ */
66
+ interface PaymentIntentResult {
67
+ id: string;
68
+ status: string;
69
+ amount: number;
70
+ currency: string;
71
+ next_action?: {
72
+ crypto_display_details?: {
73
+ deposit_addresses?: Record<string, {
74
+ address: string;
75
+ supported_tokens?: Array<{
76
+ token_currency: string;
77
+ token_contract_address: string;
78
+ }>;
79
+ }>;
80
+ };
81
+ };
82
+ }
83
+ /**
84
+ * StripePaymentAdapter — Machine Payments Protocol (MPP) settlement.
85
+ *
86
+ * Implements the full MPP flow for Stripe:
87
+ * 1. Receives 402 + `WWW-Authenticate: Payment` challenge
88
+ * 2. Creates a Shared Payment Token (SPT) via Stripe API
89
+ * 3. Builds MPP Credential with SPT
90
+ * 4. Returns credential for `Authorization: Payment` header
91
+ *
92
+ * Works in two modes:
93
+ * - **Autonomous** (with paymentMethodId): Creates SPTs automatically
94
+ * - **Delegated** (without): Requires external SPT provisioning via `setSptToken()`
95
+ *
96
+ * @example
97
+ * ```ts
98
+ * // Autonomous mode — agent has a payment method on file
99
+ * const adapter = new StripePaymentAdapter({
100
+ * stripeSecretKey: 'sk_test_...',
101
+ * networkId: 'my-network',
102
+ * paymentMethodId: 'pm_card_visa', // test card
103
+ * });
104
+ *
105
+ * // Delegated mode — external system provides SPTs
106
+ * const adapter = new StripePaymentAdapter({
107
+ * stripeSecretKey: 'sk_test_...',
108
+ * });
109
+ * adapter.setSptToken('spt_...');
110
+ * ```
111
+ *
112
+ * @see https://mpp.dev/payment-methods/stripe — MPP Stripe method spec
113
+ * @see https://docs.stripe.com/agentic-commerce/concepts/shared-payment-tokens
114
+ */
115
+ export declare class StripePaymentAdapter implements PaymentAdapter {
116
+ readonly chainName = "Stripe MPP";
117
+ readonly caip2Id: string;
118
+ private secretKey;
119
+ private networkId;
120
+ private paymentMethodTypes;
121
+ private paymentMethodId;
122
+ private currency;
123
+ private sptExpirySeconds;
124
+ private stripeApiBase;
125
+ private log;
126
+ /** Externally-provided SPT for delegated mode */
127
+ private externalSpt;
128
+ /** Last MPP challenge processed (for credential building) */
129
+ private lastChallenge;
130
+ constructor(options: StripeAdapterOptions);
131
+ /**
132
+ * Set or update an externally-provided SPT token.
133
+ * Used in delegated mode when an external system provides the SPT.
134
+ */
135
+ setSptToken(token: string): void;
136
+ /**
137
+ * Store a parsed MPP challenge for credential building.
138
+ * Called by EnvoyClient when a 402 with `WWW-Authenticate: Payment method="stripe"` is received.
139
+ */
140
+ setMppChallenge(challenge: MppChallenge): void;
141
+ /**
142
+ * Get the last built MPP credential (base64url-encoded).
143
+ * Used by EnvoyClient to populate the `Authorization: Payment` header.
144
+ */
145
+ getLastCredential(): string | null;
146
+ private _lastCredential;
147
+ getAddress(): string;
148
+ /**
149
+ * Execute a Stripe MPP payment.
150
+ *
151
+ * This method handles the full SPT lifecycle:
152
+ * 1. If an external SPT is set → use it directly
153
+ * 2. If paymentMethodId is set → create SPT autonomously via Stripe API
154
+ * 3. Build MPP Credential with the SPT
155
+ * 4. Return credential string (used as "tx hash" equivalent)
156
+ *
157
+ * @param destination - Recipient (Stripe account or payment endpoint)
158
+ * @param amount - Amount in smallest currency unit (e.g. cents)
159
+ * @param network - Network identifier (ignored for Stripe, kept for interface compat)
160
+ * @returns Base64url-encoded MPP credential string, or null on failure
161
+ */
162
+ pay(destination: string, amount: string, network: string): Promise<string | null>;
163
+ /**
164
+ * Create a Shared Payment Token (SPT) via Stripe API.
165
+ *
166
+ * Test mode: POST /v1/test_helpers/shared_payment/granted_tokens
167
+ * Live mode: POST /v1/shared_payment/issued_tokens (TBD by Stripe)
168
+ */
169
+ createSpt(amount: number, currency: string): Promise<SptResult | null>;
170
+ /**
171
+ * Create and confirm a PaymentIntent using an SPT.
172
+ * Used in fallback mode (no MPP challenge, direct Stripe API).
173
+ */
174
+ createPaymentIntent(sptId: string, amount: number, currency: string): Promise<PaymentIntentResult | null>;
175
+ /**
176
+ * Create a crypto deposit-mode PaymentIntent.
177
+ * This is the verified-working flow for MPP on Stripe.
178
+ * Uses Tempo network + USDC stablecoins.
179
+ *
180
+ * @param amount - Amount in cents (e.g. 100 = $1.00)
181
+ * @param currency - Currency code (default: 'usd')
182
+ * @returns PaymentIntentResult with deposit address, or null on failure
183
+ *
184
+ * @example
185
+ * ```ts
186
+ * const pi = await adapter.createCryptoPaymentIntent(100, 'usd');
187
+ * // pi.next_action.crypto_display_details.deposit_addresses.tempo.address
188
+ * ```
189
+ */
190
+ createCryptoPaymentIntent(amount: number, currency?: string): Promise<PaymentIntentResult | null>;
191
+ /**
192
+ * Build and return a fully-formed MPP Challenge for server-side use.
193
+ * Useful if you want to GATE your own API with MPP 402.
194
+ *
195
+ * @param amount - Amount to charge (in smallest unit)
196
+ * @param options - Challenge options
197
+ * @returns WWW-Authenticate header value
198
+ */
199
+ buildServerChallenge(amount: string, options?: {
200
+ currency?: string;
201
+ description?: string;
202
+ expiresInSeconds?: number;
203
+ }): string;
204
+ }
205
+ export {};
206
+ //# sourceMappingURL=stripe.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stripe.d.ts","sourceRoot":"","sources":["../../../src/adapters/stripe.ts"],"names":[],"mappings":"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"}