@agirails/sdk 2.0.0 → 2.0.1-beta

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/README.md +108 -116
  2. package/dist/ACTPClient.d.ts +33 -456
  3. package/dist/ACTPClient.d.ts.map +1 -1
  4. package/dist/ACTPClient.js +93 -477
  5. package/dist/ACTPClient.js.map +1 -1
  6. package/dist/abi/EscrowVault.json +38 -106
  7. package/dist/builders/DeliveryProofBuilder.d.ts +1 -60
  8. package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
  9. package/dist/builders/DeliveryProofBuilder.js +5 -81
  10. package/dist/builders/DeliveryProofBuilder.js.map +1 -1
  11. package/dist/builders/QuoteBuilder.d.ts +0 -101
  12. package/dist/builders/QuoteBuilder.d.ts.map +1 -1
  13. package/dist/builders/QuoteBuilder.js +3 -120
  14. package/dist/builders/QuoteBuilder.js.map +1 -1
  15. package/dist/builders/index.d.ts +0 -4
  16. package/dist/builders/index.d.ts.map +1 -1
  17. package/dist/builders/index.js +0 -4
  18. package/dist/builders/index.js.map +1 -1
  19. package/dist/config/networks.d.ts +0 -28
  20. package/dist/config/networks.d.ts.map +1 -1
  21. package/dist/config/networks.js +12 -60
  22. package/dist/config/networks.js.map +1 -1
  23. package/dist/errors/index.d.ts +2 -165
  24. package/dist/errors/index.d.ts.map +1 -1
  25. package/dist/errors/index.js +2 -260
  26. package/dist/errors/index.js.map +1 -1
  27. package/dist/index.d.ts +13 -61
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +36 -141
  30. package/dist/index.js.map +1 -1
  31. package/dist/protocol/ACTPKernel.d.ts +2 -229
  32. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  33. package/dist/protocol/ACTPKernel.js +33 -367
  34. package/dist/protocol/ACTPKernel.js.map +1 -1
  35. package/dist/protocol/EASHelper.d.ts +2 -57
  36. package/dist/protocol/EASHelper.d.ts.map +1 -1
  37. package/dist/protocol/EASHelper.js +37 -230
  38. package/dist/protocol/EASHelper.js.map +1 -1
  39. package/dist/protocol/EscrowVault.d.ts +2 -93
  40. package/dist/protocol/EscrowVault.d.ts.map +1 -1
  41. package/dist/protocol/EscrowVault.js +33 -122
  42. package/dist/protocol/EscrowVault.js.map +1 -1
  43. package/dist/protocol/EventMonitor.d.ts +1 -45
  44. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  45. package/dist/protocol/EventMonitor.js +8 -64
  46. package/dist/protocol/EventMonitor.js.map +1 -1
  47. package/dist/protocol/MessageSigner.d.ts +2 -116
  48. package/dist/protocol/MessageSigner.d.ts.map +1 -1
  49. package/dist/protocol/MessageSigner.js +9 -215
  50. package/dist/protocol/MessageSigner.js.map +1 -1
  51. package/dist/protocol/ProofGenerator.d.ts +0 -93
  52. package/dist/protocol/ProofGenerator.d.ts.map +1 -1
  53. package/dist/protocol/ProofGenerator.js +9 -194
  54. package/dist/protocol/ProofGenerator.js.map +1 -1
  55. package/dist/protocol/QuoteBuilder.d.ts +0 -8
  56. package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
  57. package/dist/protocol/QuoteBuilder.js +0 -8
  58. package/dist/protocol/QuoteBuilder.js.map +1 -1
  59. package/dist/types/eip712.d.ts +0 -34
  60. package/dist/types/eip712.d.ts.map +1 -1
  61. package/dist/types/eip712.js +5 -31
  62. package/dist/types/eip712.js.map +1 -1
  63. package/dist/types/escrow.d.ts +10 -17
  64. package/dist/types/escrow.d.ts.map +1 -1
  65. package/dist/types/index.d.ts +0 -5
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/index.js +0 -8
  68. package/dist/types/index.js.map +1 -1
  69. package/dist/types/message.d.ts +0 -32
  70. package/dist/types/message.d.ts.map +1 -1
  71. package/dist/types/message.js +0 -4
  72. package/dist/types/message.js.map +1 -1
  73. package/dist/types/state.d.ts +0 -28
  74. package/dist/types/state.d.ts.map +1 -1
  75. package/dist/types/state.js +6 -37
  76. package/dist/types/state.js.map +1 -1
  77. package/dist/types/transaction.d.ts +0 -17
  78. package/dist/types/transaction.d.ts.map +1 -1
  79. package/dist/utils/IPFSClient.d.ts +0 -113
  80. package/dist/utils/IPFSClient.d.ts.map +1 -1
  81. package/dist/utils/IPFSClient.js +7 -128
  82. package/dist/utils/IPFSClient.js.map +1 -1
  83. package/dist/utils/NonceManager.d.ts +1 -234
  84. package/dist/utils/NonceManager.d.ts.map +1 -1
  85. package/dist/utils/NonceManager.js +7 -372
  86. package/dist/utils/NonceManager.js.map +1 -1
  87. package/dist/utils/ReceivedNonceTracker.d.ts +0 -175
  88. package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
  89. package/dist/utils/ReceivedNonceTracker.js +5 -261
  90. package/dist/utils/ReceivedNonceTracker.js.map +1 -1
  91. package/dist/utils/canonicalJson.d.ts +0 -22
  92. package/dist/utils/canonicalJson.d.ts.map +1 -1
  93. package/dist/utils/canonicalJson.js +3 -26
  94. package/dist/utils/canonicalJson.js.map +1 -1
  95. package/dist/utils/computeTypeHash.d.ts +0 -14
  96. package/dist/utils/computeTypeHash.d.ts.map +1 -1
  97. package/dist/utils/computeTypeHash.js +2 -19
  98. package/dist/utils/computeTypeHash.js.map +1 -1
  99. package/dist/utils/validation.d.ts +0 -40
  100. package/dist/utils/validation.d.ts.map +1 -1
  101. package/dist/utils/validation.js +7 -184
  102. package/dist/utils/validation.js.map +1 -1
  103. package/package.json +37 -54
  104. package/src/ACTPClient.ts +178 -692
  105. package/src/__tests__/ProofGenerator.test.ts +124 -0
  106. package/src/__tests__/QuoteBuilder.test.ts +516 -0
  107. package/src/__tests__/StateMachine.test.ts +82 -0
  108. package/src/__tests__/builders/DeliveryProofBuilder.test.ts +581 -0
  109. package/src/__tests__/integration/ACTPClient.test.ts +263 -0
  110. package/src/__tests__/integration.test.ts +289 -0
  111. package/src/__tests__/protocol/EASHelper.test.ts +472 -0
  112. package/src/__tests__/protocol/EventMonitor.test.ts +382 -0
  113. package/src/__tests__/security/ACTPKernel.security.test.ts +1167 -0
  114. package/src/__tests__/security/EscrowVault.security.test.ts +570 -0
  115. package/src/__tests__/security/MessageSigner.security.test.ts +286 -0
  116. package/src/__tests__/security/NonceReplay.security.test.ts +501 -0
  117. package/src/__tests__/security/validation.security.test.ts +376 -0
  118. package/src/__tests__/utils/IPFSClient.test.ts +262 -0
  119. package/src/__tests__/utils/NonceManager.test.ts +205 -0
  120. package/src/__tests__/utils/canonicalJson.test.ts +153 -0
  121. package/src/abi/EscrowVault.json +38 -106
  122. package/src/builders/DeliveryProofBuilder.ts +2 -3
  123. package/src/config/networks.ts +9 -32
  124. package/src/errors/index.ts +1 -298
  125. package/src/index.ts +71 -207
  126. package/src/protocol/ACTPKernel.ts +23 -175
  127. package/src/protocol/EASHelper.ts +46 -230
  128. package/src/protocol/EscrowVault.ts +50 -68
  129. package/src/protocol/EventMonitor.ts +15 -44
  130. package/src/protocol/MessageSigner.ts +13 -193
  131. package/src/protocol/ProofGenerator.ts +4 -223
  132. package/src/types/escrow.ts +11 -12
  133. package/src/types/index.ts +1 -5
  134. package/src/types/state.ts +3 -12
  135. package/src/types/transaction.ts +1 -4
  136. package/src/utils/IPFSClient.ts +5 -122
  137. package/src/utils/NonceManager.ts +8 -305
  138. package/src/utils/ReceivedNonceTracker.ts +0 -170
  139. package/src/utils/validation.ts +0 -164
  140. package/LICENSE +0 -190
  141. package/bin/actp +0 -10
  142. package/dist/abi/AgentRegistry.json +0 -782
  143. package/dist/abi/IdentityRegistry.json +0 -316
  144. package/dist/adapters/BaseAdapter.d.ts +0 -231
  145. package/dist/adapters/BaseAdapter.d.ts.map +0 -1
  146. package/dist/adapters/BaseAdapter.js +0 -393
  147. package/dist/adapters/BaseAdapter.js.map +0 -1
  148. package/dist/adapters/BeginnerAdapter.d.ts +0 -152
  149. package/dist/adapters/BeginnerAdapter.d.ts.map +0 -1
  150. package/dist/adapters/BeginnerAdapter.js +0 -168
  151. package/dist/adapters/BeginnerAdapter.js.map +0 -1
  152. package/dist/adapters/IntermediateAdapter.d.ts +0 -211
  153. package/dist/adapters/IntermediateAdapter.d.ts.map +0 -1
  154. package/dist/adapters/IntermediateAdapter.js +0 -260
  155. package/dist/adapters/IntermediateAdapter.js.map +0 -1
  156. package/dist/adapters/index.d.ts +0 -15
  157. package/dist/adapters/index.d.ts.map +0 -1
  158. package/dist/adapters/index.js +0 -26
  159. package/dist/adapters/index.js.map +0 -1
  160. package/dist/cli/commands/balance.d.ts +0 -13
  161. package/dist/cli/commands/balance.d.ts.map +0 -1
  162. package/dist/cli/commands/balance.js +0 -89
  163. package/dist/cli/commands/balance.js.map +0 -1
  164. package/dist/cli/commands/batch.d.ts +0 -24
  165. package/dist/cli/commands/batch.d.ts.map +0 -1
  166. package/dist/cli/commands/batch.js +0 -424
  167. package/dist/cli/commands/batch.js.map +0 -1
  168. package/dist/cli/commands/config.d.ts +0 -13
  169. package/dist/cli/commands/config.d.ts.map +0 -1
  170. package/dist/cli/commands/config.js +0 -192
  171. package/dist/cli/commands/config.js.map +0 -1
  172. package/dist/cli/commands/init.d.ts +0 -19
  173. package/dist/cli/commands/init.d.ts.map +0 -1
  174. package/dist/cli/commands/init.js +0 -143
  175. package/dist/cli/commands/init.js.map +0 -1
  176. package/dist/cli/commands/mint.d.ts +0 -13
  177. package/dist/cli/commands/mint.d.ts.map +0 -1
  178. package/dist/cli/commands/mint.js +0 -91
  179. package/dist/cli/commands/mint.js.map +0 -1
  180. package/dist/cli/commands/pay.d.ts +0 -18
  181. package/dist/cli/commands/pay.d.ts.map +0 -1
  182. package/dist/cli/commands/pay.js +0 -87
  183. package/dist/cli/commands/pay.js.map +0 -1
  184. package/dist/cli/commands/simulate.d.ts +0 -32
  185. package/dist/cli/commands/simulate.d.ts.map +0 -1
  186. package/dist/cli/commands/simulate.js +0 -290
  187. package/dist/cli/commands/simulate.js.map +0 -1
  188. package/dist/cli/commands/time.d.ts +0 -29
  189. package/dist/cli/commands/time.d.ts.map +0 -1
  190. package/dist/cli/commands/time.js +0 -252
  191. package/dist/cli/commands/time.js.map +0 -1
  192. package/dist/cli/commands/tx.d.ts +0 -16
  193. package/dist/cli/commands/tx.d.ts.map +0 -1
  194. package/dist/cli/commands/tx.js +0 -379
  195. package/dist/cli/commands/tx.js.map +0 -1
  196. package/dist/cli/commands/watch.d.ts +0 -20
  197. package/dist/cli/commands/watch.d.ts.map +0 -1
  198. package/dist/cli/commands/watch.js +0 -160
  199. package/dist/cli/commands/watch.js.map +0 -1
  200. package/dist/cli/index.d.ts +0 -17
  201. package/dist/cli/index.d.ts.map +0 -1
  202. package/dist/cli/index.js +0 -104
  203. package/dist/cli/index.js.map +0 -1
  204. package/dist/cli/utils/client.d.ts +0 -70
  205. package/dist/cli/utils/client.d.ts.map +0 -1
  206. package/dist/cli/utils/client.js +0 -240
  207. package/dist/cli/utils/client.js.map +0 -1
  208. package/dist/cli/utils/config.d.ts +0 -91
  209. package/dist/cli/utils/config.d.ts.map +0 -1
  210. package/dist/cli/utils/config.js +0 -240
  211. package/dist/cli/utils/config.js.map +0 -1
  212. package/dist/cli/utils/output.d.ts +0 -174
  213. package/dist/cli/utils/output.d.ts.map +0 -1
  214. package/dist/cli/utils/output.js +0 -380
  215. package/dist/cli/utils/output.js.map +0 -1
  216. package/dist/level0/Provider.d.ts +0 -106
  217. package/dist/level0/Provider.d.ts.map +0 -1
  218. package/dist/level0/Provider.js +0 -10
  219. package/dist/level0/Provider.js.map +0 -1
  220. package/dist/level0/ServiceDirectory.d.ts +0 -74
  221. package/dist/level0/ServiceDirectory.d.ts.map +0 -1
  222. package/dist/level0/ServiceDirectory.js +0 -122
  223. package/dist/level0/ServiceDirectory.js.map +0 -1
  224. package/dist/level0/index.d.ts +0 -10
  225. package/dist/level0/index.d.ts.map +0 -1
  226. package/dist/level0/index.js +0 -15
  227. package/dist/level0/index.js.map +0 -1
  228. package/dist/level0/provide.d.ts +0 -51
  229. package/dist/level0/provide.d.ts.map +0 -1
  230. package/dist/level0/provide.js +0 -113
  231. package/dist/level0/provide.js.map +0 -1
  232. package/dist/level0/request.d.ts +0 -53
  233. package/dist/level0/request.d.ts.map +0 -1
  234. package/dist/level0/request.js +0 -462
  235. package/dist/level0/request.js.map +0 -1
  236. package/dist/level1/Agent.d.ts +0 -472
  237. package/dist/level1/Agent.d.ts.map +0 -1
  238. package/dist/level1/Agent.js +0 -1091
  239. package/dist/level1/Agent.js.map +0 -1
  240. package/dist/level1/index.d.ts +0 -10
  241. package/dist/level1/index.d.ts.map +0 -1
  242. package/dist/level1/index.js +0 -30
  243. package/dist/level1/index.js.map +0 -1
  244. package/dist/level1/pricing/PriceCalculator.d.ts +0 -62
  245. package/dist/level1/pricing/PriceCalculator.d.ts.map +0 -1
  246. package/dist/level1/pricing/PriceCalculator.js +0 -237
  247. package/dist/level1/pricing/PriceCalculator.js.map +0 -1
  248. package/dist/level1/pricing/PricingStrategy.d.ts +0 -179
  249. package/dist/level1/pricing/PricingStrategy.d.ts.map +0 -1
  250. package/dist/level1/pricing/PricingStrategy.js +0 -11
  251. package/dist/level1/pricing/PricingStrategy.js.map +0 -1
  252. package/dist/level1/types/Job.d.ts +0 -166
  253. package/dist/level1/types/Job.d.ts.map +0 -1
  254. package/dist/level1/types/Job.js +0 -11
  255. package/dist/level1/types/Job.js.map +0 -1
  256. package/dist/level1/types/Options.d.ts +0 -258
  257. package/dist/level1/types/Options.d.ts.map +0 -1
  258. package/dist/level1/types/Options.js +0 -8
  259. package/dist/level1/types/Options.js.map +0 -1
  260. package/dist/level1/types/index.d.ts +0 -8
  261. package/dist/level1/types/index.d.ts.map +0 -1
  262. package/dist/level1/types/index.js +0 -8
  263. package/dist/level1/types/index.js.map +0 -1
  264. package/dist/protocol/AgentRegistry.d.ts +0 -177
  265. package/dist/protocol/AgentRegistry.d.ts.map +0 -1
  266. package/dist/protocol/AgentRegistry.js +0 -449
  267. package/dist/protocol/AgentRegistry.js.map +0 -1
  268. package/dist/protocol/DIDManager.d.ts +0 -289
  269. package/dist/protocol/DIDManager.d.ts.map +0 -1
  270. package/dist/protocol/DIDManager.js +0 -481
  271. package/dist/protocol/DIDManager.js.map +0 -1
  272. package/dist/protocol/DIDResolver.d.ts +0 -236
  273. package/dist/protocol/DIDResolver.d.ts.map +0 -1
  274. package/dist/protocol/DIDResolver.js +0 -495
  275. package/dist/protocol/DIDResolver.js.map +0 -1
  276. package/dist/runtime/BlockchainRuntime.d.ts +0 -360
  277. package/dist/runtime/BlockchainRuntime.d.ts.map +0 -1
  278. package/dist/runtime/BlockchainRuntime.js +0 -767
  279. package/dist/runtime/BlockchainRuntime.js.map +0 -1
  280. package/dist/runtime/IACTPRuntime.d.ts +0 -271
  281. package/dist/runtime/IACTPRuntime.d.ts.map +0 -1
  282. package/dist/runtime/IACTPRuntime.js +0 -15
  283. package/dist/runtime/IACTPRuntime.js.map +0 -1
  284. package/dist/runtime/MockRuntime.d.ts +0 -445
  285. package/dist/runtime/MockRuntime.d.ts.map +0 -1
  286. package/dist/runtime/MockRuntime.js +0 -1065
  287. package/dist/runtime/MockRuntime.js.map +0 -1
  288. package/dist/runtime/MockStateManager.d.ts +0 -233
  289. package/dist/runtime/MockStateManager.d.ts.map +0 -1
  290. package/dist/runtime/MockStateManager.js +0 -533
  291. package/dist/runtime/MockStateManager.js.map +0 -1
  292. package/dist/runtime/index.d.ts +0 -14
  293. package/dist/runtime/index.d.ts.map +0 -1
  294. package/dist/runtime/index.js +0 -42
  295. package/dist/runtime/index.js.map +0 -1
  296. package/dist/runtime/types/MockState.d.ts +0 -167
  297. package/dist/runtime/types/MockState.d.ts.map +0 -1
  298. package/dist/runtime/types/MockState.js +0 -43
  299. package/dist/runtime/types/MockState.js.map +0 -1
  300. package/dist/types/agent.d.ts +0 -76
  301. package/dist/types/agent.d.ts.map +0 -1
  302. package/dist/types/agent.js +0 -8
  303. package/dist/types/agent.js.map +0 -1
  304. package/dist/types/did.d.ts +0 -192
  305. package/dist/types/did.d.ts.map +0 -1
  306. package/dist/types/did.js +0 -38
  307. package/dist/types/did.js.map +0 -1
  308. package/dist/utils/ErrorRecoveryGuide.d.ts +0 -125
  309. package/dist/utils/ErrorRecoveryGuide.d.ts.map +0 -1
  310. package/dist/utils/ErrorRecoveryGuide.js +0 -579
  311. package/dist/utils/ErrorRecoveryGuide.js.map +0 -1
  312. package/dist/utils/Helpers.d.ts +0 -453
  313. package/dist/utils/Helpers.d.ts.map +0 -1
  314. package/dist/utils/Helpers.js +0 -623
  315. package/dist/utils/Helpers.js.map +0 -1
  316. package/dist/utils/Logger.d.ts +0 -195
  317. package/dist/utils/Logger.d.ts.map +0 -1
  318. package/dist/utils/Logger.js +0 -382
  319. package/dist/utils/Logger.js.map +0 -1
  320. package/dist/utils/RateLimiter.d.ts +0 -253
  321. package/dist/utils/RateLimiter.d.ts.map +0 -1
  322. package/dist/utils/RateLimiter.js +0 -424
  323. package/dist/utils/RateLimiter.js.map +0 -1
  324. package/dist/utils/SDKLifecycle.d.ts +0 -156
  325. package/dist/utils/SDKLifecycle.d.ts.map +0 -1
  326. package/dist/utils/SDKLifecycle.js +0 -347
  327. package/dist/utils/SDKLifecycle.js.map +0 -1
  328. package/dist/utils/SecureNonce.d.ts +0 -57
  329. package/dist/utils/SecureNonce.d.ts.map +0 -1
  330. package/dist/utils/SecureNonce.js +0 -80
  331. package/dist/utils/SecureNonce.js.map +0 -1
  332. package/dist/utils/Semaphore.d.ts +0 -123
  333. package/dist/utils/Semaphore.d.ts.map +0 -1
  334. package/dist/utils/Semaphore.js +0 -247
  335. package/dist/utils/Semaphore.js.map +0 -1
  336. package/dist/utils/UsedAttestationTracker.d.ts +0 -167
  337. package/dist/utils/UsedAttestationTracker.d.ts.map +0 -1
  338. package/dist/utils/UsedAttestationTracker.js +0 -309
  339. package/dist/utils/UsedAttestationTracker.js.map +0 -1
  340. package/dist/utils/fsSafe.d.ts +0 -14
  341. package/dist/utils/fsSafe.d.ts.map +0 -1
  342. package/dist/utils/fsSafe.js +0 -89
  343. package/dist/utils/fsSafe.js.map +0 -1
  344. package/dist/utils/index.d.ts +0 -15
  345. package/dist/utils/index.d.ts.map +0 -1
  346. package/dist/utils/index.js +0 -51
  347. package/dist/utils/index.js.map +0 -1
  348. package/dist/utils/security.d.ts +0 -147
  349. package/dist/utils/security.d.ts.map +0 -1
  350. package/dist/utils/security.js +0 -391
  351. package/dist/utils/security.js.map +0 -1
  352. package/src/abi/AgentRegistry.json +0 -782
  353. package/src/abi/IdentityRegistry.json +0 -316
  354. package/src/adapters/BaseAdapter.ts +0 -473
  355. package/src/adapters/BeginnerAdapter.ts +0 -232
  356. package/src/adapters/IntermediateAdapter.ts +0 -316
  357. package/src/adapters/index.ts +0 -25
  358. package/src/cli/commands/balance.ts +0 -110
  359. package/src/cli/commands/batch.ts +0 -487
  360. package/src/cli/commands/config.ts +0 -231
  361. package/src/cli/commands/init.ts +0 -161
  362. package/src/cli/commands/mint.ts +0 -116
  363. package/src/cli/commands/pay.ts +0 -113
  364. package/src/cli/commands/simulate.ts +0 -345
  365. package/src/cli/commands/time.ts +0 -303
  366. package/src/cli/commands/tx.ts +0 -448
  367. package/src/cli/commands/watch.ts +0 -211
  368. package/src/cli/index.ts +0 -116
  369. package/src/cli/utils/client.ts +0 -249
  370. package/src/cli/utils/config.ts +0 -282
  371. package/src/cli/utils/output.ts +0 -465
  372. package/src/level0/Provider.ts +0 -117
  373. package/src/level0/ServiceDirectory.ts +0 -131
  374. package/src/level0/index.ts +0 -10
  375. package/src/level0/provide.ts +0 -131
  376. package/src/level0/request.ts +0 -494
  377. package/src/level1/Agent.ts +0 -1432
  378. package/src/level1/index.ts +0 -10
  379. package/src/level1/pricing/PriceCalculator.ts +0 -255
  380. package/src/level1/pricing/PricingStrategy.ts +0 -198
  381. package/src/level1/types/Job.ts +0 -179
  382. package/src/level1/types/Options.ts +0 -291
  383. package/src/level1/types/index.ts +0 -8
  384. package/src/protocol/AgentRegistry.ts +0 -559
  385. package/src/protocol/DIDManager.ts +0 -629
  386. package/src/protocol/DIDResolver.ts +0 -554
  387. package/src/runtime/BlockchainRuntime.ts +0 -993
  388. package/src/runtime/IACTPRuntime.ts +0 -284
  389. package/src/runtime/MockRuntime.ts +0 -1244
  390. package/src/runtime/MockStateManager.ts +0 -576
  391. package/src/runtime/index.ts +0 -25
  392. package/src/runtime/types/MockState.ts +0 -227
  393. package/src/types/agent.ts +0 -79
  394. package/src/types/did.ts +0 -223
  395. package/src/utils/ErrorRecoveryGuide.ts +0 -675
  396. package/src/utils/Helpers.ts +0 -688
  397. package/src/utils/Logger.ts +0 -484
  398. package/src/utils/RateLimiter.ts +0 -534
  399. package/src/utils/SDKLifecycle.ts +0 -416
  400. package/src/utils/SecureNonce.ts +0 -78
  401. package/src/utils/Semaphore.ts +0 -276
  402. package/src/utils/UsedAttestationTracker.ts +0 -387
  403. package/src/utils/fsSafe.ts +0 -75
  404. package/src/utils/index.ts +0 -80
  405. package/src/utils/security.ts +0 -418
