@agirails/sdk 2.0.1-beta → 2.0.2

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 (405) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +116 -108
  3. package/bin/actp +10 -0
  4. package/dist/ACTPClient.d.ts +456 -33
  5. package/dist/ACTPClient.d.ts.map +1 -1
  6. package/dist/ACTPClient.js +477 -93
  7. package/dist/ACTPClient.js.map +1 -1
  8. package/dist/abi/AgentRegistry.json +782 -0
  9. package/dist/abi/EscrowVault.json +106 -38
  10. package/dist/abi/IdentityRegistry.json +316 -0
  11. package/dist/adapters/BaseAdapter.d.ts +231 -0
  12. package/dist/adapters/BaseAdapter.d.ts.map +1 -0
  13. package/dist/adapters/BaseAdapter.js +393 -0
  14. package/dist/adapters/BaseAdapter.js.map +1 -0
  15. package/dist/adapters/BeginnerAdapter.d.ts +152 -0
  16. package/dist/adapters/BeginnerAdapter.d.ts.map +1 -0
  17. package/dist/adapters/BeginnerAdapter.js +168 -0
  18. package/dist/adapters/BeginnerAdapter.js.map +1 -0
  19. package/dist/adapters/IntermediateAdapter.d.ts +211 -0
  20. package/dist/adapters/IntermediateAdapter.d.ts.map +1 -0
  21. package/dist/adapters/IntermediateAdapter.js +260 -0
  22. package/dist/adapters/IntermediateAdapter.js.map +1 -0
  23. package/dist/adapters/index.d.ts +15 -0
  24. package/dist/adapters/index.d.ts.map +1 -0
  25. package/dist/adapters/index.js +26 -0
  26. package/dist/adapters/index.js.map +1 -0
  27. package/dist/builders/DeliveryProofBuilder.d.ts +60 -1
  28. package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
  29. package/dist/builders/DeliveryProofBuilder.js +81 -5
  30. package/dist/builders/DeliveryProofBuilder.js.map +1 -1
  31. package/dist/builders/QuoteBuilder.d.ts +101 -0
  32. package/dist/builders/QuoteBuilder.d.ts.map +1 -1
  33. package/dist/builders/QuoteBuilder.js +120 -3
  34. package/dist/builders/QuoteBuilder.js.map +1 -1
  35. package/dist/builders/index.d.ts +4 -0
  36. package/dist/builders/index.d.ts.map +1 -1
  37. package/dist/builders/index.js +4 -0
  38. package/dist/builders/index.js.map +1 -1
  39. package/dist/cli/commands/balance.d.ts +13 -0
  40. package/dist/cli/commands/balance.d.ts.map +1 -0
  41. package/dist/cli/commands/balance.js +89 -0
  42. package/dist/cli/commands/balance.js.map +1 -0
  43. package/dist/cli/commands/batch.d.ts +24 -0
  44. package/dist/cli/commands/batch.d.ts.map +1 -0
  45. package/dist/cli/commands/batch.js +424 -0
  46. package/dist/cli/commands/batch.js.map +1 -0
  47. package/dist/cli/commands/config.d.ts +13 -0
  48. package/dist/cli/commands/config.d.ts.map +1 -0
  49. package/dist/cli/commands/config.js +192 -0
  50. package/dist/cli/commands/config.js.map +1 -0
  51. package/dist/cli/commands/init.d.ts +19 -0
  52. package/dist/cli/commands/init.d.ts.map +1 -0
  53. package/dist/cli/commands/init.js +143 -0
  54. package/dist/cli/commands/init.js.map +1 -0
  55. package/dist/cli/commands/mint.d.ts +13 -0
  56. package/dist/cli/commands/mint.d.ts.map +1 -0
  57. package/dist/cli/commands/mint.js +91 -0
  58. package/dist/cli/commands/mint.js.map +1 -0
  59. package/dist/cli/commands/pay.d.ts +18 -0
  60. package/dist/cli/commands/pay.d.ts.map +1 -0
  61. package/dist/cli/commands/pay.js +87 -0
  62. package/dist/cli/commands/pay.js.map +1 -0
  63. package/dist/cli/commands/simulate.d.ts +32 -0
  64. package/dist/cli/commands/simulate.d.ts.map +1 -0
  65. package/dist/cli/commands/simulate.js +290 -0
  66. package/dist/cli/commands/simulate.js.map +1 -0
  67. package/dist/cli/commands/time.d.ts +29 -0
  68. package/dist/cli/commands/time.d.ts.map +1 -0
  69. package/dist/cli/commands/time.js +252 -0
  70. package/dist/cli/commands/time.js.map +1 -0
  71. package/dist/cli/commands/tx.d.ts +16 -0
  72. package/dist/cli/commands/tx.d.ts.map +1 -0
  73. package/dist/cli/commands/tx.js +379 -0
  74. package/dist/cli/commands/tx.js.map +1 -0
  75. package/dist/cli/commands/watch.d.ts +20 -0
  76. package/dist/cli/commands/watch.d.ts.map +1 -0
  77. package/dist/cli/commands/watch.js +160 -0
  78. package/dist/cli/commands/watch.js.map +1 -0
  79. package/dist/cli/index.d.ts +17 -0
  80. package/dist/cli/index.d.ts.map +1 -0
  81. package/dist/cli/index.js +104 -0
  82. package/dist/cli/index.js.map +1 -0
  83. package/dist/cli/utils/client.d.ts +70 -0
  84. package/dist/cli/utils/client.d.ts.map +1 -0
  85. package/dist/cli/utils/client.js +240 -0
  86. package/dist/cli/utils/client.js.map +1 -0
  87. package/dist/cli/utils/config.d.ts +91 -0
  88. package/dist/cli/utils/config.d.ts.map +1 -0
  89. package/dist/cli/utils/config.js +240 -0
  90. package/dist/cli/utils/config.js.map +1 -0
  91. package/dist/cli/utils/output.d.ts +174 -0
  92. package/dist/cli/utils/output.d.ts.map +1 -0
  93. package/dist/cli/utils/output.js +380 -0
  94. package/dist/cli/utils/output.js.map +1 -0
  95. package/dist/config/networks.d.ts +28 -0
  96. package/dist/config/networks.d.ts.map +1 -1
  97. package/dist/config/networks.js +60 -12
  98. package/dist/config/networks.js.map +1 -1
  99. package/dist/errors/index.d.ts +165 -2
  100. package/dist/errors/index.d.ts.map +1 -1
  101. package/dist/errors/index.js +260 -2
  102. package/dist/errors/index.js.map +1 -1
  103. package/dist/index.d.ts +61 -13
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +141 -36
  106. package/dist/index.js.map +1 -1
  107. package/dist/level0/Provider.d.ts +106 -0
  108. package/dist/level0/Provider.d.ts.map +1 -0
  109. package/dist/level0/Provider.js +10 -0
  110. package/dist/level0/Provider.js.map +1 -0
  111. package/dist/level0/ServiceDirectory.d.ts +74 -0
  112. package/dist/level0/ServiceDirectory.d.ts.map +1 -0
  113. package/dist/level0/ServiceDirectory.js +122 -0
  114. package/dist/level0/ServiceDirectory.js.map +1 -0
  115. package/dist/level0/index.d.ts +10 -0
  116. package/dist/level0/index.d.ts.map +1 -0
  117. package/dist/level0/index.js +15 -0
  118. package/dist/level0/index.js.map +1 -0
  119. package/dist/level0/provide.d.ts +51 -0
  120. package/dist/level0/provide.d.ts.map +1 -0
  121. package/dist/level0/provide.js +113 -0
  122. package/dist/level0/provide.js.map +1 -0
  123. package/dist/level0/request.d.ts +53 -0
  124. package/dist/level0/request.d.ts.map +1 -0
  125. package/dist/level0/request.js +462 -0
  126. package/dist/level0/request.js.map +1 -0
  127. package/dist/level1/Agent.d.ts +472 -0
  128. package/dist/level1/Agent.d.ts.map +1 -0
  129. package/dist/level1/Agent.js +1091 -0
  130. package/dist/level1/Agent.js.map +1 -0
  131. package/dist/level1/index.d.ts +10 -0
  132. package/dist/level1/index.d.ts.map +1 -0
  133. package/dist/level1/index.js +30 -0
  134. package/dist/level1/index.js.map +1 -0
  135. package/dist/level1/pricing/PriceCalculator.d.ts +62 -0
  136. package/dist/level1/pricing/PriceCalculator.d.ts.map +1 -0
  137. package/dist/level1/pricing/PriceCalculator.js +237 -0
  138. package/dist/level1/pricing/PriceCalculator.js.map +1 -0
  139. package/dist/level1/pricing/PricingStrategy.d.ts +179 -0
  140. package/dist/level1/pricing/PricingStrategy.d.ts.map +1 -0
  141. package/dist/level1/pricing/PricingStrategy.js +11 -0
  142. package/dist/level1/pricing/PricingStrategy.js.map +1 -0
  143. package/dist/level1/types/Job.d.ts +166 -0
  144. package/dist/level1/types/Job.d.ts.map +1 -0
  145. package/dist/level1/types/Job.js +11 -0
  146. package/dist/level1/types/Job.js.map +1 -0
  147. package/dist/level1/types/Options.d.ts +258 -0
  148. package/dist/level1/types/Options.d.ts.map +1 -0
  149. package/dist/level1/types/Options.js +8 -0
  150. package/dist/level1/types/Options.js.map +1 -0
  151. package/dist/level1/types/index.d.ts +8 -0
  152. package/dist/level1/types/index.d.ts.map +1 -0
  153. package/dist/level1/types/index.js +8 -0
  154. package/dist/level1/types/index.js.map +1 -0
  155. package/dist/protocol/ACTPKernel.d.ts +229 -2
  156. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  157. package/dist/protocol/ACTPKernel.js +367 -33
  158. package/dist/protocol/ACTPKernel.js.map +1 -1
  159. package/dist/protocol/AgentRegistry.d.ts +177 -0
  160. package/dist/protocol/AgentRegistry.d.ts.map +1 -0
  161. package/dist/protocol/AgentRegistry.js +449 -0
  162. package/dist/protocol/AgentRegistry.js.map +1 -0
  163. package/dist/protocol/DIDManager.d.ts +289 -0
  164. package/dist/protocol/DIDManager.d.ts.map +1 -0
  165. package/dist/protocol/DIDManager.js +481 -0
  166. package/dist/protocol/DIDManager.js.map +1 -0
  167. package/dist/protocol/DIDResolver.d.ts +236 -0
  168. package/dist/protocol/DIDResolver.d.ts.map +1 -0
  169. package/dist/protocol/DIDResolver.js +495 -0
  170. package/dist/protocol/DIDResolver.js.map +1 -0
  171. package/dist/protocol/EASHelper.d.ts +57 -2
  172. package/dist/protocol/EASHelper.d.ts.map +1 -1
  173. package/dist/protocol/EASHelper.js +230 -37
  174. package/dist/protocol/EASHelper.js.map +1 -1
  175. package/dist/protocol/EscrowVault.d.ts +93 -2
  176. package/dist/protocol/EscrowVault.d.ts.map +1 -1
  177. package/dist/protocol/EscrowVault.js +122 -33
  178. package/dist/protocol/EscrowVault.js.map +1 -1
  179. package/dist/protocol/EventMonitor.d.ts +45 -1
  180. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  181. package/dist/protocol/EventMonitor.js +64 -8
  182. package/dist/protocol/EventMonitor.js.map +1 -1
  183. package/dist/protocol/MessageSigner.d.ts +116 -2
  184. package/dist/protocol/MessageSigner.d.ts.map +1 -1
  185. package/dist/protocol/MessageSigner.js +215 -9
  186. package/dist/protocol/MessageSigner.js.map +1 -1
  187. package/dist/protocol/ProofGenerator.d.ts +93 -0
  188. package/dist/protocol/ProofGenerator.d.ts.map +1 -1
  189. package/dist/protocol/ProofGenerator.js +194 -9
  190. package/dist/protocol/ProofGenerator.js.map +1 -1
  191. package/dist/protocol/QuoteBuilder.d.ts +8 -0
  192. package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
  193. package/dist/protocol/QuoteBuilder.js +8 -0
  194. package/dist/protocol/QuoteBuilder.js.map +1 -1
  195. package/dist/runtime/BlockchainRuntime.d.ts +360 -0
  196. package/dist/runtime/BlockchainRuntime.d.ts.map +1 -0
  197. package/dist/runtime/BlockchainRuntime.js +767 -0
  198. package/dist/runtime/BlockchainRuntime.js.map +1 -0
  199. package/dist/runtime/IACTPRuntime.d.ts +271 -0
  200. package/dist/runtime/IACTPRuntime.d.ts.map +1 -0
  201. package/dist/runtime/IACTPRuntime.js +15 -0
  202. package/dist/runtime/IACTPRuntime.js.map +1 -0
  203. package/dist/runtime/MockRuntime.d.ts +445 -0
  204. package/dist/runtime/MockRuntime.d.ts.map +1 -0
  205. package/dist/runtime/MockRuntime.js +1065 -0
  206. package/dist/runtime/MockRuntime.js.map +1 -0
  207. package/dist/runtime/MockStateManager.d.ts +233 -0
  208. package/dist/runtime/MockStateManager.d.ts.map +1 -0
  209. package/dist/runtime/MockStateManager.js +533 -0
  210. package/dist/runtime/MockStateManager.js.map +1 -0
  211. package/dist/runtime/index.d.ts +14 -0
  212. package/dist/runtime/index.d.ts.map +1 -0
  213. package/dist/runtime/index.js +42 -0
  214. package/dist/runtime/index.js.map +1 -0
  215. package/dist/runtime/types/MockState.d.ts +167 -0
  216. package/dist/runtime/types/MockState.d.ts.map +1 -0
  217. package/dist/runtime/types/MockState.js +43 -0
  218. package/dist/runtime/types/MockState.js.map +1 -0
  219. package/dist/types/agent.d.ts +76 -0
  220. package/dist/types/agent.d.ts.map +1 -0
  221. package/dist/types/agent.js +8 -0
  222. package/dist/types/agent.js.map +1 -0
  223. package/dist/types/did.d.ts +192 -0
  224. package/dist/types/did.d.ts.map +1 -0
  225. package/dist/types/did.js +38 -0
  226. package/dist/types/did.js.map +1 -0
  227. package/dist/types/eip712.d.ts +34 -0
  228. package/dist/types/eip712.d.ts.map +1 -1
  229. package/dist/types/eip712.js +31 -5
  230. package/dist/types/eip712.js.map +1 -1
  231. package/dist/types/escrow.d.ts +17 -10
  232. package/dist/types/escrow.d.ts.map +1 -1
  233. package/dist/types/index.d.ts +5 -0
  234. package/dist/types/index.d.ts.map +1 -1
  235. package/dist/types/index.js +8 -0
  236. package/dist/types/index.js.map +1 -1
  237. package/dist/types/message.d.ts +32 -0
  238. package/dist/types/message.d.ts.map +1 -1
  239. package/dist/types/message.js +4 -0
  240. package/dist/types/message.js.map +1 -1
  241. package/dist/types/state.d.ts +28 -0
  242. package/dist/types/state.d.ts.map +1 -1
  243. package/dist/types/state.js +37 -6
  244. package/dist/types/state.js.map +1 -1
  245. package/dist/types/transaction.d.ts +17 -0
  246. package/dist/types/transaction.d.ts.map +1 -1
  247. package/dist/utils/ErrorRecoveryGuide.d.ts +125 -0
  248. package/dist/utils/ErrorRecoveryGuide.d.ts.map +1 -0
  249. package/dist/utils/ErrorRecoveryGuide.js +579 -0
  250. package/dist/utils/ErrorRecoveryGuide.js.map +1 -0
  251. package/dist/utils/Helpers.d.ts +453 -0
  252. package/dist/utils/Helpers.d.ts.map +1 -0
  253. package/dist/utils/Helpers.js +623 -0
  254. package/dist/utils/Helpers.js.map +1 -0
  255. package/dist/utils/IPFSClient.d.ts +113 -0
  256. package/dist/utils/IPFSClient.d.ts.map +1 -1
  257. package/dist/utils/IPFSClient.js +128 -7
  258. package/dist/utils/IPFSClient.js.map +1 -1
  259. package/dist/utils/Logger.d.ts +195 -0
  260. package/dist/utils/Logger.d.ts.map +1 -0
  261. package/dist/utils/Logger.js +382 -0
  262. package/dist/utils/Logger.js.map +1 -0
  263. package/dist/utils/NonceManager.d.ts +234 -1
  264. package/dist/utils/NonceManager.d.ts.map +1 -1
  265. package/dist/utils/NonceManager.js +372 -7
  266. package/dist/utils/NonceManager.js.map +1 -1
  267. package/dist/utils/RateLimiter.d.ts +253 -0
  268. package/dist/utils/RateLimiter.d.ts.map +1 -0
  269. package/dist/utils/RateLimiter.js +424 -0
  270. package/dist/utils/RateLimiter.js.map +1 -0
  271. package/dist/utils/ReceivedNonceTracker.d.ts +175 -0
  272. package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
  273. package/dist/utils/ReceivedNonceTracker.js +261 -5
  274. package/dist/utils/ReceivedNonceTracker.js.map +1 -1
  275. package/dist/utils/SDKLifecycle.d.ts +156 -0
  276. package/dist/utils/SDKLifecycle.d.ts.map +1 -0
  277. package/dist/utils/SDKLifecycle.js +347 -0
  278. package/dist/utils/SDKLifecycle.js.map +1 -0
  279. package/dist/utils/SecureNonce.d.ts +57 -0
  280. package/dist/utils/SecureNonce.d.ts.map +1 -0
  281. package/dist/utils/SecureNonce.js +80 -0
  282. package/dist/utils/SecureNonce.js.map +1 -0
  283. package/dist/utils/Semaphore.d.ts +123 -0
  284. package/dist/utils/Semaphore.d.ts.map +1 -0
  285. package/dist/utils/Semaphore.js +247 -0
  286. package/dist/utils/Semaphore.js.map +1 -0
  287. package/dist/utils/UsedAttestationTracker.d.ts +167 -0
  288. package/dist/utils/UsedAttestationTracker.d.ts.map +1 -0
  289. package/dist/utils/UsedAttestationTracker.js +309 -0
  290. package/dist/utils/UsedAttestationTracker.js.map +1 -0
  291. package/dist/utils/canonicalJson.d.ts +22 -0
  292. package/dist/utils/canonicalJson.d.ts.map +1 -1
  293. package/dist/utils/canonicalJson.js +26 -3
  294. package/dist/utils/canonicalJson.js.map +1 -1
  295. package/dist/utils/computeTypeHash.d.ts +14 -0
  296. package/dist/utils/computeTypeHash.d.ts.map +1 -1
  297. package/dist/utils/computeTypeHash.js +19 -2
  298. package/dist/utils/computeTypeHash.js.map +1 -1
  299. package/dist/utils/fsSafe.d.ts +14 -0
  300. package/dist/utils/fsSafe.d.ts.map +1 -0
  301. package/dist/utils/fsSafe.js +89 -0
  302. package/dist/utils/fsSafe.js.map +1 -0
  303. package/dist/utils/index.d.ts +15 -0
  304. package/dist/utils/index.d.ts.map +1 -0
  305. package/dist/utils/index.js +51 -0
  306. package/dist/utils/index.js.map +1 -0
  307. package/dist/utils/security.d.ts +147 -0
  308. package/dist/utils/security.d.ts.map +1 -0
  309. package/dist/utils/security.js +391 -0
  310. package/dist/utils/security.js.map +1 -0
  311. package/dist/utils/validation.d.ts +40 -0
  312. package/dist/utils/validation.d.ts.map +1 -1
  313. package/dist/utils/validation.js +184 -7
  314. package/dist/utils/validation.js.map +1 -1
  315. package/package.json +54 -37
  316. package/src/ACTPClient.ts +692 -178
  317. package/src/abi/AgentRegistry.json +782 -0
  318. package/src/abi/EscrowVault.json +106 -38
  319. package/src/abi/IdentityRegistry.json +316 -0
  320. package/src/adapters/BaseAdapter.ts +473 -0
  321. package/src/adapters/BeginnerAdapter.ts +232 -0
  322. package/src/adapters/IntermediateAdapter.ts +316 -0
  323. package/src/adapters/index.ts +25 -0
  324. package/src/builders/DeliveryProofBuilder.ts +3 -2
  325. package/src/cli/commands/balance.ts +110 -0
  326. package/src/cli/commands/batch.ts +487 -0
  327. package/src/cli/commands/config.ts +231 -0
  328. package/src/cli/commands/init.ts +161 -0
  329. package/src/cli/commands/mint.ts +116 -0
  330. package/src/cli/commands/pay.ts +113 -0
  331. package/src/cli/commands/simulate.ts +345 -0
  332. package/src/cli/commands/time.ts +303 -0
  333. package/src/cli/commands/tx.ts +448 -0
  334. package/src/cli/commands/watch.ts +211 -0
  335. package/src/cli/index.ts +116 -0
  336. package/src/cli/utils/client.ts +249 -0
  337. package/src/cli/utils/config.ts +282 -0
  338. package/src/cli/utils/output.ts +465 -0
  339. package/src/config/networks.ts +32 -9
  340. package/src/errors/index.ts +298 -1
  341. package/src/index.ts +207 -71
  342. package/src/level0/Provider.ts +117 -0
  343. package/src/level0/ServiceDirectory.ts +131 -0
  344. package/src/level0/index.ts +10 -0
  345. package/src/level0/provide.ts +131 -0
  346. package/src/level0/request.ts +494 -0
  347. package/src/level1/Agent.ts +1432 -0
  348. package/src/level1/index.ts +10 -0
  349. package/src/level1/pricing/PriceCalculator.ts +255 -0
  350. package/src/level1/pricing/PricingStrategy.ts +198 -0
  351. package/src/level1/types/Job.ts +179 -0
  352. package/src/level1/types/Options.ts +291 -0
  353. package/src/level1/types/index.ts +8 -0
  354. package/src/protocol/ACTPKernel.ts +175 -23
  355. package/src/protocol/AgentRegistry.ts +559 -0
  356. package/src/protocol/DIDManager.ts +629 -0
  357. package/src/protocol/DIDResolver.ts +554 -0
  358. package/src/protocol/EASHelper.ts +230 -46
  359. package/src/protocol/EscrowVault.ts +68 -50
  360. package/src/protocol/EventMonitor.ts +44 -15
  361. package/src/protocol/MessageSigner.ts +193 -13
  362. package/src/protocol/ProofGenerator.ts +223 -4
  363. package/src/runtime/BlockchainRuntime.ts +993 -0
  364. package/src/runtime/IACTPRuntime.ts +284 -0
  365. package/src/runtime/MockRuntime.ts +1244 -0
  366. package/src/runtime/MockStateManager.ts +576 -0
  367. package/src/runtime/index.ts +25 -0
  368. package/src/runtime/types/MockState.ts +227 -0
  369. package/src/types/agent.ts +79 -0
  370. package/src/types/did.ts +223 -0
  371. package/src/types/escrow.ts +12 -11
  372. package/src/types/index.ts +5 -1
  373. package/src/types/state.ts +12 -3
  374. package/src/types/transaction.ts +4 -1
  375. package/src/utils/ErrorRecoveryGuide.ts +675 -0
  376. package/src/utils/Helpers.ts +688 -0
  377. package/src/utils/IPFSClient.ts +122 -5
  378. package/src/utils/Logger.ts +484 -0
  379. package/src/utils/NonceManager.ts +305 -8
  380. package/src/utils/RateLimiter.ts +534 -0
  381. package/src/utils/ReceivedNonceTracker.ts +170 -0
  382. package/src/utils/SDKLifecycle.ts +416 -0
  383. package/src/utils/SecureNonce.ts +78 -0
  384. package/src/utils/Semaphore.ts +276 -0
  385. package/src/utils/UsedAttestationTracker.ts +387 -0
  386. package/src/utils/fsSafe.ts +75 -0
  387. package/src/utils/index.ts +80 -0
  388. package/src/utils/security.ts +418 -0
  389. package/src/utils/validation.ts +164 -0
  390. package/src/__tests__/ProofGenerator.test.ts +0 -124
  391. package/src/__tests__/QuoteBuilder.test.ts +0 -516
  392. package/src/__tests__/StateMachine.test.ts +0 -82
  393. package/src/__tests__/builders/DeliveryProofBuilder.test.ts +0 -581
  394. package/src/__tests__/integration/ACTPClient.test.ts +0 -263
  395. package/src/__tests__/integration.test.ts +0 -289
  396. package/src/__tests__/protocol/EASHelper.test.ts +0 -472
  397. package/src/__tests__/protocol/EventMonitor.test.ts +0 -382
  398. package/src/__tests__/security/ACTPKernel.security.test.ts +0 -1167
  399. package/src/__tests__/security/EscrowVault.security.test.ts +0 -570
  400. package/src/__tests__/security/MessageSigner.security.test.ts +0 -286
  401. package/src/__tests__/security/NonceReplay.security.test.ts +0 -501
  402. package/src/__tests__/security/validation.security.test.ts +0 -376
  403. package/src/__tests__/utils/IPFSClient.test.ts +0 -262
  404. package/src/__tests__/utils/NonceManager.test.ts +0 -205
  405. package/src/__tests__/utils/canonicalJson.test.ts +0 -153
