@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,227 @@
1
+ /**
2
+ * Mock State Type Definitions
3
+ *
4
+ * These interfaces define the structure of the persistent mock blockchain state
5
+ * stored in `.actp/mock-state.json`. This state is shared across CLI commands,
6
+ * SDK library usage, and Dashboard.
7
+ *
8
+ * @module runtime/types/MockState
9
+ * @see ADR-001 (Mock State Persistence Strategy)
10
+ * @see MOCK_STATE_MANAGER_SPEC.md
11
+ */
12
+
13
+ /**
14
+ * ACTP Transaction State enum matching the smart contract states.
15
+ *
16
+ * State machine:
17
+ * - INITIATED (0) -> QUOTED (1, optional) -> COMMITTED (2) -> IN_PROGRESS (3, optional)
18
+ * -> DELIVERED (4) -> SETTLED (5)
19
+ * - Dispute path: DELIVERED -> DISPUTED (6) -> SETTLED
20
+ * - Cancel path: Any pre-DELIVERED state -> CANCELLED (7)
21
+ */
22
+ export type TransactionState =
23
+ | 'INITIATED'
24
+ | 'QUOTED'
25
+ | 'COMMITTED'
26
+ | 'IN_PROGRESS'
27
+ | 'DELIVERED'
28
+ | 'SETTLED'
29
+ | 'DISPUTED'
30
+ | 'CANCELLED';
31
+
32
+ /**
33
+ * Numeric state values matching the smart contract enum.
34
+ */
35
+ export const TransactionStateValue: Record<TransactionState, number> = {
36
+ INITIATED: 0,
37
+ QUOTED: 1,
38
+ COMMITTED: 2,
39
+ IN_PROGRESS: 3,
40
+ DELIVERED: 4,
41
+ SETTLED: 5,
42
+ DISPUTED: 6,
43
+ CANCELLED: 7,
44
+ };
45
+
46
+ /**
47
+ * Mock blockchain event recorded during transaction lifecycle.
48
+ *
49
+ * Events are stored for debugging and can be queried to simulate
50
+ * blockchain event subscriptions.
51
+ */
52
+ export interface MockEvent {
53
+ /** Event type (e.g., 'TransactionCreated', 'EscrowLinked', 'StateTransitioned') */
54
+ type: string;
55
+
56
+ /** Unix timestamp (seconds) when event was emitted */
57
+ timestamp: number;
58
+
59
+ /** Block number when event was included */
60
+ blockNumber: number;
61
+
62
+ /** Event-specific data payload */
63
+ data: Record<string, unknown>;
64
+ }
65
+
66
+ /**
67
+ * Mock transaction representing an ACTP transaction in the mock blockchain.
68
+ *
69
+ * Mirrors the on-chain Transaction struct but stored as JSON for human-readability.
70
+ * BigNumber values are stored as strings to preserve precision.
71
+ */
72
+ export interface MockTransaction {
73
+ /** Unique transaction identifier (bytes32 hex string) */
74
+ id: string;
75
+
76
+ /** Requester's Ethereum address (checksummed) */
77
+ requester: string;
78
+
79
+ /** Provider's Ethereum address (checksummed) */
80
+ provider: string;
81
+
82
+ /** Transaction amount in USDC wei (string for BigNumber precision, 6 decimals) */
83
+ amount: string;
84
+
85
+ /** Current transaction state */
86
+ state: TransactionState;
87
+
88
+ /** Unix timestamp (seconds) when transaction was created */
89
+ createdAt: number;
90
+
91
+ /** Unix timestamp (seconds) when transaction was last updated */
92
+ updatedAt: number;
93
+
94
+ /** Unix timestamp (seconds) deadline for transaction acceptance */
95
+ deadline: number;
96
+
97
+ /** Dispute window duration in seconds */
98
+ disputeWindow: number;
99
+
100
+ /** Unix timestamp (seconds) when transaction was completed (null if not completed) */
101
+ completedAt: number | null;
102
+
103
+ /** Linked escrow ID (null if not linked yet) */
104
+ escrowId: string | null;
105
+
106
+ /** Service description or metadata hash */
107
+ serviceDescription: string;
108
+
109
+ /** Delivery proof hash (null if not delivered) */
110
+ deliveryProof: string | null;
111
+
112
+ /** List of events emitted during transaction lifecycle */
113
+ events: MockEvent[];
114
+ }
115
+
116
+ /**
117
+ * Mock escrow representing funds locked for a transaction.
118
+ *
119
+ * In mock mode, escrow is simulated without actual token transfers.
120
+ */
121
+ export interface MockEscrow {
122
+ /** Unique escrow identifier */
123
+ id: string;
124
+
125
+ /** Current escrow balance in USDC wei (string for BigNumber precision) */
126
+ balance: string;
127
+
128
+ /** Whether funds are currently locked (cannot be withdrawn) */
129
+ locked: boolean;
130
+
131
+ /** List of transaction IDs using this escrow */
132
+ transactions: string[];
133
+
134
+ /** Unix timestamp (seconds) when escrow was created */
135
+ createdAt: number;
136
+ }
137
+
138
+ /**
139
+ * Mock account representing a user's wallet state.
140
+ *
141
+ * Tracks USDC balance for testing without real tokens.
142
+ */
143
+ export interface MockAccount {
144
+ /** Ethereum address (checksummed) */
145
+ address: string;
146
+
147
+ /** USDC balance in wei (string for BigNumber precision, 6 decimals) */
148
+ usdcBalance: string;
149
+
150
+ /** Optional label for easier identification in tests */
151
+ label?: string;
152
+ }
153
+
154
+ /**
155
+ * Mock blockchain state simulating chain parameters.
156
+ *
157
+ * Allows time manipulation and block progression for testing
158
+ * deadline-based logic and dispute windows.
159
+ */
160
+ export interface MockBlockchain {
161
+ /** Current simulated Unix timestamp (seconds) */
162
+ currentTime: number;
163
+
164
+ /** Current block number */
165
+ blockNumber: number;
166
+
167
+ /** Chain ID (84532 for Base Sepolia, 8453 for Base Mainnet) */
168
+ chainId: number;
169
+
170
+ /** Average block time in seconds (for time progression calculations) */
171
+ blockTime: number;
172
+ }
173
+
174
+ /**
175
+ * Complete mock state persisted to `.actp/mock-state.json`.
176
+ *
177
+ * This is the root interface for all mock blockchain state.
178
+ * Loaded/saved by MockStateManager.
179
+ */
180
+ export interface MockState {
181
+ /** State schema version (e.g., "1.0") for migrations */
182
+ version: string;
183
+
184
+ /** Always "mock" for mock mode */
185
+ mode: 'mock';
186
+
187
+ /** Simulated blockchain parameters */
188
+ blockchain: MockBlockchain;
189
+
190
+ /** All mock transactions indexed by transaction ID */
191
+ transactions: Record<string, MockTransaction>;
192
+
193
+ /** All mock escrows indexed by escrow ID */
194
+ escrows: Record<string, MockEscrow>;
195
+
196
+ /** All mock accounts indexed by address */
197
+ accounts: Record<string, MockAccount>;
198
+
199
+ /**
200
+ * Global event log for all events (optional for backwards compatibility).
201
+ *
202
+ * SECURITY FIX (L-4): Events are now persisted to state file for
203
+ * debugging and audit purposes. This allows event history to survive
204
+ * across CLI invocations.
205
+ */
206
+ events?: MockEvent[];
207
+ }
208
+
209
+ /**
210
+ * Default values for creating new mock state.
211
+ */
212
+ export const MOCK_STATE_DEFAULTS = {
213
+ /** Current state schema version */
214
+ VERSION: '1.0',
215
+
216
+ /** Default chain ID (Base Sepolia testnet) */
217
+ CHAIN_ID: 84532,
218
+
219
+ /** Default starting block number */
220
+ INITIAL_BLOCK_NUMBER: 1000,
221
+
222
+ /** Default block time in seconds (Base L2 ~2 seconds) */
223
+ BLOCK_TIME: 2,
224
+
225
+ /** Default initial USDC balance for new accounts (10,000 USDC = 10_000_000_000 wei) */
226
+ DEFAULT_USDC_BALANCE: '10000000000',
227
+ } as const;
@@ -0,0 +1,79 @@
1
+ /**
2
+ * Agent Registry Types (AIP-7)
3
+ *
4
+ * Types for AI agent identity, registration, and reputation
5
+ */
6
+
7
+ /**
8
+ * Service descriptor metadata for an agent
9
+ */
10
+ export interface ServiceDescriptor {
11
+ /** keccak256(lowercase(serviceType)) */
12
+ serviceTypeHash: string;
13
+ /** Human-readable service type (lowercase, alphanumeric + hyphens) */
14
+ serviceType: string;
15
+ /** IPFS/HTTPS URL to JSON Schema for inputData */
16
+ schemaURI: string;
17
+ /** Minimum price in USDC base units (6 decimals) */
18
+ minPrice: bigint;
19
+ /** Maximum price in USDC base units */
20
+ maxPrice: bigint;
21
+ /** Average completion time in seconds */
22
+ avgCompletionTime: number;
23
+ /** IPFS CID to full service descriptor JSON */
24
+ metadataCID: string;
25
+ }
26
+
27
+ /**
28
+ * Agent profile stored on-chain
29
+ */
30
+ export interface AgentProfile {
31
+ /** Agent's Ethereum address (controller of DID) */
32
+ agentAddress: string;
33
+ /** Full DID (e.g., did:ethr:8453:0x...) */
34
+ did: string;
35
+ /** HTTPS endpoint or IPFS gateway URL */
36
+ endpoint: string;
37
+ /** Supported service type hashes */
38
+ serviceTypes: string[];
39
+ /** USDC staked (V1: always 0, V2: slashing for disputes) */
40
+ stakedAmount: bigint;
41
+ /** Aggregated reputation (scale: 0-10000, 2 decimals precision) */
42
+ reputationScore: number;
43
+ /** Count of completed SETTLED transactions */
44
+ totalTransactions: number;
45
+ /** Count of transactions that went to DISPUTED state */
46
+ disputedTransactions: number;
47
+ /** Cumulative transaction volume (6 decimals) */
48
+ totalVolumeUSDC: bigint;
49
+ /** Block timestamp of registration */
50
+ registeredAt: number;
51
+ /** Last profile update timestamp */
52
+ updatedAt: number;
53
+ /** Agent is accepting new requests */
54
+ isActive: boolean;
55
+ }
56
+
57
+ /**
58
+ * Parameters for registering a new agent
59
+ */
60
+ export interface RegisterAgentParams {
61
+ /** HTTPS endpoint or IPFS gateway URL */
62
+ endpoint: string;
63
+ /** List of services the agent provides */
64
+ serviceDescriptors: ServiceDescriptor[];
65
+ }
66
+
67
+ /**
68
+ * Query parameters for finding agents by service
69
+ */
70
+ export interface QueryAgentsParams {
71
+ /** Service type hash to search for */
72
+ serviceTypeHash: string;
73
+ /** Minimum reputation score (0-10000) */
74
+ minReputation?: number;
75
+ /** Skip first N results (for pagination) */
76
+ offset?: number;
77
+ /** Maximum number of results to return */
78
+ limit?: number;
79
+ }
@@ -0,0 +1,223 @@
1
+ /**
2
+ * DID (Decentralized Identity) Types - AIP-7 §2
3
+ *
4
+ * Implements W3C DID specification for Ethereum-based identities
5
+ * using the did:ethr method with ERC-1056 registry
6
+ */
7
+
8
+ /**
9
+ * DID format: did:ethr:<chainId>:<address>
10
+ * Example: did:ethr:84532:0x742d35cc6634c0532925a3b844bc9e7595f0beb
11
+ */
12
+ export type DID = string;
13
+
14
+ /**
15
+ * W3C DID Document structure
16
+ * @see https://www.w3.org/TR/did-core/
17
+ */
18
+ export interface DIDDocument {
19
+ '@context': string | string[];
20
+ id: DID;
21
+ verificationMethod?: VerificationMethod[];
22
+ authentication?: (string | VerificationMethod)[];
23
+ assertionMethod?: (string | VerificationMethod)[];
24
+ keyAgreement?: (string | VerificationMethod)[];
25
+ capabilityInvocation?: (string | VerificationMethod)[];
26
+ capabilityDelegation?: (string | VerificationMethod)[];
27
+ service?: ServiceEndpoint[];
28
+ }
29
+
30
+ /**
31
+ * Verification method for cryptographic key
32
+ */
33
+ export interface VerificationMethod {
34
+ id: string;
35
+ type: string;
36
+ controller: DID;
37
+ blockchainAccountId?: string; // CAIP-10 format: address@eip155:chainId
38
+ publicKeyHex?: string;
39
+ publicKeyBase58?: string;
40
+ publicKeyMultibase?: string;
41
+ ethereumAddress?: string;
42
+ validTo?: number | bigint; // Unix timestamp for delegate validity (ERC-1056)
43
+ }
44
+
45
+ /**
46
+ * Service endpoint in DID Document
47
+ */
48
+ export interface ServiceEndpoint {
49
+ id: string;
50
+ type: string;
51
+ serviceEndpoint: string | string[] | Record<string, unknown>;
52
+ description?: string;
53
+ }
54
+
55
+ /**
56
+ * DID Resolution result
57
+ */
58
+ export interface DIDResolutionResult {
59
+ didDocument: DIDDocument | null;
60
+ didResolutionMetadata: DIDResolutionMetadata;
61
+ didDocumentMetadata: DIDDocumentMetadata;
62
+ }
63
+
64
+ /**
65
+ * DID Resolution metadata
66
+ */
67
+ export interface DIDResolutionMetadata {
68
+ contentType?: string;
69
+ error?: 'invalidDid' | 'notFound' | 'representationNotSupported' | 'unsupportedDidMethod' | string;
70
+ message?: string;
71
+ }
72
+
73
+ /**
74
+ * DID Document metadata
75
+ */
76
+ export interface DIDDocumentMetadata {
77
+ created?: string;
78
+ updated?: string;
79
+ deactivated?: boolean;
80
+ versionId?: string;
81
+ nextUpdate?: string;
82
+ nextVersionId?: string;
83
+ }
84
+
85
+ /**
86
+ * Configuration for DID Resolver
87
+ */
88
+ export interface DIDResolverConfig {
89
+ /**
90
+ * Network to use (base-sepolia or base-mainnet)
91
+ */
92
+ network?: string;
93
+
94
+ /**
95
+ * Custom RPC URL (overrides network default)
96
+ */
97
+ rpcUrl?: string;
98
+
99
+ /**
100
+ * Custom Identity Registry address (overrides network default)
101
+ */
102
+ registryAddress?: string;
103
+
104
+ /**
105
+ * Chain ID (required if not using predefined network)
106
+ */
107
+ chainId?: number;
108
+ }
109
+
110
+ /**
111
+ * Parsed DID components
112
+ */
113
+ export interface ParsedDID {
114
+ method: string; // Always 'ethr' for AGIRAILS
115
+ chainId: number;
116
+ address: string; // Lowercase checksummed address
117
+ }
118
+
119
+ /**
120
+ * ERC-1056 Identity Changed Event
121
+ */
122
+ export interface DIDOwnerChangedEvent {
123
+ identity: string;
124
+ owner: string;
125
+ previousChange: bigint;
126
+ }
127
+
128
+ /**
129
+ * ERC-1056 Delegate Changed Event
130
+ */
131
+ export interface DIDDelegateChangedEvent {
132
+ identity: string;
133
+ delegateType: string; // bytes32 as hex string
134
+ delegate: string;
135
+ validTo: bigint;
136
+ previousChange: bigint;
137
+ }
138
+
139
+ /**
140
+ * ERC-1056 Attribute Changed Event
141
+ */
142
+ export interface DIDAttributeChangedEvent {
143
+ identity: string;
144
+ name: string; // bytes32 as hex string
145
+ value: Uint8Array;
146
+ validTo: bigint;
147
+ previousChange: bigint;
148
+ }
149
+
150
+ /**
151
+ * Delegate types for ERC-1056
152
+ */
153
+ export enum DelegateType {
154
+ /** Can sign on behalf of identity */
155
+ SIGNING = 'veriKey',
156
+
157
+ /** Can encrypt messages for identity */
158
+ ENCRYPTION = 'encryptionKey',
159
+
160
+ /** Can perform general actions */
161
+ GENERAL = 'delegate',
162
+
163
+ /** Custom delegate type */
164
+ CUSTOM = 'custom'
165
+ }
166
+
167
+ /**
168
+ * Attribute names for ERC-1056
169
+ */
170
+ export enum AttributeName {
171
+ /** Service endpoint (e.g., AGIRAILS API endpoint) */
172
+ SERVICE_ENDPOINT = 'did/svc/AGIRAILSProvider',
173
+
174
+ /** Public key for verification */
175
+ PUBLIC_KEY = 'did/pub/Secp256k1/veriKey',
176
+
177
+ /** Encryption public key */
178
+ ENCRYPTION_KEY = 'did/pub/X25519/enc',
179
+
180
+ /** Custom attribute */
181
+ CUSTOM = 'custom'
182
+ }
183
+
184
+ /**
185
+ * Options for DID signature verification
186
+ */
187
+ export interface VerifySignatureOptions {
188
+ /** Chain ID to verify against (prevents cross-chain replay) */
189
+ chainId: number;
190
+
191
+ /** Expected DID (optional additional check) */
192
+ expectedDID?: DID;
193
+
194
+ /** Timestamp for delegate validity check */
195
+ timestamp?: number;
196
+
197
+ /**
198
+ * Use domain separation to prevent cross-protocol replay attacks
199
+ * Default: true (recommended for security)
200
+ * Set to false only for backwards compatibility with old signatures
201
+ */
202
+ useDomainSeparation?: boolean;
203
+ }
204
+
205
+ /**
206
+ * Result of signature verification
207
+ */
208
+ export interface SignatureVerificationResult {
209
+ /** Whether signature is valid */
210
+ valid: boolean;
211
+
212
+ /** Recovered signer address */
213
+ signer?: string;
214
+
215
+ /** Error message if verification failed */
216
+ error?: string;
217
+
218
+ /** Whether signer is a delegate (not the owner) */
219
+ isDelegate?: boolean;
220
+
221
+ /** Delegate type if signer is a delegate */
222
+ delegateType?: string;
223
+ }
@@ -2,25 +2,26 @@
2
2
  * Escrow creation parameters
