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,34 @@
1
+ import type { IncomingPayment, Unsubscribe } from '../adapters/types';
2
+ import { Logger } from '../logger';
3
+ /**
4
+ * Stellar Watcher — monitors incoming payments via Horizon SSE.
5
+ *
6
+ * Uses the Horizon `/payments` endpoint with Server-Sent Events (SSE)
7
+ * to receive real-time notifications of incoming payments.
8
+ */
9
+ export interface StellarWatcherConfig {
10
+ /** Stellar account to monitor. */
11
+ accountId: string;
12
+ /** Horizon server URL. Default: 'https://horizon.stellar.org'. */
13
+ horizonUrl?: string;
14
+ /** Asset filter: 'USDC', 'XLM', or 'all'. Default: 'all'. */
15
+ asset?: string;
16
+ /** Cursor to resume from (paging_token). If omitted, starts from 'now'. */
17
+ cursor?: string;
18
+ /** Callback for detected incoming payments. */
19
+ onPayment: (event: IncomingPayment) => void;
20
+ /** Callback for errors. */
21
+ onError?: (error: Error) => void;
22
+ /** Logger function. */
23
+ logger?: Logger;
24
+ }
25
+ /**
26
+ * Creates a Stellar payment watcher using Horizon SSE streaming.
27
+ *
28
+ * Listens for `payment` and `create_account` operations directed
29
+ * to the target account. Supports asset-based filtering.
30
+ *
31
+ * @returns Unsubscribe function to stop watching.
32
+ */
33
+ export declare function createStellarWatcher(config: StellarWatcherConfig): Unsubscribe;
34
+ //# sourceMappingURL=stellar-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stellar-watcher.d.ts","sourceRoot":"","sources":["../../../src/monitor/stellar-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,oBAAoB;IACnC,kCAAkC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,kEAAkE;IAClE,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,6DAA6D;IAC7D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,+CAA+C;IAC/C,SAAS,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5C,2BAA2B;IAC3B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAgBD;;;;;;;GAOG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,oBAAoB,GAAG,WAAW,CAgI9E"}
@@ -0,0 +1,153 @@
1
+ /**
2
+ * MPP — Machine Payments Protocol utilities.
3
+ *
4
+ * Handles parsing/building of MPP-standard headers:
5
+ * - WWW-Authenticate: Payment (Challenge)
6
+ * - Authorization: Payment (Credential)
7
+ * - Payment-Receipt (Receipt)
8
+ *
9
+ * @see https://mpp.dev/protocol/challenges
10
+ * @see https://mpp.dev/protocol/credentials
11
+ * @see https://mpp.dev/protocol/receipts
12
+ * @see https://paymentauth.org — IETF specification
13
+ */
14
+ /** Supported MPP payment methods */
15
+ export type MppMethod = 'stripe' | 'tempo' | 'card' | 'lightning' | 'solana' | 'stellar' | string;
16
+ /** Payment intent types */
17
+ export type MppIntent = 'charge' | 'session';
18
+ /**
19
+ * Parsed MPP Challenge from `WWW-Authenticate: Payment` header.
20
+ */
21
+ export interface MppChallenge {
22
+ /** Unique challenge ID (cryptographically bound to parameters) */
23
+ id: string;
24
+ /** Server realm (e.g. "mpp.dev", "envoy.dev") */
25
+ realm: string;
26
+ /** Payment method identifier */
27
+ method: MppMethod;
28
+ /** Payment intent type */
29
+ intent: MppIntent;
30
+ /** Base64url-encoded JSON with method-specific payment details */
31
+ request: string;
32
+ /** ISO 8601 expiration timestamp (optional) */
33
+ expires?: string;
34
+ /** Human-readable description (optional) */
35
+ description?: string;
36
+ }
37
+ /**
38
+ * Decoded request object from Challenge.
39
+ */
40
+ export interface MppRequestObject {
41
+ /** Amount in smallest currency unit (string for precision) */
42
+ amount: string;
43
+ /** Currency code (e.g. "usd") or token address */
44
+ currency: string;
45
+ /** Recipient address or Stripe account */
46
+ recipient?: string;
47
+ /** Decimal places for the currency */
48
+ decimals?: number;
49
+ /** Human-readable description */
50
+ description?: string;
51
+ /** External reference ID */
52
+ externalId?: string;
53
+ /** Method-specific details */
54
+ methodDetails?: {
55
+ networkId?: string;
56
+ paymentMethodTypes?: string[];
57
+ metadata?: Record<string, string>;
58
+ [key: string]: unknown;
59
+ };
60
+ }
61
+ /**
62
+ * MPP Credential — sent in `Authorization: Payment` header.
63
+ */
64
+ export interface MppCredential {
65
+ /** Echo of the original challenge */
66
+ challenge: MppChallenge;
67
+ /** DID or identifier of the paying entity */
68
+ source: string;
69
+ /** Method-specific payload */
70
+ payload: MppStripePayload | MppTempoPayload | Record<string, unknown>;
71
+ }
72
+ /** Stripe-specific credential payload */
73
+ export interface MppStripePayload {
74
+ /** Shared Payment Token ID */
75
+ spt: string;
76
+ /** Optional external reference ID */
77
+ externalId?: string;
78
+ }
79
+ /** Tempo-specific credential payload */
80
+ export interface MppTempoPayload {
81
+ type: 'transaction' | 'hash' | 'proof';
82
+ signature?: string;
83
+ hash?: string;
84
+ }
85
+ /**
86
+ * MPP Receipt — returned in `Payment-Receipt` header.
87
+ */
88
+ export interface MppReceipt {
89
+ /** Receipt data (base64url-decoded JSON) */
90
+ [key: string]: unknown;
91
+ }
92
+ /**
93
+ * Encode string to base64url (RFC 4648 §5).
94
+ * No padding, URL-safe alphabet.
95
+ */
96
+ export declare function base64urlEncode(str: string): string;
97
+ /**
98
+ * Decode base64url string.
99
+ */
100
+ export declare function base64urlDecode(str: string): string;
101
+ /**
102
+ * Parse a `WWW-Authenticate: Payment` header value into an MppChallenge.
103
+ *
104
+ * Format:
105
+ * ```
106
+ * Payment id="abc", realm="mpp.dev", method="stripe", intent="charge",
107
+ * expires="2025-01-15T12:05:00Z", request="eyJhbW91bnQ..."
108
+ * ```
109
+ *
110
+ * @param header — Raw header value (with or without "Payment " prefix)
111
+ * @returns Parsed challenge object
112
+ * @throws Error if required fields are missing
113
+ */
114
+ export declare function parseMppChallenge(header: string): MppChallenge;
115
+ /**
116
+ * Parse multiple `WWW-Authenticate: Payment` headers.
117
+ * Servers can offer multiple payment options.
118
+ */
119
+ export declare function parseMppChallenges(headers: string[]): MppChallenge[];
120
+ /**
121
+ * Decode the `request` field of a Challenge into a structured object.
122
+ */
123
+ export declare function decodeChallengeRequest(challenge: MppChallenge): MppRequestObject;
124
+ /**
125
+ * Build an MPP Credential for the `Authorization: Payment` header.
126
+ *
127
+ * @param challenge — The challenge being responded to
128
+ * @param source — DID or identifier of the payer
129
+ * @param payload — Method-specific proof (SPT for Stripe, tx for Tempo)
130
+ * @returns Base64url-encoded credential string
131
+ */
132
+ export declare function buildMppCredential(challenge: MppChallenge, source: string, payload: MppCredential['payload']): string;
133
+ /**
134
+ * Build the full `Authorization` header value.
135
+ */
136
+ export declare function buildAuthorizationHeader(challenge: MppChallenge, source: string, payload: MppCredential['payload']): string;
137
+ /**
138
+ * Parse a `Payment-Receipt` header.
139
+ */
140
+ export declare function parseMppReceipt(header: string): MppReceipt;
141
+ /**
142
+ * Detect whether a 402 response uses MPP or x402 protocol.
143
+ *
144
+ * MPP: has `WWW-Authenticate: Payment` header
145
+ * x402: has JSON body with `x402Version` and `accepts[]`
146
+ */
147
+ export declare function detectProtocol(headers: Record<string, string | string[] | undefined>, body?: unknown): 'mpp' | 'x402' | 'unknown';
148
+ /**
149
+ * Extract all MPP challenges from response headers.
150
+ * Handles both single and multiple WWW-Authenticate headers.
151
+ */
152
+ export declare function extractMppChallenges(headers: Record<string, string | string[] | undefined>): MppChallenge[];
153
+ //# sourceMappingURL=mpp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mpp.d.ts","sourceRoot":"","sources":["../../src/mpp.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * PolicyEngine — On-device budget controller for autonomous AI agents.
3
+ *
4
+ * Enforces per-transaction caps, monthly rolling budgets, and optional
5
+ * destination whitelists so that an agent can never overspend without
6
+ * explicit human approval.
7
+ *
8
+ * Fail-closed: if any check fails, the payment is rejected.
9
+ */
10
+ import { Logger } from './logger';
11
+ export interface BudgetPolicy {
12
+ /** Maximum USD amount the agent may spend in a single transaction. */
13
+ maxAmountPerTransaction: number;
14
+ /** Maximum USD the agent may spend within a calendar month. */
15
+ monthlyBudget: number;
16
+ /** Optional whitelist of addresses the agent is allowed to pay. */
17
+ allowedDestinations?: string[];
18
+ }
19
+ export declare class PolicyEngine {
20
+ private policy;
21
+ private currentMonthSpent;
22
+ private log;
23
+ constructor(policy: BudgetPolicy, logger?: Logger);
24
+ /**
25
+ * Returns `true` if the proposed spend passes every policy gate.
26
+ * Fail-closed: any unrecognised state returns `false`.
27
+ */
28
+ checkPolicy(amountUsd: number, destination?: string): boolean;
29
+ /** Record a successful spend against the rolling budget. */
30
+ recordSpend(amountUsd: number): void;
31
+ /** Get total USD spent in the current period. */
32
+ getSpent(): number;
33
+ /** Get remaining USD budget. */
34
+ getRemainingBudget(): number;
35
+ /** Reset the spend counter (e.g. on month rollover or for testing). */
36
+ resetBudget(): void;
37
+ /** Get a snapshot of the current policy configuration. */
38
+ getPolicy(): Readonly<BudgetPolicy>;
39
+ }
40
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../src/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAc,MAAM,UAAU,CAAC;AAE9C,MAAM,WAAW,YAAY;IAC3B,sEAAsE;IACtE,uBAAuB,EAAE,MAAM,CAAC;IAChC,+DAA+D;IAC/D,aAAa,EAAE,MAAM,CAAC;IACtB,mEAAmE;IACnE,mBAAmB,CAAC,EAAE,MAAM,EAAE,CAAC;CAChC;AAED,qBAAa,YAAY;IAKrB,OAAO,CAAC,MAAM;IAJhB,OAAO,CAAC,iBAAiB,CAAK;IAC9B,OAAO,CAAC,GAAG,CAAS;gBAGV,MAAM,EAAE,YAAY,EAC5B,MAAM,CAAC,EAAE,MAAM;IAKjB;;;OAGG;IACI,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAiCpE,4DAA4D;IACrD,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO3C,iDAAiD;IAC1C,QAAQ,IAAI,MAAM;IAIzB,gCAAgC;IACzB,kBAAkB,IAAI,MAAM;IAInC,uEAAuE;IAChE,WAAW,IAAI,IAAI;IAI1B,0DAA0D;IACnD,SAAS,IAAI,QAAQ,CAAC,YAAY,CAAC;CAG3C"}
@@ -0,0 +1,162 @@
1
+ /**
2
+ * Cross-Chain Bridge Module for envoy
3
+ *
4
+ * Provides cross-chain token transfers between any supported EVM chain
5
+ * using the OnchainOS DEX cross-chain API.
6
+ *
7
+ * Strategies:
8
+ * 1. OnchainOS Cross-Chain — single-tx bridge via OKX aggregated bridges
9
+ * (Stargate, Across, Celer, etc.)
10
+ * 2. Two-Step — swap to bridgeable token on source → bridge → swap on dest
11
+ *
12
+ * @example
13
+ * ```ts
14
+ * const bridge = new CrossChainBridge({ provider: okxProvider });
15
+ *
16
+ * // Get quote: Base USDC → X Layer USDC
17
+ * const quote = await bridge.getQuote({
18
+ * fromChainIndex: '8453',
19
+ * toChainIndex: '196',
20
+ * fromTokenAddress: USDC_BASE,
21
+ * toTokenAddress: USDC_XLAYER,
22
+ * amount: '1000000', // 1 USDC
23
+ * });
24
+ *
25
+ * // Execute bridge (requires signer)
26
+ * const result = await bridge.execute(quote, walletClient);
27
+ * ```
28
+ */
29
+ import { type OnchainOSProvider } from './onchainos';
30
+ import { Logger } from '../logger';
31
+ export interface BridgeQuoteParams {
32
+ /** Source chain index (e.g. '8453' for Base). */
33
+ fromChainIndex: string;
34
+ /** Destination chain index (e.g. '196' for X Layer). */
35
+ toChainIndex: string;
36
+ /** Source token contract address. Use 0xEeEe...EEeE for native. */
37
+ fromTokenAddress: string;
38
+ /** Destination token contract address. Use 0xEeEe...EEeE for native. */
39
+ toTokenAddress: string;
40
+ /** Amount in smallest unit (e.g. '1000000' for 1 USDC). */
41
+ amount: string;
42
+ /** Slippage tolerance percentage (default: '1'). */
43
+ slippagePercent?: string;
44
+ /** User wallet address (required for buildTx). */
45
+ userWalletAddress?: string;
46
+ }
47
+ export interface BridgeQuoteResult {
48
+ /** Bridge route information. */
49
+ route: BridgeRoute;
50
+ /** Estimated output amount in smallest unit. */
51
+ toTokenAmount: string;
52
+ /** Source token info. */
53
+ fromToken: {
54
+ symbol: string;
55
+ decimals: number;
56
+ address: string;
57
+ };
58
+ /** Destination token info. */
59
+ toToken: {
60
+ symbol: string;
61
+ decimals: number;
62
+ address: string;
63
+ };
64
+ /** Estimated bridge fee in USD. */
65
+ estimatedFeeUsd: string;
66
+ /** Estimated time in seconds. */
67
+ estimatedTimeSeconds: number;
68
+ /** Minimum received after slippage. */
69
+ minReceiveAmount: string;
70
+ /** Ready-to-sign transaction data (if userWalletAddress provided). */
71
+ tx?: BridgeTxData;
72
+ }
73
+ export interface BridgeRoute {
74
+ /** Bridge/DEX protocol used. */
75
+ bridgeName: string;
76
+ /** Steps in the route. */
77
+ steps: BridgeStep[];
78
+ /** Total route: source → dest description. */
79
+ description: string;
80
+ }
81
+ export interface BridgeStep {
82
+ type: 'swap' | 'bridge' | 'approve';
83
+ chainIndex: string;
84
+ protocol: string;
85
+ fromToken: string;
86
+ toToken: string;
87
+ amount: string;
88
+ }
89
+ export interface BridgeTxData {
90
+ from: string;
91
+ to: string;
92
+ data: string;
93
+ value: string;
94
+ gas: string;
95
+ gasPrice: string;
96
+ chainId: string;
97
+ }
98
+ export interface BridgeStatus {
99
+ status: 'pending' | 'source_confirmed' | 'bridging' | 'completed' | 'failed';
100
+ sourceTxHash?: string;
101
+ destTxHash?: string;
102
+ bridgeName?: string;
103
+ estimatedRemainingSeconds?: number;
104
+ }
105
+ export interface CrossChainBridgeConfig {
106
+ /** OnchainOS provider for DEX quotes and cross-chain API. */
107
+ provider: OnchainOSProvider;
108
+ /** Logger function. */
109
+ logger?: Logger;
110
+ }
111
+ export declare class CrossChainBridge {
112
+ private readonly provider;
113
+ private readonly logger;
114
+ constructor(config: CrossChainBridgeConfig);
115
+ /** Get all chains supported for cross-chain bridging. */
116
+ getSupportedChains(): Array<{
117
+ chainIndex: string;
118
+ name: string;
119
+ nativeSymbol: string;
120
+ hasUsdc: boolean;
121
+ }>;
122
+ /** Get USDC address on a given chain, or null if not supported. */
123
+ getUsdcAddress(chainIndex: string): string | null;
124
+ /** Check if a route is supported (both chains must be in our registry). */
125
+ isRouteSupported(fromChainIndex: string, toChainIndex: string): boolean;
126
+ /**
127
+ * Get a bridge quote for cross-chain transfer.
128
+ *
129
+ * Strategy:
130
+ * 1. Try OnchainOS cross-chain API (aggregated bridges)
131
+ * 2. If unavailable, compute a two-step route:
132
+ * Source chain DEX swap → Bridge via USDC → Dest chain DEX swap
133
+ */
134
+ getQuote(params: BridgeQuoteParams): Promise<BridgeQuoteResult>;
135
+ /**
136
+ * Get a bridge quote using OnchainOS cross-chain API.
137
+ * This aggregates multiple bridges (Stargate, Across, Celer, etc.)
138
+ */
139
+ private getCrossChainQuote;
140
+ /**
141
+ * Get a two-step bridge quote:
142
+ * 1. Swap source token → USDC on source chain (if needed)
143
+ * 2. Bridge USDC across chains (estimated)
144
+ * 3. Swap USDC → target token on dest chain (if needed)
145
+ */
146
+ private getTwoStepQuote;
147
+ /**
148
+ * Quick bridge: USDC between any two supported chains.
149
+ * Simplest cross-chain transfer — USDC in, USDC out.
150
+ */
151
+ bridgeUsdc(fromChainIndex: string, toChainIndex: string, amount: string, userWalletAddress?: string): Promise<BridgeQuoteResult>;
152
+ /**
153
+ * Bridge native token from one chain to another.
154
+ * e.g. ETH (Base) → OKB (X Layer)
155
+ */
156
+ bridgeNative(fromChainIndex: string, toChainIndex: string, amount: string, userWalletAddress?: string): Promise<BridgeQuoteResult>;
157
+ /**
158
+ * Get estimated bridge time between two chains (seconds).
159
+ */
160
+ getEstimatedTime(fromChainIndex: string, toChainIndex: string): number;
161
+ }
162
+ //# sourceMappingURL=bridge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bridge.d.ts","sourceRoot":"","sources":["../../../src/providers/bridge.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,128 @@
1
+ /**
2
+ * OnchainOS API Provider for envoy
3
+ *
4
+ * Provides DEX aggregation (400+ DEX sources), gas estimation,
5
+ * and transaction broadcast via OKX OnchainOS infrastructure.
6
+ *
7
+ * This is an OPTIONAL provider — all existing direct viem/Uniswap
8
+ * flows continue to work unchanged.
9
+ *
10
+ * @see https://web3.okx.com/onchainos/dev-docs/trade/dex-api-introduction
11
+ */
12
+ import { Logger } from '../logger';
13
+ export interface OnchainOSConfig {
14
+ apiKey: string;
15
+ secretKey: string;
16
+ passphrase: string;
17
+ logger?: Logger;
18
+ }
19
+ export interface DexQuoteParams {
20
+ chainIndex: string;
21
+ fromTokenAddress: string;
22
+ toTokenAddress: string;
23
+ amount: string;
24
+ slippagePercent?: string;
25
+ }
26
+ export interface DexSwapParams extends DexQuoteParams {
27
+ userWalletAddress: string;
28
+ }
29
+ export interface DexQuoteResult {
30
+ chainIndex: string;
31
+ fromToken: TokenInfo;
32
+ toToken: TokenInfo;
33
+ fromTokenAmount: string;
34
+ toTokenAmount: string;
35
+ tradeFee: string;
36
+ estimateGasFee: string;
37
+ dexRouterList: DexRoute[];
38
+ priceImpactPercent: string;
39
+ }
40
+ export interface DexSwapResult {
41
+ routerResult: DexQuoteResult;
42
+ tx: {
43
+ from: string;
44
+ to: string;
45
+ data: string;
46
+ value: string;
47
+ gas: string;
48
+ gasPrice: string;
49
+ minReceiveAmount: string;
50
+ };
51
+ }
52
+ export interface TokenInfo {
53
+ tokenContractAddress: string;
54
+ tokenSymbol: string;
55
+ tokenUnitPrice: string;
56
+ decimal: string;
57
+ isHoneyPot: boolean;
58
+ taxRate: string;
59
+ }
60
+ export interface DexRoute {
61
+ dexProtocol: {
62
+ dexName: string;
63
+ percent: string;
64
+ };
65
+ fromToken: TokenInfo;
66
+ toToken: TokenInfo;
67
+ }
68
+ export interface SupportedChain {
69
+ chainIndex: string;
70
+ chainName: string;
71
+ }
72
+ export interface GasPrice {
73
+ normal: string;
74
+ min: string;
75
+ max: string;
76
+ suggestGasPrice: string;
77
+ }
78
+ export declare class OnchainOSProvider {
79
+ private readonly apiKey;
80
+ private readonly secretKey;
81
+ private readonly passphrase;
82
+ private readonly logger;
83
+ private readonly baseUrl;
84
+ constructor(config: OnchainOSConfig);
85
+ private sign;
86
+ private request;
87
+ /** Get all chains supported by the DEX aggregator. */
88
+ getSupportedChains(): Promise<SupportedChain[]>;
89
+ /**
90
+ * Get a price quote for a token swap (no calldata — read-only).
91
+ * Routes through 400+ DEX sources for optimal pricing.
92
+ */
93
+ getQuote(params: DexQuoteParams): Promise<DexQuoteResult>;
94
+ /**
95
+ * Get swap transaction calldata for execution.
96
+ * Returns ready-to-sign transaction data.
97
+ */
98
+ getSwapData(params: DexSwapParams): Promise<DexSwapResult>;
99
+ /** Get current gas price for a chain. */
100
+ getGasPrice(chainIndex: string): Promise<GasPrice>;
101
+ /**
102
+ * Get total token balances for an address across a chain.
103
+ * Uses OnchainOS infrastructure — no direct RPC needed.
104
+ */
105
+ getBalances(address: string, chainIndex: string): Promise<Array<{
106
+ tokenContractAddress: string;
107
+ symbol: string;
108
+ balance: string;
109
+ tokenPrice: string;
110
+ }>>;
111
+ /** Get transaction history for an address. */
112
+ getTxHistory(address: string, chainIndex: string, limit?: string): Promise<unknown[]>;
113
+ /**
114
+ * Test API connectivity — returns the number of supported DEX chains.
115
+ * Useful for verifying credentials at startup.
116
+ */
117
+ healthCheck(): Promise<{
118
+ ok: boolean;
119
+ chains: number;
120
+ xlayer: boolean;
121
+ }>;
122
+ }
123
+ /**
124
+ * Create an OnchainOS provider from environment variables.
125
+ * Expects: OKX_API_KEY, OKX_SECRET_KEY, OKX_PASSPHRASE
126
+ */
127
+ export declare function createOnchainOSFromEnv(logger?: Logger): OnchainOSProvider | null;
128
+ //# sourceMappingURL=onchainos.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"onchainos.d.ts","sourceRoot":"","sources":["../../../src/providers/onchainos.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,51 @@
1
+ /**
2
+ * EIP-681 — Ethereum Payment URI builder.
3
+ *
4
+ * Generates URIs per EIP-681 standard for requesting ETH or ERC-20 payments.
5
+ * These URIs can be embedded in QR codes or shared as links.
6
+ *
7
+ * @see https://eips.ethereum.org/EIPS/eip-681
8
+ *
9
+ * @example
10
+ * ```
11
+ * // Native ETH payment
12
+ * ethereum:0xABC...?value=1e18
13
+ *
14
+ * // ERC-20 USDC transfer
15
+ * ethereum:0xUSDC_CONTRACT/transfer?address=0xABC...&uint256=500000
16
+ * ```
17
+ */
18
+ export interface Eip681Options {
19
+ /** Recipient address. */
20
+ to: string;
21
+ /** Amount in human-readable format (e.g., '0.5'). */
22
+ amount: string;
23
+ /** Asset: 'ETH' for native, or ERC-20 contract address. Default: 'ETH'. */
24
+ asset?: string;
25
+ /** Chain ID (decimal). Default: 1 (Ethereum mainnet). */
26
+ chainId?: number;
27
+ /** Number of decimals for the token. Default: 18 for ETH, 6 for USDC. */
28
+ decimals?: number;
29
+ }
30
+ /**
31
+ * Build an EIP-681 payment URI.
32
+ *
33
+ * @example
34
+ * ```ts
35
+ * // Native ETH
36
+ * buildEip681Uri({ to: '0xABC...', amount: '1.5' });
37
+ * // => 'ethereum:0xABC...?value=1500000000000000000'
38
+ *
39
+ * // USDC on Base
40
+ * buildEip681Uri({
41
+ * to: '0xABC...',
42
+ * amount: '10',
43
+ * asset: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913',
44
+ * chainId: 8453,
45
+ * decimals: 6,
46
+ * });
47
+ * // => 'ethereum:0x833589.../transfer?address=0xABC...&uint256=10000000&chainId=8453'
48
+ * ```
49
+ */
50
+ export declare function buildEip681Uri(options: Eip681Options): string;
51
+ //# sourceMappingURL=eip681.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"eip681.d.ts","sourceRoot":"","sources":["../../../src/requests/eip681.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,MAAM,WAAW,aAAa;IAC5B,yBAAyB;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,qDAAqD;IACrD,MAAM,EAAE,MAAM,CAAC;IACf,2EAA2E;IAC3E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,yDAAyD;IACzD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yEAAyE;IACzE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,aAAa,GAAG,MAAM,CA2B7D"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * envoy — Payment Request URIs
3
+ *
4
+ * Generate chain-specific payment request URIs for receiving payments.
5
+ * Supports EIP-681 (EVM), SEP-7 (Stellar), and Solana Pay.
6
+ */
7
+ export { buildEip681Uri, type Eip681Options } from './eip681';
8
+ export { buildSep7Uri, type Sep7Options } from './sep7';
9
+ export { buildSolanaPayUri, type SolanaPayOptions } from './solana-pay';
10
+ export { buildPaymentUri, type UniversalPaymentUriOptions } from './universal';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/requests/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,OAAO,EAAE,cAAc,EAAE,KAAK,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,KAAK,WAAW,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,iBAAiB,EAAE,KAAK,gBAAgB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,eAAe,EAAE,KAAK,0BAA0B,EAAE,MAAM,aAAa,CAAC"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * SEP-7 — Stellar Payment URI builder.
3
+ *
4
+ * Generates `web+stellar:` URIs per SEP-0007 for requesting
5
+ * XLM or custom asset payments on Stellar.
6
+ *
7
+ * @see https://github.com/nicohman/sep-0007
8
+ *
9
+ * @example
10
+ * ```
11
+ * web+stellar:pay?destination=GABCD...&amount=100&asset_code=USDC&asset_issuer=GA5Z...&memo=invoice123
12
+ * ```
13
+ */
14
+ export interface Sep7Options {
15
+ /** Destination Stellar account ID. */
16
+ destination: string;
17
+ /** Amount to request (human-readable). */
18
+ amount: string;
19
+ /** Asset code: 'XLM' for native, or asset code like 'USDC'. Default: 'XLM'. */
20
+ assetCode?: string;
21
+ /** Asset issuer (required for non-native assets). */
22
+ assetIssuer?: string;
23
+ /** Optional memo to include. */
24
+ memo?: string;
25
+ /** Memo type: 'text', 'id', 'hash'. Default: 'text'. */
26
+ memoType?: 'text' | 'id' | 'hash';
27
+ /** Optional callback URL. */
28
+ callback?: string;
29
+ /** Optional message to display. */
30
+ msg?: string;
31
+ /** Network passphrase. Default: public network. */
32
+ networkPassphrase?: string;
33
+ /** Origin domain for signing requests. */
34
+ originDomain?: string;
35
+ }
36
+ /**
37
+ * Build a SEP-7 Stellar payment URI.
38
+ *
39
+ * @example
40
+ * ```ts
41
+ * // Native XLM
42
+ * buildSep7Uri({ destination: 'GABCD...', amount: '100' });
43
+ * // => 'web+stellar:pay?destination=GABCD...&amount=100'
44
+ *
45
+ * // USDC on Stellar
46
+ * buildSep7Uri({
47
+ * destination: 'GABCD...',
48
+ * amount: '50',
49
+ * assetCode: 'USDC',
50
+ * assetIssuer: 'GA5ZSEJYB37JRC5AVCIA5MOP4RHTM335X2KGX3IHOJAPP5RE34K4KZVN',
51
+ * memo: 'invoice-42',
52
+ * });
53
+ * ```
54
+ */
55
+ export declare function buildSep7Uri(options: Sep7Options): string;
56
+ //# sourceMappingURL=sep7.d.ts.map