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,52 @@
1
+ /**
2
+ * Helpers around the canonical Celo ERC-8004 Reputation Registry.
3
+ *
4
+ * Each `giveFeedback` call attaches a signed value (with explicit decimals),
5
+ * two free-form tags, an endpoint string, and an optional URI+hash of a richer
6
+ * feedback document. The canonical contract:
7
+ *
8
+ * - REJECTS self-feedback (where `msg.sender` is the agent's owner or an
9
+ * approved operator) — see the source's `isAuthorizedOrOwner` check.
10
+ * - Indexes feedback by `(agentId, clientAddress, feedbackIndex)`. The index
11
+ * is 1-based per client; the first call returns 1, the second returns 2, etc.
12
+ *
13
+ * 8004scan reads these contracts directly, so any feedback attributed to your
14
+ * agentId here counts toward the Celo hackathon's Track 3 rank.
15
+ */
16
+ import { type Address, type Hash, type Hex, type PublicClient, type WalletClient } from 'viem';
17
+ import type { AgentId, FeedbackArgs } from './types';
18
+ /**
19
+ * Submit feedback on an agent. Returns the `feedbackIndex` (1-based per caller)
20
+ * parsed from the `NewFeedback` event in the receipt.
21
+ *
22
+ * The caller (`walletClient.account.address`) must NOT be authorized for the
23
+ * agent — i.e. an agent cannot rate itself. The contract reverts with
24
+ * "Self-feedback not allowed" if you try.
25
+ */
26
+ export declare function giveFeedback(walletClient: WalletClient, publicClient: PublicClient, registryAddress: Address, args: FeedbackArgs): Promise<{
27
+ feedbackIndex: bigint;
28
+ txHash: Hash;
29
+ }>;
30
+ /**
31
+ * Revoke a previously-submitted feedback. Only the original `clientAddress`
32
+ * (i.e. the same wallet that called `giveFeedback`) can revoke.
33
+ */
34
+ export declare function revokeFeedback(walletClient: WalletClient, registryAddress: Address, agentId: AgentId, feedbackIndex: bigint): Promise<Hash>;
35
+ /**
36
+ * Build a `FeedbackArgs` object with the most common shape:
37
+ * - a percentage-style score in [0, 100] with one decimal,
38
+ * - two tags (category, sub-category),
39
+ * - an endpoint string for which deployment the feedback applies to.
40
+ *
41
+ * `value=850, valueDecimals=1` means "85.0 / 100".
42
+ */
43
+ export declare function makeScoreFeedback(args: {
44
+ agentId: AgentId;
45
+ scoreOutOf100: number;
46
+ tag1: string;
47
+ tag2: string;
48
+ endpoint: string;
49
+ feedbackURI?: string;
50
+ feedbackHash?: Hex;
51
+ }): FeedbackArgs;
52
+ //# sourceMappingURL=reputation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation.d.ts","sourceRoot":"","sources":["../../../../src/identity/erc8004/reputation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,IAAI,EACT,KAAK,GAAG,EACR,KAAK,YAAY,EACjB,KAAK,YAAY,EAGlB,MAAM,MAAM,CAAC;AAGd,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAErD;;;;;;;GAOG;AACH,wBAAsB,YAAY,CAChC,YAAY,EAAE,YAAY,EAC1B,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,OAAO,EACxB,IAAI,EAAE,YAAY,GACjB,OAAO,CAAC;IAAE,aAAa,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,IAAI,CAAA;CAAE,CAAC,CAuClD;AAED;;;GAGG;AACH,wBAAsB,cAAc,CAClC,YAAY,EAAE,YAAY,EAC1B,eAAe,EAAE,OAAO,EACxB,OAAO,EAAE,OAAO,EAChB,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,IAAI,CAAC,CAYf;AAED;;;;;;;GAOG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE;IACtC,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,GAAG,CAAC;CACpB,GAAG,YAAY,CAYf"}
@@ -0,0 +1,31 @@
1
+ import type { Address, Hex } from 'viem';
2
+ /** ERC-8004 agent identifier. Equals the NFT tokenId on the canonical Identity Registry. */
3
+ export type AgentId = bigint;
4
+ /** A single metadata entry stored on the canonical Identity Registry, addressable by key. */
5
+ export interface MetadataEntry {
6
+ key: string;
7
+ value: Hex;
8
+ }
9
+ /** Aggregated read of an agent's canonical record. */
10
+ export interface CanonicalAgent {
11
+ agentId: AgentId;
12
+ owner: Address;
13
+ agentWallet: Address;
14
+ tokenURI: string;
15
+ }
16
+ /** Arguments for `giveFeedback` on the canonical Reputation Registry. */
17
+ export interface FeedbackArgs {
18
+ agentId: AgentId;
19
+ /** Signed value, encoded with `valueDecimals` decimals (e.g. 4500 with decimals=2 → 45.00). */
20
+ value: bigint;
21
+ valueDecimals: number;
22
+ tag1: string;
23
+ tag2: string;
24
+ /** Origin / endpoint the agent was used through, free-form. */
25
+ endpoint: string;
26
+ /** URI to a richer feedback document (IPFS, https, data:). */
27
+ feedbackURI: string;
28
+ /** Optional integrity hash of the feedback URI's contents. */
29
+ feedbackHash: Hex;
30
+ }
31
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/identity/erc8004/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,MAAM,MAAM,CAAC;AAEzC,4FAA4F;AAC5F,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,6FAA6F;AAC7F,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,GAAG,CAAC;CACZ;AAED,sDAAsD;AACtD,MAAM,WAAW,cAAc;IAC7B,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,EAAE,OAAO,CAAC;IACf,WAAW,EAAE,OAAO,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,yEAAyE;AACzE,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,OAAO,CAAC;IACjB,+FAA+F;IAC/F,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,+DAA+D;IAC/D,QAAQ,EAAE,MAAM,CAAC;IACjB,8DAA8D;IAC9D,WAAW,EAAE,MAAM,CAAC;IACpB,8DAA8D;IAC9D,YAAY,EAAE,GAAG,CAAC;CACnB"}
@@ -0,0 +1,10 @@
1
+ export { AgentIdentity } from './agent-identity';
2
+ export { DIDResolver } from './did-resolver';
3
+ export { AgentCard } from './agent-card';
4
+ export { Reputation } from './reputation';
5
+ export { OwnerRegistry } from './owner-registry';
6
+ export type { AgentDID, DIDDocument, VerificationMethod, ServiceEndpoint, AgentCardData, AgentIdentityOptions, ReputationAttestation, ReputationCategory, ReputationProfile, CreateAttestationOptions, OwnerRecord, DelegationLevel, ResolvedIdentity, ResolveOptions, } from './types';
7
+ export * as erc8004 from './erc8004';
8
+ export type { AgentId, CanonicalAgent, MetadataEntry, FeedbackArgs } from './erc8004';
9
+ export { agentWalletRotationTypedData } from './erc8004/identity';
10
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/identity/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,YAAY,EACV,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,GACf,MAAM,SAAS,CAAC;AAGjB,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,YAAY,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,WAAW,CAAC;AAKtF,OAAO,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC"}
@@ -0,0 +1,68 @@
1
+ /**
2
+ * OwnerRegistry — Agent ↔ Owner binding with delegation levels.
3
+ *
4
+ * Implements the Validation Registry concept from ERC-8004,
5
+ * linking AI agents to their human/organizational owners with
6
+ * configurable delegation levels.
7
+ *
8
+ * Delegation levels:
9
+ * - `full` — Agent has full autonomy
10
+ * - `supervised` — Owner receives notifications
11
+ * - `restricted` — Owner must approve large transactions
12
+ * - `readonly` — Agent can only read, not transact
13
+ *
14
+ * @see ERC-8004 — Validation Registry
15
+ */
16
+ import { AgentDID, DelegationLevel, OwnerRecord } from './types';
17
+ export declare class OwnerRegistry {
18
+ /** In-memory registry (production: on-chain smart contract). */
19
+ private records;
20
+ /** Reverse index: owner → agents. */
21
+ private ownerIndex;
22
+ /**
23
+ * Register an agent-owner binding.
24
+ */
25
+ register(agentDid: AgentDID, ownerAddress: string, delegationLevel?: DelegationLevel, metadata?: Record<string, string>): OwnerRecord;
26
+ /**
27
+ * Get the owner record for an agent.
28
+ */
29
+ getOwner(agentDid: AgentDID): OwnerRecord | null;
30
+ /**
31
+ * Get all agents owned by a specific address.
32
+ */
33
+ getAgentsByOwner(ownerAddress: string): OwnerRecord[];
34
+ /**
35
+ * Check if an address owns a specific agent.
36
+ */
37
+ isOwner(agentDid: AgentDID, ownerAddress: string): boolean;
38
+ /**
39
+ * Get the delegation level for an agent.
40
+ */
41
+ getDelegationLevel(agentDid: AgentDID): DelegationLevel | null;
42
+ /**
43
+ * Update the delegation level for an agent.
44
+ * Only the current owner can do this (enforcement is caller's responsibility).
45
+ */
46
+ setDelegationLevel(agentDid: AgentDID, level: DelegationLevel): boolean;
47
+ /**
48
+ * Transfer ownership of an agent to a new address.
49
+ */
50
+ transferOwnership(agentDid: AgentDID, newOwnerAddress: string): boolean;
51
+ /**
52
+ * Remove an agent from the registry.
53
+ */
54
+ unregister(agentDid: AgentDID): boolean;
55
+ /**
56
+ * Check if an agent is allowed to perform an action based on delegation.
57
+ */
58
+ canTransact(agentDid: AgentDID): boolean;
59
+ /**
60
+ * Check if an action requires owner approval.
61
+ */
62
+ requiresApproval(agentDid: AgentDID): boolean;
63
+ /**
64
+ * Get the total number of registered agents.
65
+ */
66
+ getAgentCount(): number;
67
+ }
68
+ //# sourceMappingURL=owner-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"owner-registry.d.ts","sourceRoot":"","sources":["../../../src/identity/owner-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAEjE,qBAAa,aAAa;IACxB,gEAAgE;IAChE,OAAO,CAAC,OAAO,CAAuC;IACtD,qCAAqC;IACrC,OAAO,CAAC,UAAU,CAAuC;IAEzD;;OAEG;IACH,QAAQ,CACN,QAAQ,EAAE,QAAQ,EAClB,YAAY,EAAE,MAAM,EACpB,eAAe,GAAE,eAA8B,EAC/C,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAChC,WAAW;IAwBd;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,WAAW,GAAG,IAAI;IAIhD;;OAEG;IACH,gBAAgB,CAAC,YAAY,EAAE,MAAM,GAAG,WAAW,EAAE;IASrD;;OAEG;IACH,OAAO,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,GAAG,OAAO;IAK1D;;OAEG;IACH,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI;IAK9D;;;OAGG;IACH,kBAAkB,CAAC,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,eAAe,GAAG,OAAO;IAQvE;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,GAAG,OAAO;IAoBvE;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IASvC;;OAEG;IACH,WAAW,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAKxC;;OAEG;IACH,gBAAgB,CAAC,QAAQ,EAAE,QAAQ,GAAG,OAAO;IAK7C;;OAEG;IACH,aAAa,IAAI,MAAM;CAGxB"}
@@ -0,0 +1,66 @@
1
+ /**
2
+ * Reputation — EAS-compatible reputation scoring for AI agents.
3
+ *
4
+ * Implements the Reputation Registry concept from ERC-8004, using
5
+ * an EAS-compatible schema for creating, storing, and querying
6
+ * reputation attestations.
7
+ *
8
+ * Features:
9
+ * - Create/revoke attestations
10
+ * - Aggregate scores by category
11
+ * - Compute overall trust score
12
+ * - Track payment reliability, task quality, uptime, etc.
13
+ *
14
+ * @see ERC-8004 — Reputation Registry
15
+ * @see https://attest.org — Ethereum Attestation Service
16
+ */
17
+ import { ReputationAttestation, ReputationProfile, CreateAttestationOptions, AgentDID } from './types';
18
+ export declare class Reputation {
19
+ /** In-memory attestation store (production: EAS on-chain or IPFS). */
20
+ private attestations;
21
+ /**
22
+ * Create a reputation attestation for an agent.
23
+ *
24
+ * @param attesterAddress - Who is creating the attestation
25
+ * @param options - Attestation details
26
+ * @returns The created attestation
27
+ */
28
+ attest(attesterAddress: string, options: CreateAttestationOptions): ReputationAttestation;
29
+ /**
30
+ * Revoke an attestation by ID.
31
+ */
32
+ revoke(subject: string, attestationId: string): boolean;
33
+ /**
34
+ * Get the full reputation profile for an agent.
35
+ */
36
+ getProfile(agentDid: AgentDID): ReputationProfile;
37
+ /**
38
+ * Get the overall score for an agent (0-100).
39
+ */
40
+ getScore(agentDid: AgentDID): number;
41
+ /**
42
+ * Check if an agent meets a minimum trust threshold.
43
+ */
44
+ meetsThreshold(agentDid: AgentDID, minScore: number): boolean;
45
+ /**
46
+ * Get all valid (non-expired, non-revoked) attestations for an agent.
47
+ */
48
+ getValidAttestations(subject: string): ReputationAttestation[];
49
+ /**
50
+ * Get all attestations (including invalid) for an agent.
51
+ */
52
+ getAllAttestations(subject: string): ReputationAttestation[];
53
+ /**
54
+ * Get the attestation count for an agent.
55
+ */
56
+ getAttestationCount(subject: string): number;
57
+ /**
58
+ * Calculate average scores per category.
59
+ */
60
+ private calculateCategoryScores;
61
+ /**
62
+ * Calculate weighted overall score from category scores.
63
+ */
64
+ private calculateOverallScore;
65
+ }
66
+ //# sourceMappingURL=reputation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"reputation.d.ts","sourceRoot":"","sources":["../../../src/identity/reputation.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,OAAO,EACL,qBAAqB,EACrB,iBAAiB,EAEjB,wBAAwB,EACxB,QAAQ,EACT,MAAM,SAAS,CAAC;AAuBjB,qBAAa,UAAU;IACrB,sEAAsE;IACtE,OAAO,CAAC,YAAY,CAAmD;IAEvE;;;;;;OAMG;IACH,MAAM,CACJ,eAAe,EAAE,MAAM,EACvB,OAAO,EAAE,wBAAwB,GAChC,qBAAqB;IA0BxB;;OAEG;IACH,MAAM,CAAC,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,MAAM,GAAG,OAAO;IAWvD;;OAEG;IACH,UAAU,CAAC,QAAQ,EAAE,QAAQ,GAAG,iBAAiB;IAwCjD;;OAEG;IACH,QAAQ,CAAC,QAAQ,EAAE,QAAQ,GAAG,MAAM;IAIpC;;OAEG;IACH,cAAc,CAAC,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO;IAI7D;;OAEG;IACH,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAW9D;;OAEG;IACH,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAI5D;;OAEG;IACH,mBAAmB,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM;IAM5C;;OAEG;IACH,OAAO,CAAC,uBAAuB;IAqB/B;;OAEG;IACH,OAAO,CAAC,qBAAqB;CAe9B"}
@@ -0,0 +1,182 @@
1
+ /**
2
+ * Identity Layer Types — Agent identity, reputation, and ownership.
3
+ *
4
+ * Implements concepts from:
5
+ * - ERC-8004 "Trustless Agents" (Identity + Reputation + Validation registries)
6
+ * - W3C DID (Decentralized Identifiers)
7
+ * - EAS (Ethereum Attestation Service)
8
+ * - Stellar Protocol 25 (ZK-KYC selective disclosure)
9
+ *
10
+ * @see https://eips.ethereum.org/EIPS/eip-8004
11
+ * @see https://www.w3.org/TR/did-core/
12
+ * @see https://attest.org
13
+ */
14
+ /**
15
+ * envoy DID format: did:asg:agent:<chain>:<address>
16
+ * @example "did:asg:agent:eip155:8453:0x1234..."
17
+ * @example "did:asg:agent:stellar:pubnet:GABC..."
18
+ */
19
+ export type AgentDID = `did:asg:agent:${string}`;
20
+ /** W3C DID Document — simplified for agent use. */
21
+ export interface DIDDocument {
22
+ /** The DID subject. */
23
+ id: AgentDID;
24
+ /** DID controller (owner). */
25
+ controller: string;
26
+ /** Verification methods (public keys). */
27
+ verificationMethod: VerificationMethod[];
28
+ /** Service endpoints (A2A, MCP, etc.). */
29
+ service: ServiceEndpoint[];
30
+ /** When the document was created. */
31
+ created: Date;
32
+ /** When the document was last updated. */
33
+ updated: Date;
34
+ }
35
+ export interface VerificationMethod {
36
+ id: string;
37
+ type: 'Ed25519VerificationKey2020' | 'EcdsaSecp256k1VerificationKey2019' | 'JsonWebKey2020';
38
+ controller: string;
39
+ /** Public key in multibase encoding. */
40
+ publicKeyMultibase?: string;
41
+ }
42
+ export interface ServiceEndpoint {
43
+ id: string;
44
+ type: 'AgentService' | 'A2AEndpoint' | 'MCPEndpoint' | 'PaymentEndpoint';
45
+ serviceEndpoint: string;
46
+ }
47
+ /**
48
+ * AgentCard — On-chain identity metadata for an AI agent.
49
+ * Implements the Identity Registry concept from ERC-8004.
50
+ */
51
+ export interface AgentCardData {
52
+ /** Agent's human-readable name. */
53
+ name: string;
54
+ /** Semantic version. */
55
+ version: string;
56
+ /** Short description. */
57
+ description?: string;
58
+ /** Capabilities this agent offers. */
59
+ capabilities: string[];
60
+ /** Owner/controller address. */
61
+ owner: string;
62
+ /** Service endpoints. */
63
+ endpoints?: {
64
+ a2a?: string;
65
+ mcp?: string;
66
+ payment?: string;
67
+ webhook?: string;
68
+ };
69
+ /** Chain addresses this agent controls. */
70
+ addresses?: Array<{
71
+ chain: string;
72
+ caip2Id: string;
73
+ address: string;
74
+ }>;
75
+ /** Agent icon URL. */
76
+ iconUrl?: string;
77
+ /** Agent categories/tags. */
78
+ tags?: string[];
79
+ }
80
+ /** A single reputation attestation. */
81
+ export interface ReputationAttestation {
82
+ /** Unique attestation ID. */
83
+ id: string;
84
+ /** Who attested (address). */
85
+ attester: string;
86
+ /** The agent being attested (DID or address). */
87
+ subject: string;
88
+ /** Score (0-100). */
89
+ score: number;
90
+ /** Category of the attestation. */
91
+ category: ReputationCategory;
92
+ /** Optional textual feedback. */
93
+ comment?: string;
94
+ /** Transaction hash of the attestation (if on-chain). */
95
+ transactionHash?: string;
96
+ /** When the attestation was created. */
97
+ timestamp: Date;
98
+ /** When the attestation expires (if applicable). */
99
+ expiresAt?: Date;
100
+ /** Is this attestation still valid? */
101
+ isValid: boolean;
102
+ }
103
+ /** Categories for reputation scoring. */
104
+ export type ReputationCategory = 'payment-reliability' | 'task-quality' | 'response-time' | 'uptime' | 'security' | 'general';
105
+ /** Aggregated reputation profile. */
106
+ export interface ReputationProfile {
107
+ /** Agent DID. */
108
+ agentDid: AgentDID;
109
+ /** Overall score (0-100). */
110
+ overallScore: number;
111
+ /** Number of attestations received. */
112
+ totalAttestations: number;
113
+ /** Success rate (0-1). */
114
+ successRate: number;
115
+ /** Total transactions processed. */
116
+ totalTransactions: number;
117
+ /** Score breakdown by category. */
118
+ categoryScores: Partial<Record<ReputationCategory, number>>;
119
+ /** Recent attestations (last N). */
120
+ recentAttestations: ReputationAttestation[];
121
+ /** When this profile was last updated. */
122
+ lastUpdated: Date;
123
+ }
124
+ /** Ownership record linking an agent to its owner. */
125
+ export interface OwnerRecord {
126
+ /** Agent DID. */
127
+ agentDid: AgentDID;
128
+ /** Owner address. */
129
+ ownerAddress: string;
130
+ /** When ownership was established. */
131
+ since: Date;
132
+ /** Delegation level. */
133
+ delegationLevel: DelegationLevel;
134
+ /** Additional metadata. */
135
+ metadata?: Record<string, string>;
136
+ }
137
+ /** How much authority the agent has. */
138
+ export type DelegationLevel = 'full' | 'supervised' | 'restricted' | 'readonly';
139
+ /** Options for creating a new attestation. */
140
+ export interface CreateAttestationOptions {
141
+ /** Agent being attested. */
142
+ subject: string;
143
+ /** Score (0-100). */
144
+ score: number;
145
+ /** Category. */
146
+ category: ReputationCategory;
147
+ /** Optional comment. */
148
+ comment?: string;
149
+ /** How long the attestation is valid (ms). */
150
+ validFor?: number;
151
+ }
152
+ /** Options for resolving an agent identity. */
153
+ export interface ResolveOptions {
154
+ /** Include reputation profile? Default: true */
155
+ includeReputation?: boolean;
156
+ /** Include ownership info? Default: true */
157
+ includeOwnership?: boolean;
158
+ /** Maximum attestations to fetch. Default: 10 */
159
+ maxAttestations?: number;
160
+ }
161
+ /** Full resolved agent identity. */
162
+ export interface ResolvedIdentity {
163
+ /** DID Document. */
164
+ did: DIDDocument;
165
+ /** Agent Card metadata. */
166
+ card: AgentCardData;
167
+ /** Reputation profile (if requested). */
168
+ reputation?: ReputationProfile;
169
+ /** Ownership info (if requested). */
170
+ ownership?: OwnerRecord;
171
+ }
172
+ export interface AgentIdentityOptions {
173
+ /** Agent card metadata. */
174
+ metadata: AgentCardData;
175
+ /** Signing address (from wallet or adapter). */
176
+ signerAddress: string;
177
+ /** CAIP-2 chain ID of the signer. */
178
+ signerChainId: string;
179
+ /** Optional logger. */
180
+ logger?: (msg: string) => void;
181
+ }
182
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/identity/types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ export { EnvoyClient, EnvoyClientOptions } from './client';
2
+ export { PolicyEngine, BudgetPolicy } from './policy';
3
+ export type { Logger } from './logger';
4
+ export { parseMppChallenge, parseMppChallenges, decodeChallengeRequest, buildMppCredential, buildAuthorizationHeader, parseMppReceipt, detectProtocol, extractMppChallenges, base64urlEncode, base64urlDecode, } from './mpp';
5
+ export type { MppChallenge, MppCredential, MppRequestObject, MppStripePayload, MppTempoPayload, MppReceipt, MppMethod, MppIntent, } from './mpp';
6
+ export { EvmPaymentAdapter, listEvmChains } from './adapters/evm';
7
+ export type { EvmAdapterOptions, EvmChainName } from './adapters/evm';
8
+ export type { PaymentAdapter, WatchOptions, IncomingPayment, PaymentRequestOptions, PaymentRequest, Unsubscribe, } from './adapters/types';
9
+ export { createEvmWatcher } from './monitor/evm-watcher';
10
+ export type { EvmWatcherConfig } from './monitor/evm-watcher';
11
+ export { buildEip681Uri } from './requests/eip681';
12
+ export type { Eip681Options } from './requests/eip681';
13
+ export { AgentIdentity, DIDResolver, AgentCard, Reputation, OwnerRegistry, erc8004, } from './identity';
14
+ export type { AgentDID, DIDDocument, VerificationMethod, ServiceEndpoint, AgentCardData, AgentIdentityOptions, ReputationAttestation, ReputationCategory, ReputationProfile, CreateAttestationOptions, OwnerRecord, DelegationLevel, ResolvedIdentity, ResolveOptions, AgentId, CanonicalAgent, MetadataEntry, FeedbackArgs, } from './identity';
15
+ export { ENVOY_CONTRACT_ADDRESSES, getEnvoyAddresses, CELO_MAINNET, CELO_SEPOLIA, createEnvoyFacilitator, signPaymentAuth, paymentAuthDomain, paymentAuthTypedData, PAYMENT_AUTH_TYPES, ENVOY_FACILITATOR_ABI, } from './contracts';
16
+ export type { EnvoyContractAddresses, PaymentAuth, LimitView, SettledEvent, EnvoyFacilitatorClient, EnvoyFacilitatorClientOptions, } from './contracts';
17
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAuBA,OAAO,EAAE,WAAW,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACtD,YAAY,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGvC,OAAO,EACL,iBAAiB,EACjB,kBAAkB,EAClB,sBAAsB,EACtB,kBAAkB,EAClB,wBAAwB,EACxB,eAAe,EACf,cAAc,EACd,oBAAoB,EACpB,eAAe,EACf,eAAe,GAChB,MAAM,OAAO,CAAC;AACf,YAAY,EACV,YAAY,EACZ,aAAa,EACb,gBAAgB,EAChB,gBAAgB,EAChB,eAAe,EACf,UAAU,EACV,SAAS,EACT,SAAS,GACV,MAAM,OAAO,CAAC;AAGf,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,gBAAgB,CAAC;AAClE,YAAY,EAAE,iBAAiB,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAGtE,YAAY,EACV,cAAc,EACd,YAAY,EACZ,eAAe,EACf,qBAAqB,EACrB,cAAc,EACd,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAG1B,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG9D,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAGvD,OAAO,EACL,aAAa,EACb,WAAW,EACX,SAAS,EACT,UAAU,EACV,aAAa,EACb,OAAO,GACR,MAAM,YAAY,CAAC;AACpB,YAAY,EACV,QAAQ,EACR,WAAW,EACX,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,oBAAoB,EACpB,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,wBAAwB,EACxB,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,cAAc,EACd,OAAO,EACP,cAAc,EACd,aAAa,EACb,YAAY,GACb,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,wBAAwB,EACxB,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,sBAAsB,EACtB,eAAe,EACf,iBAAiB,EACjB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,sBAAsB,EACtB,WAAW,EACX,SAAS,EACT,YAAY,EACZ,sBAAsB,EACtB,6BAA6B,GAC9B,MAAM,aAAa,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Logger type for envoy-pay SDK.
3
+ *
4
+ * Pass `console.log` for verbose output, or provide a custom logger.
5
+ * If omitted, the SDK is silent — no stdout pollution.
6
+ */
7
+ export type Logger = (message: string, ...args: any[]) => void;
8
+ /** No-op logger — used when no logger is provided. */
9
+ export declare const noopLogger: Logger;
10
+ //# sourceMappingURL=logger.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logger.d.ts","sourceRoot":"","sources":["../../src/logger.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,MAAM,MAAM,GAAG,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,IAAI,CAAC;AAE/D,sDAAsD;AACtD,eAAO,MAAM,UAAU,EAAE,MAAiB,CAAC"}
@@ -0,0 +1,40 @@
1
+ import type { IncomingPayment, Unsubscribe } from '../adapters/types';
2
+ import { Logger } from '../logger';
3
+ /**
4
+ * EVM Watcher — monitors incoming ERC-20 (USDC) and native ETH transfers.
5
+ *
6
+ * Uses polling-based approach compatible with any JSON-RPC provider.
7
+ * For WebSocket-capable providers, set `pollIntervalMs` to 0 and provide
8
+ * a WebSocket URL to enable real-time event subscription.
9
+ */
10
+ export interface EvmWatcherConfig {
11
+ /** Wallet address to monitor for incoming payments. */
12
+ address: string;
13
+ /** JSON-RPC URL for the EVM chain. */
14
+ rpcUrl: string;
15
+ /** CAIP-2 chain identifier (e.g., 'eip155:8453'). */
16
+ chainId?: string;
17
+ /** Human-readable chain name. Default: 'EVM'. */
18
+ chainName?: string;
19
+ /** USDC contract address on this chain. If omitted, only native ETH transfers are watched. */
20
+ usdcContractAddress?: string;
21
+ /** Poll interval in milliseconds. Default: 12000 (one block on Base). */
22
+ pollIntervalMs?: number;
23
+ /** Callback for detected incoming payments. */
24
+ onPayment: (event: IncomingPayment) => void;
25
+ /** Callback for errors. */
26
+ onError?: (error: Error) => void;
27
+ /** Logger function. */
28
+ logger?: Logger;
29
+ }
30
+ /**
31
+ * Creates an EVM payment watcher using JSON-RPC polling.
32
+ *
33
+ * Monitors:
34
+ * 1. ERC-20 Transfer events TO the target address (USDC)
35
+ * 2. Native ETH transfers TO the target address (via block scanning)
36
+ *
37
+ * @returns Unsubscribe function to stop watching.
38
+ */
39
+ export declare function createEvmWatcher(config: EvmWatcherConfig): Unsubscribe;
40
+ //# sourceMappingURL=evm-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"evm-watcher.d.ts","sourceRoot":"","sources":["../../../src/monitor/evm-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;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,uDAAuD;IACvD,OAAO,EAAE,MAAM,CAAC;IAChB,sCAAsC;IACtC,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,iDAAiD;IACjD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,8FAA8F;IAC9F,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAC7B,yEAAyE;IACzE,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+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;AAQD;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CA0JtE"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * envoy — Real-Time Payment Monitoring
3
+ *
4
+ * Chain-specific watchers that detect incoming payments
5
+ * and invoke callbacks in real-time.
6
+ *
7
+ * @example
8
+ * ```ts
9
+ * import { createEvmWatcher, createStellarWatcher } from 'envoy-pay/monitor';
10
+ *
11
+ * const unsub = createEvmWatcher({
12
+ * address: '0xYOUR_WALLET',
13
+ * rpcUrl: 'https://mainnet.base.org',
14
+ * onPayment: (event) => console.log('Received:', event),
15
+ * });
16
+ *
17
+ * // Stop watching
18
+ * unsub();
19
+ * ```
20
+ */
21
+ export { createEvmWatcher, type EvmWatcherConfig } from './evm-watcher';
22
+ export { createStellarWatcher, type StellarWatcherConfig } from './stellar-watcher';
23
+ export { createSolanaWatcher, type SolanaWatcherConfig } from './solana-watcher';
24
+ export { createMultiChainWatcher, type MultiChainWatcherConfig } from './multi-watcher';
25
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/monitor/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AACH,OAAO,EAAE,gBAAgB,EAAE,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAE,mBAAmB,EAAE,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,uBAAuB,EAAE,KAAK,uBAAuB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,48 @@
1
+ import type { IncomingPayment, Unsubscribe } from '../adapters/types';
2
+ import { type EvmWatcherConfig } from './evm-watcher';
3
+ import { type StellarWatcherConfig } from './stellar-watcher';
4
+ import { type SolanaWatcherConfig } from './solana-watcher';
5
+ import { Logger } from '../logger';
6
+ /**
7
+ * Multi-Chain Watcher — monitors multiple chains simultaneously.
8
+ *
9
+ * Aggregates incoming payment events from all configured chains
10
+ * into a single callback, enabling unified cross-chain monitoring.
11
+ */
12
+ export interface MultiChainWatcherConfig {
13
+ /** EVM chain configurations. */
14
+ evm?: EvmWatcherConfig[];
15
+ /** Stellar configuration. */
16
+ stellar?: StellarWatcherConfig;
17
+ /** Solana configuration. */
18
+ solana?: SolanaWatcherConfig;
19
+ /** Unified callback for all incoming payments. */
20
+ onPayment: (event: IncomingPayment) => void;
21
+ /** Unified error callback. */
22
+ onError?: (error: Error) => void;
23
+ /** Logger function. */
24
+ logger?: Logger;
25
+ }
26
+ /**
27
+ * Creates a multi-chain payment watcher.
28
+ *
29
+ * @returns Unsubscribe function that stops ALL chain watchers.
30
+ *
31
+ * @example
32
+ * ```ts
33
+ * const unsub = createMultiChainWatcher({
34
+ * evm: [
35
+ * { address: '0x...', rpcUrl: 'https://mainnet.base.org', chainName: 'Base', usdcContractAddress: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913' },
36
+ * { address: '0x...', rpcUrl: 'https://arb1.arbitrum.io/rpc', chainName: 'Arbitrum' },
37
+ * ],
38
+ * stellar: { accountId: 'GABCD...' },
39
+ * solana: { address: '7abc...' },
40
+ * onPayment: (event) => console.log(`${event.chain}: ${event.amountFormatted} ${event.asset}`),
41
+ * });
42
+ *
43
+ * // Stop all watchers
44
+ * unsub();
45
+ * ```
46
+ */
47
+ export declare function createMultiChainWatcher(config: MultiChainWatcherConfig): Unsubscribe;
48
+ //# sourceMappingURL=multi-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multi-watcher.d.ts","sourceRoot":"","sources":["../../../src/monitor/multi-watcher.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACtE,OAAO,EAAoB,KAAK,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACxE,OAAO,EAAwB,KAAK,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACpF,OAAO,EAAuB,KAAK,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AACjF,OAAO,EAAE,MAAM,EAAc,MAAM,WAAW,CAAC;AAE/C;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,gCAAgC;IAChC,GAAG,CAAC,EAAE,gBAAgB,EAAE,CAAC;IACzB,6BAA6B;IAC7B,OAAO,CAAC,EAAE,oBAAoB,CAAC;IAC/B,4BAA4B;IAC5B,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAC7B,kDAAkD;IAClD,SAAS,EAAE,CAAC,KAAK,EAAE,eAAe,KAAK,IAAI,CAAC;IAC5C,8BAA8B;IAC9B,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACjC,uBAAuB;IACvB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,uBAAuB,GAAG,WAAW,CAsEpF"}
@@ -0,0 +1,36 @@
1
+ import type { IncomingPayment, Unsubscribe } from '../adapters/types';
2
+ import { Logger } from '../logger';
3
+ /**
4
+ * Solana Watcher — monitors incoming SOL and SPL token transfers.
5
+ *
6
+ * Uses `getSignaturesForAddress` polling to detect new transactions
7
+ * involving the target account.
8
+ */
9
+ export interface SolanaWatcherConfig {
10
+ /** Solana wallet address to monitor (base58). */
11
+ address: string;
12
+ /** Solana JSON-RPC URL. Default: 'https://api.mainnet-beta.solana.com'. */
13
+ rpcUrl?: string;
14
+ /** USDC mint address. Default: mainnet USDC mint. */
15
+ usdcMint?: string;
16
+ /** Poll interval in milliseconds. Default: 5000. */
17
+ pollIntervalMs?: number;
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 Solana payment watcher using JSON-RPC polling.
27
+ *
28
+ * Polls `getSignaturesForAddress` for new transactions, then
29
+ * inspects each transaction to detect:
30
+ * 1. Native SOL transfers TO the target address
31
+ * 2. SPL USDC transfers TO the target's Associated Token Account
32
+ *
33
+ * @returns Unsubscribe function to stop watching.
34
+ */
35
+ export declare function createSolanaWatcher(config: SolanaWatcherConfig): Unsubscribe;
36
+ //# sourceMappingURL=solana-watcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"solana-watcher.d.ts","sourceRoot":"","sources":["../../../src/monitor/solana-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,mBAAmB;IAClC,iDAAiD;IACjD,OAAO,EAAE,MAAM,CAAC;IAChB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qDAAqD;IACrD,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,oDAAoD;IACpD,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,+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;AAKD;;;;;;;;;GASG;AACH,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,mBAAmB,GAAG,WAAW,CAgK5E"}