3
3
  */
4
4
  export interface CreateEscrowParams {
5
- kernelAddress: string;
6
- txId: string;
7
- token: string;
5
+ /** Escrow identifier (bytes32). In ACTP standard this is typically the txId. */
6
+ escrowId: string;
7
+ /** Consumer/requester who funds the escrow */
8
+ requester: string;
9
+ /** Provider who receives payout on settlement */
10
+ provider: string;
11
+ /** Amount locked in escrow (USDC wei, 6 decimals) */
8
12
  amount: bigint;
9
- beneficiary: string;
10
13
  }
11
14
 
12
15
  /**
13
- * Escrow state
16
+ * Escrow state (matches on-chain EscrowVault.EscrowData struct)
14
17
  */
15
18
  export interface Escrow {
16
19
  escrowId: string;
17
- kernel: string;
18
- txId: string;
19
- token: string;
20
+ requester: string;
21
+ provider: string;
20
22
  amount: bigint;
21
- beneficiary: string;
22
- createdAt: number;
23
- released: boolean;
23
+ releasedAmount: bigint;
24
+ active: boolean;
24
25
  }
25
26
 
26
27
 
@@ -7,4 +7,8 @@ export * from './transaction';
7
7
  export * from './escrow';
8
8
  export * from './message';
9
9
  export * from './eip712';
