@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,445 @@
1
+ /**
2
+ * MockRuntime - Core mock blockchain engine for ACTP protocol testing
3
+ *
4
+ * Provides a complete mock blockchain environment for testing ACTP transactions
5
+ * without real blockchain interactions. Implements the 8-state ACTP transaction
6
+ * lifecycle with strict state machine validation.
7
+ *
8
+ * Features:
9
+ * - 8-state transaction lifecycle (INITIATED -> QUOTED -> COMMITTED -> IN_PROGRESS -> DELIVERED -> SETTLED)
10
+ * - Time manipulation (advanceTime, setTime, advanceBlocks)
11
+ * - Balance management (mint, transfer)
12
+ * - Event recording and querying
13
+ * - Escrow operations (link, release, balance tracking)
14
+ *
15
+ * @module runtime/MockRuntime
16
+ * @see ADR-004 (Mock Blockchain Emulation Scope)
17
+ * @see MOCK_MODE_SPECIFICATION.md
18
+ */
19
+ import { MockStateManager } from './MockStateManager';
20
+ import { MockState, MockTransaction, MockEvent, TransactionState } from './types/MockState';
21
+ import { IACTPRuntime, CreateTransactionParams } from './IACTPRuntime';
22
+ /**
23
+ * Error thrown when a transaction is not found.
24
+ */
25
+ export declare class TransactionNotFoundError extends Error {
26
+ readonly txId: string;
27
+ constructor(txId: string);
28
+ }
29
+ /**
30
+ * Error thrown when an invalid state transition is attempted.
31
+ */
32
+ export declare class InvalidStateTransitionError extends Error {
33
+ readonly txId: string;
34
+ readonly currentState: TransactionState;
35
+ readonly targetState: TransactionState;
36
+ constructor(txId: string, currentState: TransactionState, targetState: TransactionState);
37
+ }
38
+ /**
39
+ * Error thrown when there are insufficient funds for an operation.
40
+ */
41
+ export declare class InsufficientBalanceError extends Error {
42
+ readonly address: string;
43
+ readonly required: string;
44
+ readonly available: string;
45
+ constructor(address: string, required: string, available: string);
46
+ }
47
+ /**
48
+ * Error thrown when an escrow is not found.
49
+ */
50
+ export declare class EscrowNotFoundError extends Error {
51
+ readonly escrowId: string;
52
+ constructor(escrowId: string);
53
+ }
54
+ /**
55
+ * Error thrown when the deadline has passed.
56
+ */
57
+ export declare class DeadlinePassedError extends Error {
58
+ readonly txId: string;
59
+ readonly deadline: number;
60
+ readonly currentTime: number;
61
+ constructor(txId: string, deadline: number, currentTime: number);
62
+ }
63
+ /**
64
+ * Error thrown when the contract is paused.
65
+ */
66
+ export declare class ContractPausedError extends Error {
67
+ constructor();
68
+ }
69
+ /**
70
+ * Error thrown when an invalid amount is provided.
71
+ *
72
+ * Thrown when zero or negative amounts are passed to transaction
73
+ * or escrow operations.
74
+ *
75
+ * @example
76
+ * ```typescript
77
+ * // This will throw InvalidAmountError
78
+ * await runtime.createTransaction({
79
+ * provider: '0x...',
80
+ * requester: '0x...',
81
+ * amount: '0', // Invalid - must be positive
82
+ * deadline: Date.now() + 86400
83
+ * });
84
+ * ```
85
+ */
86
+ export declare class InvalidAmountError extends Error {
87
+ readonly amount: string;
88
+ readonly reason: string;
89
+ constructor(amount: string, reason: string);
90
+ }
91
+ /**
92
+ * Error thrown when dispute window is still active.
93
+ *
94
+ * Thrown when attempting to release escrow funds before the dispute
95
+ * window has expired. Use `runtime.time.advanceTime()` in tests to
96
+ * simulate waiting for the window to close.
97
+ *
98
+ * @example
99
+ * ```typescript
100
+ * // Transaction delivered, but dispute window still active
101
+ * await runtime.releaseEscrow(escrowId);
102
+ * // Throws: DisputeWindowActiveError
103
+ *
104
+ * // Solution: advance time past the dispute window
105
+ * runtime.time.advanceTime(tx.disputeWindow + 1);
106
+ * await runtime.releaseEscrow(escrowId); // Now works
107
+ * ```
108
+ */
109
+ export declare class DisputeWindowActiveError extends Error {
110
+ readonly txId: string;
111
+ readonly windowEnd: number;
112
+ readonly currentTime: number;
113
+ constructor(txId: string, windowEnd: number, currentTime: number);
114
+ }
115
+ /**
116
+ * MockRuntime - Core mock blockchain engine for ACTP protocol testing.
117
+ *
118
+ * Implements the IACTPRuntime interface for mock/testing mode.
119
+ * Provides a complete mock blockchain environment with:
120
+ * - Transaction state machine (8 states)
121
+ * - Time manipulation
122
+ * - Balance management
123
+ * - Event recording
124
+ *
125
+ * @example
126
+ * ```typescript
127
+ * const runtime = new MockRuntime();
128
+ *
129
+ * // Mint initial funds
130
+ * await runtime.mintTokens('0xRequester', '10000000000'); // 10,000 USDC
131
+ *
132
+ * // Create transaction
133
+ * const txId = await runtime.createTransaction({
134
+ * provider: '0xProvider',
135
+ * requester: '0xRequester',
136
+ * amount: '1000000', // 1 USDC
137
+ * deadline: runtime.time.now() + 86400,
138
+ * });
139
+ *
140
+ * // Advance time and process
141
+ * runtime.time.advanceTime(3600);
142
+ * ```
143
+ */
144
+ export declare class MockRuntime implements IACTPRuntime {
145
+ private stateManager;
146
+ /**
147
+ * In-memory event log, also persisted to state file.
148
+ *
149
+ * SECURITY FIX (L-4): Events are now persisted to the state file
150
+ * so they survive across CLI invocations.
151
+ */
152
+ private eventLog;
153
+ /**
154
+ * Time management interface.
155
+ *
156
+ * SECURITY NOTE: All time-modifying operations are async and use
157
+ * file locking to prevent race conditions.
158
+ */
159
+ readonly time: {
160
+ /** Get current mock timestamp (seconds) */
161
+ now: () => number;
162
+ /** Advance time by specified seconds (async for locking) */
163
+ advanceTime: (seconds: number) => Promise<void>;
164
+ /** Advance time by specified blocks (block time * blocks) (async for locking) */
165
+ advanceBlocks: (blocks: number) => Promise<void>;
166
+ /** Set exact timestamp (must be >= current time) (async for locking) */
167
+ setTime: (timestamp: number) => Promise<void>;
168
+ };
169
+ /**
170
+ * Event access interface.
171
+ */
172
+ readonly events: {
173
+ /** Get all recorded events */
174
+ getAll: () => MockEvent[];
175
+ /** Get events filtered by type */
176
+ getByType: (type: string) => MockEvent[];
177
+ /** Get events for a specific transaction */
178
+ getByTransaction: (txId: string) => MockEvent[];
179
+ /** Clear all events */
180
+ clear: () => void;
181
+ };
182
+ /**
183
+ * Creates a new MockRuntime instance.
184
+ *
185
+ * @param stateManager - Optional custom state manager (default: creates new one)
186
+ */
187
+ constructor(stateManager?: MockStateManager);
188
+ /**
189
+ * Load events from persisted state file.
190
+ *
191
+ * SECURITY FIX (L-4): Events survive across CLI invocations.
192
+ */
193
+ private loadPersistedEvents;
194
+ /**
195
+ * Clear persisted events from state file.
196
+ */
197
+ private clearPersistedEvents;
198
+ /**
199
+ * Persist an event to both in-memory log and state file.
200
+ *
201
+ * SECURITY FIX (L-4): Events are persisted for audit trail.
202
+ *
203
+ * @param event - Event to persist
204
+ * @param state - Current state (to avoid re-loading)
205
+ */
206
+ private persistEvent;
207
+ /**
208
+ * Creates a new transaction.
209
+ *
210
+ * @param params - Transaction creation parameters
211
+ * @returns Promise resolving to the transaction ID (bytes32 hex string)
212
+ *
213
+ * @throws {DeadlinePassedError} If deadline is in the past
214
+ *
215
+ * @example
216
+ * ```typescript
217
+ * const txId = await runtime.createTransaction({
218
+ * provider: '0xProvider',
219
+ * requester: '0xRequester',
220
+ * amount: '1000000', // 1 USDC
221
+ * deadline: runtime.time.now() + 86400,
222
+ * });
223
+ * ```
224
+ */
225
+ createTransaction(params: CreateTransactionParams): Promise<string>;
226
+ /**
227
+ * Gets a transaction by ID.
228
+ *
229
+ * @param txId - Transaction ID
230
+ * @returns Promise resolving to the transaction or null if not found
231
+ */
232
+ getTransaction(txId: string): Promise<MockTransaction | null>;
233
+ /**
234
+ * Gets all transactions.
235
+ *
236
+ * @returns Promise resolving to array of all transactions
237
+ */
238
+ getAllTransactions(): Promise<MockTransaction[]>;
239
+ /**
240
+ * Gets transactions filtered by provider address and optionally state.
241
+ *
242
+ * SECURITY FIX (H-1): Filtered query to prevent DoS via memory exhaustion.
243
+ * Instead of loading all transactions and filtering client-side, we filter
244
+ * server-side and limit the result set.
245
+ *
246
+ * @param provider - Provider address to filter by
247
+ * @param state - Optional state filter (e.g., 'INITIATED', 'DELIVERED')
248
+ * @param limit - Maximum number of transactions to return (default 100)
249
+ * @returns Promise resolving to filtered transactions
250
+ *
251
+ * @example
252
+ * ```typescript
253
+ * // Get up to 100 INITIATED transactions for this provider
254
+ * const pending = await runtime.getTransactionsByProvider(
255
+ * providerAddress,
256
+ * 'INITIATED',
257
+ * 100
258
+ * );
259
+ * ```
260
+ */
261
+ getTransactionsByProvider(provider: string, state?: TransactionState, limit?: number): Promise<MockTransaction[]>;
262
+ /**
263
+ * Transitions a transaction to a new state.
264
+ *
265
+ * Validates the transition against the ACTP 8-state machine:
266
+ * - INITIATED -> QUOTED, COMMITTED, CANCELLED
267
+ * - QUOTED -> COMMITTED, CANCELLED
268
+ * - COMMITTED -> IN_PROGRESS, DELIVERED, CANCELLED
269
+ * - IN_PROGRESS -> DELIVERED, CANCELLED
270
+ * - DELIVERED -> SETTLED, DISPUTED
271
+ * - DISPUTED -> SETTLED
272
+ *
273
+ * @param txId - Transaction ID
274
+ * @param newState - Target state
275
+ *
276
+ * @throws {TransactionNotFoundError} If transaction doesn't exist
277
+ * @throws {InvalidStateTransitionError} If transition is not valid
278
+ * @throws {DeadlinePassedError} If deadline passed (for CANCELLED transition)
279
+ *
280
+ * @example
281
+ * ```typescript
282
+ * // Transition to DELIVERED state
283
+ * await runtime.transitionState(txId, 'DELIVERED');
284
+ *
285
+ * // With delivery proof
286
+ * await runtime.transitionState(txId, 'DELIVERED', deliveryProofBytes);
287
+ * ```
288
+ */
289
+ transitionState(txId: string, newState: TransactionState, proof?: string): Promise<void>;
290
+ /**
291
+ * Links an escrow to a transaction and locks funds.
292
+ *
293
+ * Automatically transitions INITIATED or QUOTED -> COMMITTED (per ACTP spec).
294
+ * Deducts funds from requester and adds to escrow balance.
295
+ *
296
+ * @param txId - Transaction ID
297
+ * @param amount - Amount to lock (must match transaction amount)
298
+ * @returns Promise resolving to the escrow ID
299
+ *
300
+ * @throws {TransactionNotFoundError} If transaction doesn't exist
301
+ * @throws {InvalidStateTransitionError} If not in INITIATED or QUOTED state
302
+ * @throws {InsufficientBalanceError} If requester has insufficient funds
303
+ *
304
+ * @example
305
+ * ```typescript
306
+ * // Ensure requester has funds
307
+ * await runtime.mintTokens(requester, '10000000');
308
+ *
309
+ * // Link escrow
310
+ * const escrowId = await runtime.linkEscrow(txId, '1000000');
311
+ * ```
312
+ */
313
+ linkEscrow(txId: string, amount: string): Promise<string>;
314
+ /**
315
+ * Releases escrow funds to the provider and settles the transaction.
316
+ *
317
+ * Can only be called when transaction is in DELIVERED state.
318
+ *
319
+ * @param escrowId - Escrow ID
320
+ *
321
+ * @throws {EscrowNotFoundError} If escrow doesn't exist
322
+ * @throws {TransactionNotFoundError} If linked transaction doesn't exist
323
+ * @throws {InvalidStateTransitionError} If transaction not in DELIVERED state
324
+ *
325
+ * @example
326
+ * ```typescript
327
+ * // After delivery is confirmed
328
+ * await runtime.releaseEscrow(escrowId);
329
+ *
330
+ * // Provider now has funds
331
+ * const balance = await runtime.getBalance(provider);
332
+ * ```
333
+ */
334
+ releaseEscrow(escrowId: string, _attestationUID?: string): Promise<void>;
335
+ /**
336
+ * Gets the balance of an escrow.
337
+ *
338
+ * @param escrowId - Escrow ID
339
+ * @returns Promise resolving to the balance as string
340
+ *
341
+ * @throws {EscrowNotFoundError} If escrow doesn't exist
342
+ */
343
+ getEscrowBalance(escrowId: string): Promise<string>;
344
+ /**
345
+ * Gets the USDC balance of an address.
346
+ *
347
+ * @param address - Ethereum address
348
+ * @returns Promise resolving to the balance as string (0 if account doesn't exist)
349
+ */
350
+ getBalance(address: string): Promise<string>;
351
+ /**
352
+ * Mints USDC tokens to an address (testing only).
353
+ *
354
+ * @param address - Ethereum address to receive tokens
355
+ * @param amount - Amount to mint in USDC wei
356
+ *
357
+ * @example
358
+ * ```typescript
359
+ * // Mint 10,000 USDC (6 decimals)
360
+ * await runtime.mintTokens('0xRequester', '10000000000');
361
+ * ```
362
+ */
363
+ mintTokens(address: string, amount: string): Promise<void>;
364
+ /**
365
+ * Transfers USDC tokens between addresses.
366
+ *
367
+ * @param from - Sender address
368
+ * @param to - Recipient address
369
+ * @param amount - Amount to transfer in USDC wei
370
+ *
371
+ * @throws {InsufficientBalanceError} If sender has insufficient funds
372
+ *
373
+ * @example
374
+ * ```typescript
375
+ * await runtime.transfer('0xFrom', '0xTo', '1000000');
376
+ * ```
377
+ */
378
+ transfer(from: string, to: string, amount: string): Promise<void>;
379
+ /**
380
+ * Resets the runtime to initial state.
381
+ *
382
+ * Clears all transactions, escrows, accounts, and events.
383
+ */
384
+ reset(): Promise<void>;
385
+ /**
386
+ * Gets the complete mock state.
387
+ *
388
+ * @returns Current mock state snapshot
389
+ */
390
+ getState(): MockState;
391
+ /**
392
+ * Gets the current mock timestamp.
393
+ */
394
+ private getCurrentTime;
395
+ /**
396
+ * Advances time by specified seconds (with file locking).
397
+ *
398
+ * SECURITY FIX: Uses withLock to prevent race conditions when
399
+ * multiple processes access the state file concurrently.
400
+ */
401
+ private advanceTimeWithLock;
402
+ /**
403
+ * Advances time by specified blocks (with file locking).
404
+ *
405
+ * SECURITY FIX: Uses withLock to prevent race conditions.
406
+ */
407
+ private advanceBlocksWithLock;
408
+ /**
409
+ * Sets exact timestamp (must be >= current time) (with file locking).
410
+ *
411
+ * SECURITY FIX: Uses withLock to prevent race conditions.
412
+ */
413
+ private setTimeWithLock;
414
+ /**
415
+ * Gets events for a specific transaction from both global log and transaction events.
416
+ */
417
+ private getEventsByTransaction;
418
+ /**
419
+ * Generates a unique transaction ID (bytes32 hex string).
420
+ *
421
+ * SECURITY FIX (M-4): Now checks for collisions against existing transactions.
422
+ * Uses cryptographically secure random bytes (32 bytes = 256 bits of entropy).
423
+ *
424
+ * @param state - Current mock state to check for collisions
425
+ * @returns Unique transaction ID
426
+ */
427
+ private generateTransactionIdWithCollisionCheck;
428
+ /**
429
+ * Generates a unique transaction ID (bytes32 hex string).
430
+ *
431
+ * Note: This version is used when state is not available.
432
+ * Prefer generateTransactionIdWithCollisionCheck when possible.
433
+ */
434
+ private generateTransactionId;
435
+ /**
436
+ * Generates a unique escrow ID with improved randomness.
437
+ *
438
+ * SECURITY FIX (L-5): Uses 16 bytes (128 bits) of cryptographic randomness
439
+ * instead of just 4 bytes. Removes timestamp to prevent predictability.
440
+ *
441
+ * @returns Unique escrow ID
442
+ */
443
+ private generateEscrowId;
444
+ }
445
+ //# sourceMappingURL=MockRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MockRuntime.d.ts","sourceRoot":"","sources":["../../src/runtime/MockRuntime.ts"],"names":[],"mappings":"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"}