@@ -0,0 +1,260 @@
1
+ "use strict";
2
+ /**
3
+ * IntermediateAdapter - Balanced API for developers with some protocol knowledge
4
+ *
5
+ * Provides more control than BeginnerAdapter while still offering convenience:
6
+ * - Explicit transaction lifecycle methods
7
+ * - Direct escrow operations
8
+ * - State transition control
9
+ *
10
+ * Use this adapter when you need fine-grained control but still want
11
+ * user-friendly input parsing and validation.
12
+ *
13
+ * @module adapters/IntermediateAdapter
14
+ */
15
+ Object.defineProperty(exports, "__esModule", { value: true });
16
+ exports.IntermediateAdapter = void 0;
17
+ const BaseAdapter_1 = require("./BaseAdapter");
18
+ /**
19
+ * IntermediateAdapter - Balanced API for transaction lifecycle control.
20
+ *
21
+ * Provides explicit methods for each stage of the ACTP lifecycle:
22
+ * - `createTransaction()` - Create transaction without escrow
23
+ * - `linkEscrow()` - Link escrow (auto-transitions to COMMITTED)
24
+ * - `transitionState()` - Manually transition state
25
+ * - `releaseEscrow()` - Release funds to provider
26
+ * - `getEscrowBalance()` - Check escrow balance
27
+ * - `getTransaction()` - Get transaction details
28
+ *
29
+ * @example
30
+ * ```typescript
31
+ * const client = await ACTPClient.create({ mode: 'mock' });
32
+ *
33
+ * // Create transaction (INITIATED state)
34
+ * const txId = await client.intermediate.createTransaction({
35
+ * provider: '0xProvider123',
36
+ * amount: '100',
37
+ * deadline: '+7d',
38
+ * });
39
+ *
40
+ * // Link escrow (auto-transitions to COMMITTED)
41
+ * await client.intermediate.linkEscrow(txId, '100');
42
+ *
43
+ * // Provider delivers
44
+ * await client.intermediate.transitionState(txId, 'DELIVERED');
45
+ *
46
+ * // Release funds after dispute window
47
+ * await client.intermediate.releaseEscrow(escrowId);
48
+ * ```
49
+ */
50
+ class IntermediateAdapter extends BaseAdapter_1.BaseAdapter {
51
+ /**
52
+ * Creates a new IntermediateAdapter instance.
53
+ *
54
+ * @param runtime - ACTP runtime implementation (MockRuntime or BlockchainRuntime)
55
+ * @param requesterAddress - The requester's Ethereum address
56
+ * @param easHelper - Optional EAS helper for attestation verification (SECURITY FIX C-4)
57
+ */
58
+ constructor(runtime, requesterAddress, easHelper) {
59
+ super(requesterAddress);
60
+ this.runtime = runtime;
61
+ this.easHelper = easHelper;
62
+ }
63
+ /**
64
+ * Create a transaction (INITIATED state, no escrow yet).
65
+ *
66
+ * Unlike `beginner.pay()`, this only creates the transaction
67
+ * without linking escrow. You must call `linkEscrow()` separately.
68
+ *
69
+ * @param params - Transaction parameters
70
+ * @returns Transaction ID
71
+ * @throws {ValidationError} If inputs are invalid
72
+ *
73
+ * @example
74
+ * ```typescript
75
+ * const txId = await adapter.createTransaction({
76
+ * provider: '0xProvider123',
77
+ * amount: '100',
78
+ * deadline: '+24h',
79
+ * });
80
+ * ```
81
+ */
82
+ async createTransaction(params) {
83
+ const provider = this.validateAddress(params.provider, 'provider');
84
+ const amount = this.parseAmount(params.amount);
85
+ const currentTime = this.runtime.time.now();
86
+ const deadline = this.parseDeadline(params.deadline, currentTime);
87
+ // SECURITY FIX (L-1): Validate dispute window bounds
88
+ const disputeWindow = this.validateDisputeWindow(params.disputeWindow);
89
+ const requester = this.requesterAddress;
90
+ // Validation
91
+ if (requester.toLowerCase() === provider.toLowerCase()) {
92
+ throw new BaseAdapter_1.ValidationError('Cannot create transaction with yourself as provider');
93
+ }
94
+ if (deadline <= currentTime) {
95
+ throw new BaseAdapter_1.ValidationError('Deadline must be in the future');
96
+ }
97
+ return this.runtime.createTransaction({
98
+ provider,
99
+ requester,
100
+ amount: amount.toString(),
101
+ deadline,
102
+ disputeWindow,
103
+ serviceDescription: params.serviceDescription,
104
+ });
105
+ }
106
+ /**
107
+ * Link escrow to a transaction.
108
+ *
109
+ * Automatically transitions INITIATED or QUOTED → COMMITTED.
110
+ * Deducts funds from requester and locks in escrow.
111
+ *
112
+ * @param txId - Transaction ID
113
+ * @returns Escrow ID
114
+ * @throws {Error} If transaction not found or in wrong state
115
+ *
116
+ * @example
117
+ * ```typescript
118
+ * const escrowId = await adapter.linkEscrow(txId);
119
+ * ```
120
+ */
121
+ async linkEscrow(txId) {
122
+ const tx = await this.runtime.getTransaction(txId);
123
+ if (!tx) {
124
+ throw new Error(`Transaction ${txId} not found`);
125
+ }
126
+ // Use the transaction's amount (already in correct format)
127
+ return this.runtime.linkEscrow(txId, tx.amount);
128
+ }
129
+ /**
130
+ * Transition transaction to a new state.
131
+ *
132
+ * Validates the transition against the ACTP 8-state machine.
133
+ *
134
+ * Valid transitions:
135
+ * - INITIATED → QUOTED, COMMITTED, CANCELLED
136
+ * - QUOTED → COMMITTED, CANCELLED
137
+ * - COMMITTED → IN_PROGRESS, DELIVERED, CANCELLED
138
+ * - IN_PROGRESS → DELIVERED, CANCELLED
139
+ * - DELIVERED → SETTLED, DISPUTED
140
+ * - DISPUTED → SETTLED
141
+ *
142
+ * @param txId - Transaction ID
143
+ * @param newState - Target state
144
+ * @throws {Error} If transition is invalid
145
+ *
146
+ * @example
147
+ * ```typescript
148
+ * // Provider marks work as delivered
149
+ * await adapter.transitionState(txId, 'DELIVERED');
150
+ * ```
151
+ */
152
+ async transitionState(txId, newState) {
153
+ return this.runtime.transitionState(txId, newState);
154
+ }
155
+ /**
156
+ * Release escrow funds to the provider.
157
+ *
158
+ * Can only be called when transaction is in DELIVERED state
159
+ * and dispute window has expired.
160
+ *
161
+ * SECURITY FIX (C-4 + HIGH-5): MANDATORY attestation verification before release.
162
+ * When EASHelper is available (testnet/mainnet modes), attestation verification
163
+ * is REQUIRED - not optional. This prevents releasing funds without proper
164
+ * delivery proof.
165
+ *
166
+ * Verifications performed:
167
+ * - Attestation exists and is not revoked
168
+ * - Attestation belongs to this transaction (prevents replay attacks)
169
+ * - Attestation has not been used for a different transaction
170
+ *
171
+ * @param escrowId - Escrow ID
172
+ * @param attestationParams - Attestation verification params (REQUIRED when EASHelper available)
173
+ * @param attestationParams.txId - Transaction ID (bytes32)
174
+ * @param attestationParams.attestationUID - Attestation UID (bytes32)
175
+ * @throws {Error} If escrow not found or dispute window active
176
+ * @throws {Error} If EASHelper is available but attestationParams not provided (HIGH-5)
177
+ * @throws {Error} If attestation verification fails
178
+ *
179
+ * @example
180
+ * ```typescript
181
+ * // With attestation verification (REQUIRED in testnet/mainnet)
182
+ * await adapter.releaseEscrow(escrowId, {
183
+ * txId: '0x...',
184
+ * attestationUID: '0x...'
185
+ * });
186
+ *
187
+ * // Mock mode only (no attestation required)
188
+ * await adapter.releaseEscrow(escrowId);
189
+ * ```
190
+ */
191
+ async releaseEscrow(escrowId, attestationParams) {
192
+ // Determine whether the underlying runtime requires attestation.
193
+ // BlockchainRuntime exposes isAttestationRequired(), but it's not part of the generic interface.
194
+ const runtimeAny = this.runtime;
195
+ const runtimeSupportsAttestationFlag = typeof runtimeAny?.isAttestationRequired === 'function';
196
+ const attestationRequired = runtimeSupportsAttestationFlag
197
+ ? Boolean(runtimeAny.isAttestationRequired())
198
+ : Boolean(this.easHelper);
199
+ if (attestationRequired && !attestationParams) {
200
+ throw new Error('Attestation verification is REQUIRED for escrow release. ' +
201
+ 'Provide attestationParams: { txId: string, attestationUID: string }.');
202
+ }
203
+ // If caller provided attestation params, ensure they match the escrow/tx being released.
204
+ if (attestationParams) {
205
+ // Support legacy escrowId format "escrow-{txId}-{timestamp}".
206
+ // Standard is escrowId === txId.
207
+ const legacyMatch = escrowId.match(/^escrow-(.+)-\d+$/);
208
+ const txIdFromEscrowId = legacyMatch ? legacyMatch[1] : escrowId;
209
+ if (txIdFromEscrowId.toLowerCase() !== attestationParams.txId.toLowerCase()) {
210
+ throw new Error(`Attestation txId (${attestationParams.txId}) does not match escrow/txId (${txIdFromEscrowId}). ` +
211
+ `Refusing to release escrow with mismatched attestation.`);
212
+ }
213
+ // If runtime does NOT handle attestation internally but EASHelper exists, verify here.
214
+ // Otherwise, pass attestationUID down so BlockchainRuntime can enforce/record.
215
+ if (!runtimeSupportsAttestationFlag && this.easHelper) {
216
+ await this.easHelper.verifyAndRecordForRelease(attestationParams.txId, attestationParams.attestationUID);
217
+ }
218
+ }
219
+ return this.runtime.releaseEscrow(escrowId, attestationParams?.attestationUID);
220
+ }
221
+ /**
222
+ * Get escrow balance.
223
+ *
224
+ * Returns formatted balance string (e.g., "100.00 USDC").
225
+ *
226
+ * @param escrowId - Escrow ID
227
+ * @returns Formatted balance
228
+ * @throws {Error} If escrow not found
229
+ *
230
+ * @example
231
+ * ```typescript
232
+ * const balance = await adapter.getEscrowBalance(escrowId);
233
+ * console.log(balance); // "100.00 USDC"
234
+ * ```
235
+ */
236
+ async getEscrowBalance(escrowId) {
237
+ const balance = await this.runtime.getEscrowBalance(escrowId);
238
+ return this.formatAmount(balance);
239
+ }
240
+ /**
241
+ * Get transaction details.
242
+ *
243
+ * Returns the full transaction object from the runtime.
244
+ *
245
+ * @param txId - Transaction ID
246
+ * @returns Transaction object or null if not found
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * const tx = await adapter.getTransaction(txId);
251
+ * console.log('State:', tx?.state);
252
+ * console.log('Amount:', tx?.amount);
253
+ * ```
254
+ */
255
+ async getTransaction(txId) {
256
+ return this.runtime.getTransaction(txId);
257
+ }
258
+ }
259
+ exports.IntermediateAdapter = IntermediateAdapter;
260
+ //# sourceMappingURL=IntermediateAdapter.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IntermediateAdapter.js","sourceRoot":"","sources":["../../src/adapters/IntermediateAdapter.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Adapter Layer - Bridges user-friendly API to protocol-level SDK
3
+ *
4
+ * This module exports all adapter classes and types for the Three-Level API:
5
+ * - BaseAdapter: Abstract base with shared utilities
6
+ * - BeginnerAdapter: High-level, opinionated API
7
+ * - IntermediateAdapter: Balanced control API
8
+ *
9
+ * @module adapters
10
+ */
11
+ export { BaseAdapter, ValidationError, DEFAULT_DISPUTE_WINDOW_SECONDS, DEFAULT_DEADLINE_SECONDS, MIN_AMOUNT_WEI, MAX_DEADLINE_HOURS, MAX_DEADLINE_DAYS, } from './BaseAdapter';
12
+ export { BeginnerAdapter, BeginnerPayParams, BeginnerPayResult } from './BeginnerAdapter';
13
+ export { IntermediateAdapter, IntermediateTransactionParams } from './IntermediateAdapter';
14
+ export { IACTPRuntime, CreateTransactionParams } from '../runtime/IACTPRuntime';
15
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EACL,WAAW,EACX,eAAe,EACf,8BAA8B,EAC9B,wBAAwB,EACxB,cAAc,EACd,kBAAkB,EAClB,iBAAiB,GAClB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC;AAC1F,OAAO,EAAE,mBAAmB,EAAE,6BAA6B,EAAE,MAAM,uBAAuB,CAAC;AAG3F,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC"}
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Adapter Layer - Bridges user-friendly API to protocol-level SDK
4
+ *
5
+ * This module exports all adapter classes and types for the Three-Level API:
6
+ * - BaseAdapter: Abstract base with shared utilities
7
+ * - BeginnerAdapter: High-level, opinionated API
8
+ * - IntermediateAdapter: Balanced control API
9
+ *
10
+ * @module adapters
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.IntermediateAdapter = exports.BeginnerAdapter = exports.MAX_DEADLINE_DAYS = exports.MAX_DEADLINE_HOURS = exports.MIN_AMOUNT_WEI = exports.DEFAULT_DEADLINE_SECONDS = exports.DEFAULT_DISPUTE_WINDOW_SECONDS = exports.ValidationError = exports.BaseAdapter = void 0;
14
+ var BaseAdapter_1 = require("./BaseAdapter");
15
+ Object.defineProperty(exports, "BaseAdapter", { enumerable: true, get: function () { return BaseAdapter_1.BaseAdapter; } });
16
+ Object.defineProperty(exports, "ValidationError", { enumerable: true, get: function () { return BaseAdapter_1.ValidationError; } });
17
+ Object.defineProperty(exports, "DEFAULT_DISPUTE_WINDOW_SECONDS", { enumerable: true, get: function () { return BaseAdapter_1.DEFAULT_DISPUTE_WINDOW_SECONDS; } });
18
+ Object.defineProperty(exports, "DEFAULT_DEADLINE_SECONDS", { enumerable: true, get: function () { return BaseAdapter_1.DEFAULT_DEADLINE_SECONDS; } });
19
+ Object.defineProperty(exports, "MIN_AMOUNT_WEI", { enumerable: true, get: function () { return BaseAdapter_1.MIN_AMOUNT_WEI; } });
20
+ Object.defineProperty(exports, "MAX_DEADLINE_HOURS", { enumerable: true, get: function () { return BaseAdapter_1.MAX_DEADLINE_HOURS; } });
21
+ Object.defineProperty(exports, "MAX_DEADLINE_DAYS", { enumerable: true, get: function () { return BaseAdapter_1.MAX_DEADLINE_DAYS; } });
22
+ var BeginnerAdapter_1 = require("./BeginnerAdapter");
23
+ Object.defineProperty(exports, "BeginnerAdapter", { enumerable: true, get: function () { return BeginnerAdapter_1.BeginnerAdapter; } });
24
+ var IntermediateAdapter_1 = require("./IntermediateAdapter");
25
+ Object.defineProperty(exports, "IntermediateAdapter", { enumerable: true, get: function () { return IntermediateAdapter_1.IntermediateAdapter; } });
26
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/adapters/index.ts"],"names":[],"mappings":";AAAA;;;;;;;;;GASG;;;AAEH,6CAQuB;AAPrB,0GAAA,WAAW,OAAA;AACX,8GAAA,eAAe,OAAA;AACf,6HAAA,8BAA8B,OAAA;AAC9B,uHAAA,wBAAwB,OAAA;AACxB,6GAAA,cAAc,OAAA;AACd,iHAAA,kBAAkB,OAAA;AAClB,gHAAA,iBAAiB,OAAA;AAEnB,qDAA0F;AAAjF,kHAAA,eAAe,OAAA;AACxB,6DAA2F;AAAlF,0HAAA,mBAAmB,OAAA"}
@@ -1,9 +1,27 @@
1
+ /**
2
+ * DeliveryProofBuilder - AIP-4 Delivery Proof Construction
3
+ * Reference: AIP-4 §9.1
4
+ *
5
+ * Builds complete delivery proofs with:
6
+ * - IPFS upload of result data
7
+ * - EAS attestation creation
8
+ * - EIP-712 signature
9
+ * - Canonical JSON hashing
10
+ */
1
11
  import { Signer } from 'ethers';