10
-
10
+ export * from './agent';
11
+ export * from './did';
12
+ // Note: storage and archive types are not yet implemented in this version
13
+ // export * from './storage';
14
+ // export * from './archive';
@@ -17,14 +17,23 @@ export enum State {
17
17
  export class StateMachine {
18
18
  /**
19
19
  * Valid state transitions per Yellow Paper §3.2.2
20
+ *
21
+ * SECURITY FIX (CRITICAL-1): State machine must match ACTPKernel contract exactly
22
+ * Per CLAUDE.md §Architecture Overview - ACTP Protocol State Machine:
23
+ * - COMMITTED can transition to IN_PROGRESS, DELIVERED, or CANCELLED
24
+ * - IN_PROGRESS can transition to DELIVERED or CANCELLED (not DISPUTED)
25
+ * - DISPUTED can only transition to SETTLED (not CANCELLED)
20
26
  */
21
27
  private static readonly TRANSITIONS: Record<State, State[]> = {
22
28
  [State.INITIATED]: [State.QUOTED, State.COMMITTED, State.CANCELLED], // Allow direct INITIATED → COMMITTED (AIP-3)
23
29
  [State.QUOTED]: [State.COMMITTED, State.CANCELLED],
24
- [State.COMMITTED]: [State.IN_PROGRESS, State.CANCELLED],
25
- [State.IN_PROGRESS]: [State.DELIVERED, State.DISPUTED],
30
+ // SECURITY FIX (CRITICAL-1): Add DELIVERED (can skip IN_PROGRESS)
31
+ [State.COMMITTED]: [State.IN_PROGRESS, State.DELIVERED, State.CANCELLED],
32
+ // SECURITY FIX (CRITICAL-1): Remove DISPUTED, add CANCELLED
33
+ [State.IN_PROGRESS]: [State.DELIVERED, State.CANCELLED],
26
34
  [State.DELIVERED]: [State.SETTLED, State.DISPUTED],
27
- [State.DISPUTED]: [State.SETTLED, State.CANCELLED],
35
+ // SECURITY FIX (CRITICAL-1): Remove CANCELLED (disputes resolve to SETTLED only)
36
+ [State.DISPUTED]: [State.SETTLED],
28
37
  [State.SETTLED]: [], // Terminal state
29
38
  [State.CANCELLED]: [] // Terminal state
30
39
  };
@@ -11,11 +11,15 @@ export interface Transaction {
11
11
  amount: bigint;
12
12
  state: State;
13
13
  createdAt: number;
14
+ updatedAt: number;
14
15
  deadline: number;
15
16
  disputeWindow: number;
16
17
  escrowContract: string;
17
18
  escrowId: string;
19
+ serviceHash: string;
20
+ attestationUID: string;
18
21
  metadata: string;
22
+ platformFeeBpsLocked: number;
19
23
  }
20
24
 
21
25
  /**
@@ -51,4 +55,3 @@ export interface EconomicParams {
51
55
  providerPenaltyBps: number;
52
56
  }
53
57
 
54
-