@@ -1,316 +0,0 @@
1
- /**
2
- * IntermediateAdapter - Balanced API for developers with some protocol knowledge
3
- *
4
- * Provides more control than BeginnerAdapter while still offering convenience:
5
- * - Explicit transaction lifecycle methods
6
- * - Direct escrow operations
7
- * - State transition control
8
- *
9
- * Use this adapter when you need fine-grained control but still want
10
- * user-friendly input parsing and validation.
11
- *
12
- * @module adapters/IntermediateAdapter
13
- */
14
-
15
- import { BaseAdapter, ValidationError, DEFAULT_DISPUTE_WINDOW_SECONDS } from './BaseAdapter';
16
- import { IACTPRuntime } from '../runtime/IACTPRuntime';
17
- import { MockTransaction, TransactionState } from '../runtime/types/MockState';
18
- import { EASHelper } from '../protocol/EASHelper';
19
-
20
- /**
21
- * Parameters for creating a transaction (intermediate level).
22
- *
23
- * More explicit than BeginnerPayParams but still with smart defaults.
24
- */
25
- export interface IntermediateTransactionParams {
26
- /** Provider's Ethereum address */
27
- provider: string;
28
-
29
- /** Amount in user-friendly format ("100", "100.50", "100 USDC") */
30
- amount: string | number;
31
-
32
- /** Optional: Deadline as relative time ("+24h") or Unix timestamp. Defaults to +24h */
33
- deadline?: string | number;
34
-
35
- /** Optional: Dispute window in seconds. Defaults to 172800 (2 days) */
36
- disputeWindow?: number;
37
-
38
- /** Optional: Service description */
39
- serviceDescription?: string;
40
- }
41
-
42
- /**
43
- * IntermediateAdapter - Balanced API for transaction lifecycle control.
44
- *
45
- * Provides explicit methods for each stage of the ACTP lifecycle:
46
- * - `createTransaction()` - Create transaction without escrow
47
- * - `linkEscrow()` - Link escrow (auto-transitions to COMMITTED)
48
- * - `transitionState()` - Manually transition state
49
- * - `releaseEscrow()` - Release funds to provider
50
- * - `getEscrowBalance()` - Check escrow balance
51
- * - `getTransaction()` - Get transaction details
52
- *
53
- * @example
54
- * ```typescript
55
- * const client = await ACTPClient.create({ mode: 'mock' });
56
- *
57
- * // Create transaction (INITIATED state)
58
- * const txId = await client.intermediate.createTransaction({
59
- * provider: '0xProvider123',
60
- * amount: '100',
61
- * deadline: '+7d',
62
- * });
63
- *
64
- * // Link escrow (auto-transitions to COMMITTED)
65
- * await client.intermediate.linkEscrow(txId, '100');
66
- *
67
- * // Provider delivers
68
- * await client.intermediate.transitionState(txId, 'DELIVERED');
69
- *
70
- * // Release funds after dispute window
71
- * await client.intermediate.releaseEscrow(escrowId);
72
- * ```
73
- */
74
- export class IntermediateAdapter extends BaseAdapter {
75
- /**
76
- * Creates a new IntermediateAdapter instance.
77
- *
78
- * @param runtime - ACTP runtime implementation (MockRuntime or BlockchainRuntime)
79
- * @param requesterAddress - The requester's Ethereum address
80
- * @param easHelper - Optional EAS helper for attestation verification (SECURITY FIX C-4)
81
- */
82
- constructor(
83
- private runtime: IACTPRuntime,
84
- requesterAddress: string,
85
- private easHelper?: EASHelper
86
- ) {
87
- super(requesterAddress);
88
- }
89
-
90
- /**
91
- * Create a transaction (INITIATED state, no escrow yet).
92
- *
93
- * Unlike `beginner.pay()`, this only creates the transaction
94
- * without linking escrow. You must call `linkEscrow()` separately.
95
- *
96
- * @param params - Transaction parameters
97
- * @returns Transaction ID
98
- * @throws {ValidationError} If inputs are invalid
99
- *
100
- * @example
101
- * ```typescript
102
- * const txId = await adapter.createTransaction({
103
- * provider: '0xProvider123',
104
- * amount: '100',
105
- * deadline: '+24h',
106
- * });
107
- * ```
108
- */
109
- async createTransaction(params: IntermediateTransactionParams): Promise<string> {
110
- const provider = this.validateAddress(params.provider, 'provider');
111
- const amount = this.parseAmount(params.amount);
112
- const currentTime = this.runtime.time.now();
113
- const deadline = this.parseDeadline(params.deadline, currentTime);
114
- // SECURITY FIX (L-1): Validate dispute window bounds
115
- const disputeWindow = this.validateDisputeWindow(params.disputeWindow);
116
-
117
- const requester = this.requesterAddress;
118
-
119
- // Validation
120
- if (requester.toLowerCase() === provider.toLowerCase()) {
121
- throw new ValidationError('Cannot create transaction with yourself as provider');
122
- }
123
-
124
- if (deadline <= currentTime) {
125
- throw new ValidationError('Deadline must be in the future');
126
- }
127
-
128
- return this.runtime.createTransaction({
129
- provider,
130
- requester,
131
- amount: amount.toString(),
132
- deadline,
133
- disputeWindow,
134
- serviceDescription: params.serviceDescription,
135
- });
136
- }
137
-
138
- /**
139
- * Link escrow to a transaction.
140
- *
141
- * Automatically transitions INITIATED or QUOTED → COMMITTED.
142
- * Deducts funds from requester and locks in escrow.
143
- *
144
- * @param txId - Transaction ID
145
- * @returns Escrow ID
146
- * @throws {Error} If transaction not found or in wrong state
147
- *
148
- * @example
149
- * ```typescript
150
- * const escrowId = await adapter.linkEscrow(txId);
151
- * ```
152
- */
153
- async linkEscrow(txId: string): Promise<string> {
154
- const tx = await this.runtime.getTransaction(txId);
155
-
156
- if (!tx) {
157
- throw new Error(`Transaction ${txId} not found`);
158
- }
159
-
160
- // Use the transaction's amount (already in correct format)
161
- return this.runtime.linkEscrow(txId, tx.amount);
162
- }
163
-
164
- /**
165
- * Transition transaction to a new state.
166
- *
167
- * Validates the transition against the ACTP 8-state machine.
168
- *
169
- * Valid transitions:
170
- * - INITIATED → QUOTED, COMMITTED, CANCELLED
171
- * - QUOTED → COMMITTED, CANCELLED
172
- * - COMMITTED → IN_PROGRESS, DELIVERED, CANCELLED
173
- * - IN_PROGRESS → DELIVERED, CANCELLED
174
- * - DELIVERED → SETTLED, DISPUTED
175
- * - DISPUTED → SETTLED
176
- *
177
- * @param txId - Transaction ID
178
- * @param newState - Target state
179
- * @throws {Error} If transition is invalid
180
- *
181
- * @example
182
- * ```typescript
183
- * // Provider marks work as delivered
184
- * await adapter.transitionState(txId, 'DELIVERED');
185
- * ```
186
- */
187
- async transitionState(txId: string, newState: TransactionState): Promise<void> {
188
- return this.runtime.transitionState(txId, newState);
189
- }
190
-
191
- /**
192
- * Release escrow funds to the provider.
193
- *
194
- * Can only be called when transaction is in DELIVERED state
195
- * and dispute window has expired.
196
- *
197
- * SECURITY FIX (C-4 + HIGH-5): MANDATORY attestation verification before release.
198
- * When EASHelper is available (testnet/mainnet modes), attestation verification
199
- * is REQUIRED - not optional. This prevents releasing funds without proper
200
- * delivery proof.
201
- *
202
- * Verifications performed:
203
- * - Attestation exists and is not revoked
204
- * - Attestation belongs to this transaction (prevents replay attacks)
205
- * - Attestation has not been used for a different transaction
206
- *
207
- * @param escrowId - Escrow ID
208
- * @param attestationParams - Attestation verification params (REQUIRED when EASHelper available)
209
- * @param attestationParams.txId - Transaction ID (bytes32)
210
- * @param attestationParams.attestationUID - Attestation UID (bytes32)
211
- * @throws {Error} If escrow not found or dispute window active
212
- * @throws {Error} If EASHelper is available but attestationParams not provided (HIGH-5)
213
- * @throws {Error} If attestation verification fails
214
- *
215
- * @example
216
- * ```typescript
217
- * // With attestation verification (REQUIRED in testnet/mainnet)
218
- * await adapter.releaseEscrow(escrowId, {
219
- * txId: '0x...',
220
- * attestationUID: '0x...'
221
- * });
222
- *
223
- * // Mock mode only (no attestation required)
224
- * await adapter.releaseEscrow(escrowId);
225
- * ```
226
- */
227
- async releaseEscrow(
228
- escrowId: string,
229
- attestationParams?: { txId: string; attestationUID: string }
230
- ): Promise<void> {
231
- // Determine whether the underlying runtime requires attestation.
232
- // BlockchainRuntime exposes isAttestationRequired(), but it's not part of the generic interface.
233
- const runtimeAny = this.runtime as any;
234
- const runtimeSupportsAttestationFlag =
235
- typeof runtimeAny?.isAttestationRequired === 'function';
236
-
237
- const attestationRequired: boolean = runtimeSupportsAttestationFlag
238
- ? Boolean(runtimeAny.isAttestationRequired())
239
- : Boolean(this.easHelper);
240
-
241
- if (attestationRequired && !attestationParams) {
242
- throw new Error(
243
- 'Attestation verification is REQUIRED for escrow release. ' +
244
- 'Provide attestationParams: { txId: string, attestationUID: string }.'
245
- );
246
- }
247
-
248
- // If caller provided attestation params, ensure they match the escrow/tx being released.
249
- if (attestationParams) {
250
- // Support legacy escrowId format "escrow-{txId}-{timestamp}".
251
- // Standard is escrowId === txId.
252
- const legacyMatch = escrowId.match(/^escrow-(.+)-\d+$/);
253
- const txIdFromEscrowId = legacyMatch ? legacyMatch[1] : escrowId;
254
-
255
- if (txIdFromEscrowId.toLowerCase() !== attestationParams.txId.toLowerCase()) {
256
- throw new Error(
257
- `Attestation txId (${attestationParams.txId}) does not match escrow/txId (${txIdFromEscrowId}). ` +
258
- `Refusing to release escrow with mismatched attestation.`
259
- );
260
- }
261
-
262
- // If runtime does NOT handle attestation internally but EASHelper exists, verify here.
263
- // Otherwise, pass attestationUID down so BlockchainRuntime can enforce/record.
264
- if (!runtimeSupportsAttestationFlag && this.easHelper) {
265
- await this.easHelper.verifyAndRecordForRelease(
266
- attestationParams.txId,
267
- attestationParams.attestationUID
268
- );
269
- }
270
- }
271
-
272
- return this.runtime.releaseEscrow(
273
- escrowId,
274
- attestationParams?.attestationUID
275
- );
276
- }
277
-
278
- /**
279
- * Get escrow balance.
280
- *
281
- * Returns formatted balance string (e.g., "100.00 USDC").
282
- *
283
- * @param escrowId - Escrow ID
284
- * @returns Formatted balance
285
- * @throws {Error} If escrow not found
286
- *
287
- * @example
288
- * ```typescript
289
- * const balance = await adapter.getEscrowBalance(escrowId);
290
- * console.log(balance); // "100.00 USDC"
291
- * ```
292
- */
293
- async getEscrowBalance(escrowId: string): Promise<string> {
294
- const balance = await this.runtime.getEscrowBalance(escrowId);
295
- return this.formatAmount(balance);
296
- }
297
-
298
- /**
299
- * Get transaction details.
300
- *
301
- * Returns the full transaction object from the runtime.
302
- *
303
- * @param txId - Transaction ID
304
- * @returns Transaction object or null if not found
305
- *
306
- * @example
307
- * ```typescript
308
- * const tx = await adapter.getTransaction(txId);
309
- * console.log('State:', tx?.state);
310
- * console.log('Amount:', tx?.amount);
311
- * ```
312
- */
313
- async getTransaction(txId: string): Promise<MockTransaction | null> {
314
- return this.runtime.getTransaction(txId);
315
- }
316
- }
@@ -1,25 +0,0 @@
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
-
12
- export {
13
- BaseAdapter,
14
- ValidationError,
15
- DEFAULT_DISPUTE_WINDOW_SECONDS,
16
- DEFAULT_DEADLINE_SECONDS,
17
- MIN_AMOUNT_WEI,
18
- MAX_DEADLINE_HOURS,
19
- MAX_DEADLINE_DAYS,
20
- } from './BaseAdapter';
21
- export { BeginnerAdapter, BeginnerPayParams, BeginnerPayResult } from './BeginnerAdapter';
22
- export { IntermediateAdapter, IntermediateTransactionParams } from './IntermediateAdapter';
23
-
24
- // Re-export runtime interface for convenience
25
- export { IACTPRuntime, CreateTransactionParams } from '../runtime/IACTPRuntime';
@@ -1,110 +0,0 @@
1
- /**
2
- * Balance Command - Check USDC balance
3
- *
4
- * Shows the USDC balance for the current user or a specified address.
5
- *
6
- * @module cli/commands/balance
7
- */
8
-
9
- import { Command } from 'commander';
10
- import { Output, ExitCode } from '../utils/output';
11
- import { createClient, mapError } from '../utils/client';
12
- import { loadConfig } from '../utils/config';
13
-
14
- // ============================================================================
15
- // Command Definition
16
- // ============================================================================
17
-
18
- export function createBalanceCommand(): Command {
19
- const cmd = new Command('balance')
20
- .description('Check USDC balance')
21
- .argument('[address]', 'Address to check (defaults to your address)')
22
- .option('--json', 'Output as JSON')
23
- .option('-q, --quiet', 'Output only the balance amount')
24
- .action(async (address, options) => {
25
- const output = new Output(
26
- options.json ? 'json' : options.quiet ? 'quiet' : 'human'
27
- );
28
-
29
- try {
30
- await runBalance(address, output);
31
- } catch (error) {
32
- const structuredError = mapError(error);
33
- output.errorResult({
34
- code: structuredError.code,
35
- message: structuredError.message,
36
- details: structuredError.details,
37
- });
38
- process.exit(ExitCode.ERROR);
39
- }
40
- });
41
-
42
- return cmd;
43
- }
44
-
45
- // ============================================================================
46
- // Implementation
47
- // ============================================================================
48
-
49
- async function runBalance(
50
- address: string | undefined,
51
- output: Output
52
- ): Promise<void> {
53
- // Load config to get default address
54
- const config = loadConfig();
55
-
56
- // Use specified address or default to config address
57
- const targetAddress = address || config.address;
58
-
59
- // Validate address format
60
- if (!/^0x[a-fA-F0-9]{40}$/.test(targetAddress)) {
61
- throw new Error(
62
- `Invalid address format: "${targetAddress}"\n` +
63
- 'Expected 0x-prefixed 40-character hex string.'
64
- );
65
- }
66
-
67
- // Create client and get balance
68
- const client = await createClient();
69
- const balanceWei = await client.getBalance(targetAddress.toLowerCase());
70
-
71
- // Format balance
72
- const balanceFormatted = formatUsdc(balanceWei);
73
- const isOwnAddress = targetAddress.toLowerCase() === config.address.toLowerCase();
74
-
75
- output.result(
76
- {
77
- address: targetAddress,
78
- balance: `${balanceFormatted} USDC`,
79
- balanceWei,
80
- isYou: isOwnAddress,
81
- },
82
- { quietKey: 'balance' }
83
- );
84
-
85
- // Additional info in human mode
86
- if (balanceWei === '0') {
87
- output.blank();
88
- output.warning('Balance is zero.');
89
- if (config.mode === 'mock') {
90
- output.print(' Mint tokens: actp mint ' + targetAddress + ' 1000');
91
- }
92
- }
93
- }
94
-
95
- /**
96
- * Format USDC amount from wei to decimal with commas
97
- */
98
- function formatUsdc(weiAmount: string): string {
99
- const amount = BigInt(weiAmount);
100
- const whole = amount / 1_000_000n;
101
- const decimal = amount % 1_000_000n;
102
- const decimalStr = decimal.toString().padStart(6, '0').slice(0, 2);
103
-
104
- // Add thousands separators
105
- const wholeFormatted = whole.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ',');
106
-
107
- return `${wholeFormatted}.${decimalStr}`;
108
- }
109
-
110
- export { runBalance };