2
12
  import { EAS } from '@ethereum-attestation-service/eas-sdk';
3
13
  import { IPFSClient } from '../utils/IPFSClient';
4
14
  import { NonceManager } from '../utils/NonceManager';
5
15
  import { DeliveryProofMessage } from '../types/message';
6
- export declare const AGIRAILS_DELIVERY_SCHEMA_UID = "0x0000000000000000000000000000000000000000000000000000000000000000";
16
+ /**
17
+ * AGIRAILS Delivery Schema UID (Base Sepolia)
18
+ * Deployed 2025-11-23 - AIP-4 delivery proof schema
19
+ * Schema: bytes32 txId, string resultCID, bytes32 resultHash, uint256 deliveredAt
20
+ */
21
+ export declare const AGIRAILS_DELIVERY_SCHEMA_UID = "0x1b0ebdf0bd20c28ec9d5362571ce8715a55f46e81c3de2f9b0d8e1b95fb5ffce";
22
+ /**
23
+ * Delivery proof build parameters
24
+ */
7
25
  export interface DeliveryProofParams {
8
26
  txId: string;
9
27
  provider: string;
@@ -18,20 +36,61 @@ export interface DeliveryProofParams {
18
36
  chainId: number;
19
37
  kernelAddress: string;
20
38
  }
39
+ /**
40
+ * DeliveryProofBuilder - Main Builder Class
41
+ */
21
42
  export declare class DeliveryProofBuilder {
22
43
  private ipfs;
23
44
  private signer;
24
45
  private nonceManager;
25
46
  private eas;
26
47
  constructor(ipfs: IPFSClient, signer: Signer, nonceManager: NonceManager, eas: EAS);
48
+ /**
49
+ * Build complete delivery proof
50
+ * Reference: AIP-4 §5.1 (Provider workflow steps 1-9)
51
+ *
52
+ * @param params - Delivery proof parameters
53
+ * @returns Delivery proof message, IPFS CID, and attestation UID
54
+ */
27
55
  build(params: DeliveryProofParams): Promise<{
28
56
  deliveryProof: DeliveryProofMessage;
29
57
  deliveryProofCID: string;
30
58
  attestationUID: string;
31
59
  }>;
60
+ /**
61
+ * Verify delivery proof signature and integrity
62
+ * Reference: AIP-4 §5.2 (Consumer verification)
63
+ *
64
+ * @param deliveryProof - Delivery proof message
65
+ * @param resultData - Actual result data (from IPFS)
66
+ * @param kernelAddress - ACTPKernel contract address
67
+ * @returns true if valid, throws error otherwise
68
+ */
32
69
  verify(deliveryProof: DeliveryProofMessage, resultData: any, kernelAddress: string): Promise<boolean>;
70
+ /**
71
+ * Sign delivery proof with EIP-712
72
+ * Reference: AIP-4 §3.3
73
+ *
74
+ * @param deliveryProof - Delivery proof message (unsigned)
75
+ * @param kernelAddress - ACTPKernel contract address
76
+ * @returns EIP-712 signature (0x-prefixed, 130 chars)
77
+ */
33
78
  private signDeliveryProof;
79
+ /**
80
+ * Recover signer address from delivery proof signature
81
+ *
82
+ * @param deliveryProof - Delivery proof message
83
+ * @param kernelAddress - ACTPKernel contract address
84
+ * @returns Recovered Ethereum address
85
+ */
34
86
  private recoverDeliveryProofSigner;
87
+ /**
88
+ * Extract Ethereum address from DID
89
+ * Supports: did:ethr:0x... and did:ethr:84532:0x...
90
+ *
91
+ * @param did - DID string
92
+ * @returns Ethereum address (0x-prefixed, checksummed)
93
+ */
35
94
  private extractAddressFromDID;
36
95
  }
37
96
  //# sourceMappingURL=DeliveryProofBuilder.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"DeliveryProofBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/DeliveryProofBuilder.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,GAAG,EAAiB,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAOxD,eAAO,MAAM,4BAA4B,uEAAuE,CAAC;AAKjH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAOD,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;gBAHH,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,GAAG;IAUZ,KAAK,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAChD,aAAa,EAAE,oBAAoB,CAAC;QACpC,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IAmFI,MAAM,CACV,aAAa,EAAE,oBAAoB,EACnC,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;YAqEL,iBAAiB;YA6CjB,0BAA0B;IA+CxC,OAAO,CAAC,qBAAqB;CAU9B"}
1
+ {"version":3,"file":"DeliveryProofBuilder.d.ts","sourceRoot":"","sources":["../../src/builders/DeliveryProofBuilder.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,OAAO,EAAE,MAAM,EAAmB,MAAM,QAAQ,CAAC;AACjD,OAAO,EAAE,GAAG,EAAiB,MAAM,uCAAuC,CAAC;AAE3E,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AAGxD;;;;GAIG;AACH,eAAO,MAAM,4BAA4B,uEAAuE,CAAC;AAEjH;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,GAAG,CAAC;IAChB,QAAQ,CAAC,EAAE;QACT,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAID;;GAEG;AACH,qBAAa,oBAAoB;IAE7B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;IACpB,OAAO,CAAC,GAAG;gBAHH,IAAI,EAAE,UAAU,EAChB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY,EAC1B,GAAG,EAAE,GAAG;IAGlB;;;;;;OAMG;IACG,KAAK,CAAC,MAAM,EAAE,mBAAmB,GAAG,OAAO,CAAC;QAChD,aAAa,EAAE,oBAAoB,CAAC;QACpC,gBAAgB,EAAE,MAAM,CAAC;QACzB,cAAc,EAAE,MAAM,CAAC;KACxB,CAAC;IA0EF;;;;;;;;OAQG;IACG,MAAM,CACV,aAAa,EAAE,oBAAoB,EACnC,UAAU,EAAE,GAAG,EACf,aAAa,EAAE,MAAM,GACpB,OAAO,CAAC,OAAO,CAAC;IA6DnB;;;;;;;OAOG;YACW,iBAAiB;IAsC/B;;;;;;OAMG;YACW,0BAA0B;IAwCxC;;;;;;OAMG;IACH,OAAO,CAAC,qBAAqB;CAU9B"}
@@ -1,11 +1,30 @@
1
1
  "use strict";
2
+ /**
3
+ * DeliveryProofBuilder - AIP-4 Delivery Proof Construction
4
+ * Reference: AIP-4 §9.1
5
+ *
6
+ * Builds complete delivery proofs with:
7
+ * - IPFS upload of result data
8
+ * - EAS attestation creation
9
+ * - EIP-712 signature
10
+ * - Canonical JSON hashing
11
+ */
2
12
  Object.defineProperty(exports, "__esModule", { value: true });
3
13
  exports.DeliveryProofBuilder = exports.AGIRAILS_DELIVERY_SCHEMA_UID = void 0;
4
14
  const ethers_1 = require("ethers");
5
15
  const eas_sdk_1 = require("@ethereum-attestation-service/eas-sdk");
6
16
  const canonicalJson_1 = require("../utils/canonicalJson");
7
17
  const eip712_1 = require("../types/eip712");
8
- exports.AGIRAILS_DELIVERY_SCHEMA_UID = '0x0000000000000000000000000000000000000000000000000000000000000000';
18
+ /**
19
+ * AGIRAILS Delivery Schema UID (Base Sepolia)
20
+ * Deployed 2025-11-23 - AIP-4 delivery proof schema
21
+ * Schema: bytes32 txId, string resultCID, bytes32 resultHash, uint256 deliveredAt
22
+ */
23
+ exports.AGIRAILS_DELIVERY_SCHEMA_UID = '0x1b0ebdf0bd20c28ec9d5362571ce8715a55f46e81c3de2f9b0d8e1b95fb5ffce';
24
+ // IPFSClient and NonceManager interfaces imported from utils
25
+ /**
26
+ * DeliveryProofBuilder - Main Builder Class
27
+ */
9
28
  class DeliveryProofBuilder {
10
29
  constructor(ipfs, signer, nonceManager, eas) {
11
30
  this.ipfs = ipfs;
@@ -13,12 +32,23 @@ class DeliveryProofBuilder {
13
32
  this.nonceManager = nonceManager;
14
33
  this.eas = eas;
15
34
  }
35
+ /**
36
+ * Build complete delivery proof
37
+ * Reference: AIP-4 §5.1 (Provider workflow steps 1-9)
38
+ *
39
+ * @param params - Delivery proof parameters
40
+ * @returns Delivery proof message, IPFS CID, and attestation UID
41
+ */
16
42
  async build(params) {
43
+ // Step 1: Upload result to IPFS
17
44
  const resultCID = await this.ipfs.add(JSON.stringify(params.resultData));
18
- await this.ipfs.pin(resultCID);
45
+ await this.ipfs.pin(resultCID); // Permanent pinning
46
+ // Step 2: Compute result hash (canonical JSON)
19
47
  const resultHash = (0, canonicalJson_1.computeResultHash)(params.resultData);
48
+ // Step 3: Create EAS attestation on-chain
20
49
  const deliveredAt = Math.floor(Date.now() / 1000);
21
50
  const schemaEncoder = new eas_sdk_1.SchemaEncoder('bytes32 txId,string resultCID,bytes32 resultHash,uint256 deliveredAt');
51
+ // Extract Ethereum address from consumer DID
22
52
  const consumerAddress = this.extractAddressFromDID(params.consumer);
23
53
  const encodedData = schemaEncoder.encodeData([
24
54
  { name: 'txId', value: params.txId, type: 'bytes32' },
@@ -30,13 +60,15 @@ class DeliveryProofBuilder {
30
60
  schema: exports.AGIRAILS_DELIVERY_SCHEMA_UID,
31
61
  data: {
32
62
  recipient: consumerAddress,
33
- expirationTime: 0n,
63
+ expirationTime: 0n, // No expiration (use bigint)
34
64
  revocable: false,
35
65
  data: encodedData
36
66
  }
37
67
  });
38
68
  const receipt = await tx.wait();
69
+ // EAS SDK returns attestation UID directly in newAttestationUID
39
70
  const attestationUID = receipt.newAttestationUID || receipt;
71
+ // Step 4: Build delivery proof message (unsigned)
40
72
  const deliveryProof = {
41
73
  type: 'agirails.delivery.v1',
42
74
  version: '1.0.0',
@@ -50,12 +82,15 @@ class DeliveryProofBuilder {
50
82
  deliveredAt,
51
83
  chainId: params.chainId,
52
84
  nonce: this.nonceManager.getNextNonce('agirails.delivery.v1'),
53
- signature: ''
85
+ signature: '' // Filled in next step
54
86
  };
87
+ // Step 5: Sign with EIP-712
55
88
  const signature = await this.signDeliveryProof(deliveryProof, params.kernelAddress);
56
89
  deliveryProof.signature = signature;
90
+ // Step 6: Upload delivery proof to IPFS
57
91
  const deliveryProofCID = await this.ipfs.add(JSON.stringify(deliveryProof));
58
- await this.ipfs.pin(deliveryProofCID);
92
+ await this.ipfs.pin(deliveryProofCID); // Permanent
93
+ // Record nonce usage
59
94
  this.nonceManager.recordNonce('agirails.delivery.v1', deliveryProof.nonce);
60
95
  return {
61
96
  deliveryProof,
@@ -63,16 +98,28 @@ class DeliveryProofBuilder {
63
98
  attestationUID
64
99
  };
65
100
  }
101
+ /**
102
+ * Verify delivery proof signature and integrity
103
+ * Reference: AIP-4 §5.2 (Consumer verification)
104
+ *
105
+ * @param deliveryProof - Delivery proof message
106
+ * @param resultData - Actual result data (from IPFS)
107
+ * @param kernelAddress - ACTPKernel contract address
108
+ * @returns true if valid, throws error otherwise
109
+ */
66
110
  async verify(deliveryProof, resultData, kernelAddress) {
111
+ // 1. Verify signature
67
112
  const recoveredAddress = await this.recoverDeliveryProofSigner(deliveryProof, kernelAddress);
68
113
  const expectedAddress = this.extractAddressFromDID(deliveryProof.provider);
69
114
  if (recoveredAddress.toLowerCase() !== expectedAddress.toLowerCase()) {
70
115
  throw new Error('Invalid signature: recovered address does not match provider');
71
116
  }
117
+ // 2. Verify result hash
72
118
  const computedHash = (0, canonicalJson_1.computeResultHash)(resultData);
73
119
  if (computedHash !== deliveryProof.resultHash) {
74
120
  throw new Error('Result hash mismatch - data may be tampered');
75
121
  }
122
+ // 3. Verify EAS attestation exists and is valid
76
123
  const attestation = await this.eas.getAttestation(deliveryProof.easAttestationUID);
77
124
  if (!attestation) {
78
125
  throw new Error('Attestation not found on EAS');
@@ -80,12 +127,14 @@ class DeliveryProofBuilder {
80
127
  if (attestation.schema !== exports.AGIRAILS_DELIVERY_SCHEMA_UID) {
81
128
  throw new Error(`Invalid attestation schema: expected ${exports.AGIRAILS_DELIVERY_SCHEMA_UID}, got ${attestation.schema}`);
82
129
  }
130
+ // Check if attestation is revoked (property may not exist in all EAS SDK versions)
83
131
  if ('revoked' in attestation && attestation.revoked) {
84
132
  throw new Error('Attestation was revoked');
85
133
  }
86
134
  if ('revocationTime' in attestation && attestation.revocationTime > 0) {
87
135
  throw new Error('Attestation was revoked');
88
136
  }
137
+ // 4. Verify attestation data matches delivery proof
89
138
  const schemaEncoder = new eas_sdk_1.SchemaEncoder('bytes32 txId,string resultCID,bytes32 resultHash,uint256 deliveredAt');
90
139
  const decodedData = schemaEncoder.decodeData(attestation.data);
91
140
  const attestationTxId = decodedData.find((d) => d.name === 'txId')?.value.value;
@@ -102,6 +151,14 @@ class DeliveryProofBuilder {
102
151
  }
103
152
  return true;
104
153
  }
154
+ /**
155
+ * Sign delivery proof with EIP-712
156
+ * Reference: AIP-4 §3.3
157
+ *
158
+ * @param deliveryProof - Delivery proof message (unsigned)
159
+ * @param kernelAddress - ACTPKernel contract address
160
+ * @returns EIP-712 signature (0x-prefixed, 130 chars)
161
+ */
105
162
  async signDeliveryProof(deliveryProof, kernelAddress) {
106
163
  const domain = {
107
164
  name: 'AGIRAILS',
@@ -120,12 +177,21 @@ class DeliveryProofBuilder {
120
177
  chainId: deliveryProof.chainId,
121
178
  nonce: deliveryProof.nonce
122
179
  };
180
+ // Sign using ethers v6 signTypedData API
181
+ // ethers v6 uses signTypedData() (without underscore)
123
182
  if ('signTypedData' in this.signer && typeof this.signer.signTypedData === 'function') {
124
183
  const signature = await this.signer.signTypedData(domain, eip712_1.AIP4DeliveryProofTypes, message);
125
184
  return signature;
126
185
  }
127
186
  throw new Error('Signer does not support EIP-712 typed data signing (ethers v6+)');
128
187
  }
188
+ /**
189
+ * Recover signer address from delivery proof signature
190
+ *
191
+ * @param deliveryProof - Delivery proof message
192
+ * @param kernelAddress - ACTPKernel contract address
193
+ * @returns Recovered Ethereum address
194
+ */
129
195
  async recoverDeliveryProofSigner(deliveryProof, kernelAddress) {
130
196
  const domain = {
131
197
  name: 'AGIRAILS',
@@ -144,14 +210,24 @@ class DeliveryProofBuilder {
144
210
  chainId: deliveryProof.chainId,
145
211
  nonce: deliveryProof.nonce
146
212
  };
213
+ // Recover address using ethers.js verifyTypedData
214
+ // Wrap in try-catch to handle low-level cryptographic errors gracefully
147
215
  try {
148
216
  const recoveredAddress = (0, ethers_1.verifyTypedData)(domain, eip712_1.AIP4DeliveryProofTypes, message, deliveryProof.signature);
149
217
  return recoveredAddress;
150
218
  }
151
219
  catch (error) {
220
+ // Wrap low-level cryptographic errors in meaningful error message
152
221
  throw new Error(`Invalid signature: ${error.message || 'signature verification failed'}`);
153
222
  }
154
223
  }
224
+ /**
225
+ * Extract Ethereum address from DID
226
+ * Supports: did:ethr:0x... and did:ethr:84532:0x...
227
+ *
228
+ * @param did - DID string
229
+ * @returns Ethereum address (0x-prefixed, checksummed)
230
+ */
155
231
  extractAddressFromDID(did) {
156
232
  const parts = did.replace('did:ethr:', '').split(':');
157
233
  const address = parts.length === 2 ? parts[1] : parts[0];
@@ -1 +1 @@
1
- {"version":3,"file":"DeliveryProofBuilder.js","sourceRoot":"","sources":["../../src/builders/DeliveryProofBuilder.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"DeliveryProofBuilder.js","sourceRoot":"","sources":["../../src/builders/DeliveryProofBuilder.ts"],"names":[],"mappings":"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"}