@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
@@ -1,29 +1,256 @@
1
- import { Signer, BytesLike } from 'ethers';
1
+ import { Contract, Signer, BytesLike } from 'ethers';
2
2
  import { State, Transaction, CreateTransactionParams, DisputeResolution, EconomicParams } from '../types';
3
+ /**
4
+ * Gas options for transactions
5
+ */
3
6
  interface GasOptions {
4
7
  maxFeePerGas?: bigint;
5
8
  maxPriorityFeePerGas?: bigint;
6
9
  }
10
+ /**
11
+ * ACTPKernel - Smart contract wrapper
12
+ * Reference: Yellow Paper §3 (ACTP Kernel Specification)
13
+ */
7
14
  export declare class ACTPKernel {
8
15
  private readonly address;
9
16
  private contract;
10
17
  private readonly gasSettings?;
11
18
  constructor(address: string, signer: Signer, gasSettings?: GasOptions);
19
+ /**
20
+ * Get kernel contract address
21
+ */
12
22
  getAddress(): string;
23
+ /**
24
+ * Get the underlying ethers Contract instance.
25
+ *
26
+ * SECURITY FIX (C-3): Provides public access to contract for EventMonitor
27
+ * instead of accessing private field via bracket notation.
28
+ *
29
+ * @returns ethers Contract instance
30
+ */
31
+ getContract(): Contract;
32
+ /**
33
+ * Get gas buffer multiplier based on operation complexity
34
+ * V6 Security Enhancement: Operation-specific gas buffers
35
+ * Reference: SDK_SECURITY_ANALYSIS-Ultra-Think.md Lines 326-337
36
+ */
13
37
  private getGasBufferMultiplier;
38
+ /**
39
+ * Build transaction options with gas settings and estimated gas
40
+ * V6 Enhancement: Dynamic buffer based on operation type
41
+ *
42
+ * SECURITY FIX (C-3): Gas estimation manipulation attack protection
43
+ * - Enforces operation-specific minimum gas floors (not global 100k)
44
+ * - Validates gas limit doesn't exceed block gas limit (DoS prevention)
45
+ * - Uses safe BigInt arithmetic with overflow detection
46
+ * - Prevents floating-point arithmetic (uses BPS - basis points)
47
+ */
14
48
  private buildTxOptions;
49
+ /**
50
+ * Create a new transaction
51
+ * Reference: Yellow Paper §3.4.1
52
+ *
53
+ * Contract signature: createTransaction(provider, requester, amount, deadline, disputeWindow, serviceHash)
54
+ * Returns: bytes32 transactionId (generated by contract)
55
+ */
15
56
  createTransaction(params: CreateTransactionParams): Promise<string>;
57
+ /**
58
+ * Transition transaction state
59
+ * Reference: Yellow Paper §3.2
60
+ */
16
61
  transitionState(txId: string, newState: State, proof?: BytesLike): Promise<void>;
62
+ /**
63
+ * Submit quote for transaction (AIP-2)
64
+ * Reference: AIP-2 §4.1 (Provider workflow)
65
+ *
66
+ * Transitions transaction from INITIATED → QUOTED with quote hash stored on-chain
67
+ *
68
+ * @param txId - Transaction ID (bytes32)
69
+ * @param quoteHash - Keccak256 hash of canonical JSON quote message
70
+ */
17
71
  submitQuote(txId: string, quoteHash: string): Promise<void>;
72
+ /**
73
+ * Link escrow to transaction
74
+ *
75
+ * CRITICAL: This is the ONLY way to create escrow per AIP-3 spec.
76
+ * SDK should NOT call EscrowVault.createEscrow() directly (onlyKernel modifier).
77
+ *
78
+ * What happens internally:
79
+ * 1. ACTPKernel validates transaction state, permissions, deadline
80
+ * 2. Kernel calls IEscrowValidator(escrowContract).createEscrow(...)
81
+ * 3. EscrowVault pulls USDC from consumer (must approve USDC first!)
82
+ * 4. Events emitted: EscrowLinked
83
+ * 5. **State transition behavior varies** (see below)
84
+ *
85
+ * STATE TRANSITION BEHAVIOR:
86
+ * - **AIP-3 Spec (Source Code)**: Should auto-transition INITIATED/QUOTED → COMMITTED
87
+ * - **Deployed Contract**: Behavior is INCONSISTENT - sometimes auto-transitions, sometimes doesn't
88
+ * - **Recommended Practice**: Always check state after linkEscrow() and manually transition if needed
89
+ *
90
+ * ```typescript
91
+ * await client.kernel.linkEscrow(txId, escrowVault, escrowId);
92
+ * let tx = await client.kernel.getTransaction(txId);
93
+ * if (tx.state !== State.COMMITTED) {
94
+ * await client.kernel.transitionState(txId, State.COMMITTED);
95
+ * }
96
+ * ```
97
+ *
98
+ * Prerequisites:
99
+ * - Transaction in INITIATED or QUOTED state
100
+ * - Consumer has approved USDC to EscrowVault address
101
+ * (use EscrowVault.approveToken() before calling this)
102
+ *
103
+ * @param txId - Transaction ID (bytes32)
104
+ * @param escrowContract - EscrowVault contract address
105
+ * @param escrowId - Unique escrow identifier (bytes32, consumer-generated)
106
+ * @throws {ValidationError} If inputs invalid
107
+ * @throws {TransactionRevertedError} If state invalid, deadline passed, or insufficient USDC
108
+ *
109
+ * @example
110
+ * ```typescript
111
+ * // Step 1: Approve USDC to EscrowVault (NOT to Kernel!)
112
+ * await client.escrow.approveToken(BASE_SEPOLIA.contracts.usdc, amount);
113
+ *
114
+ * // Step 2: Generate unique escrow ID
115
+ * const escrowId = ethers.id(`escrow-${Date.now()}`);
116
+ *
117
+ * // Step 3: Link escrow (creates escrow + auto-transitions to COMMITTED)
118
+ * await client.kernel.linkEscrow(txId, escrowVaultAddress, escrowId);
119
+ *
120
+ * // Step 4: Verify state is COMMITTED (auto-transitioned, no manual call needed)
121
+ * const tx = await client.kernel.getTransaction(txId);
122
+ * expect(tx.state).to.equal(State.COMMITTED);
123
+ * ```
124
+ *
125
+ * Reference: Yellow Paper §3.4.2, AIP-3 §3.2 (ACTPKernel.sol lines 244-276)
126
+ */
18
127
  linkEscrow(txId: string, escrowContract: string, escrowId: string): Promise<void>;
19
- releaseMilestone(txId: string, milestoneId: number, amount: bigint): Promise<void>;
128
+ /**
129
+ * Release milestone payment
130
+ *
131
+ * SECURITY FIX (CRITICAL-2): Contract ABI has only 2 params (txId, amount), not 3.
132
+ * The milestoneId is NOT part of the current ACTPKernel V1 contract.
133
+ * Per ABI: releaseMilestone(bytes32 transactionId, uint256 amount)
134
+ *
135
+ * @param txId - Transaction ID (bytes32)
136
+ * @param amount - Amount to release (uint256)
137
+ * @deprecated milestoneId parameter - removed as contract doesn't support it
138
+ */
139
+ releaseMilestone(txId: string, amount: bigint): Promise<void>;
140
+ /**
141
+ * Release full escrow (settle transaction)
142
+ *
143
+ * ⚠️ CRITICAL SECURITY WARNING (C-2): Attestation UID Validation Bypass
144
+ *
145
+ * **DO NOT call this method directly from your application code!**
146
+ *
147
+ * ACTPKernel V1 contract accepts any attestationUID without validation.
148
+ * A malicious provider can:
149
+ * - Submit an attestation from a different transaction
150
+ * - Re-use an old attestation (replay attack)
151
+ * - Submit a forged attestation with fake delivery proof
152
+ *
153
+ * **REQUIRED: Use secure wrapper methods instead:**
154
+ *
155
+ * 1. **BeginnerAdapter.completePayment()** (recommended for most users)
156
+ * - Automatically verifies attestation before release
157
+ * - Validates attestation belongs to this transaction
158
+ * - Checks attestation hasn't been used before
159
+ * - Handles all state transitions
160
+ *
161
+ * 2. **IntermediateAdapter.releaseEscrow()** (for more control)
162
+ * - Explicitly requires attestation verification
163
+ * - Throws error if attestation invalid or missing
164
+ * - Allows custom verification logic
165
+ *
166
+ * 3. **Manual verification** (advanced users only):
167
+ * ```typescript
168
+ * // Step 1: Get transaction details
169
+ * const tx = await kernel.getTransaction(txId);
170
+ *
171
+ * // Step 2: Verify attestation if EAS is configured
172
+ * if (easHelper && tx.attestationUID && tx.attestationUID !== '0x0...0') {
173
+ * const isValid = await easHelper.verifyDeliveryAttestation(
174
+ * tx.attestationUID,
175
+ * tx.requester
176
+ * );
177
+ * if (!isValid) {
178
+ * throw new Error('Invalid or fraudulent delivery attestation');
179
+ * }
180
+ * }
181
+ *
182
+ * // Step 3: Only now is it safe to release
183
+ * await kernel.releaseEscrow(txId);
184
+ * ```
185
+ *
186
+ * **Why this matters:**
187
+ * - Without verification, you risk paying for work never delivered
188
+ * - Provider can steal funds by re-using attestations from other transactions
189
+ * - No on-chain enforcement (contract V1 limitation, fixed in V2)
190
+ *
191
+ * **For testnet/mainnet deployments:**
192
+ * - MUST configure easConfig in ACTPClient
193
+ * - MUST use wrapper methods (Beginner/Intermediate adapters)
194
+ * - NEVER call this method directly unless attestation verified
195
+ *
196
+ * @param txId - Transaction ID to settle
197
+ * @throws {ValidationError} If txId is invalid
198
+ * @throws {TransactionRevertedError} If contract reverts
199
+ *
200
+ * @see {@link BeginnerAdapter.completePayment} Recommended method with built-in verification
201
+ * @see {@link IntermediateAdapter.releaseEscrow} Explicit verification method
202
+ * @see {@link EASHelper.verifyDeliveryAttestation} Manual verification helper
203
+ */
20
204
  releaseEscrow(txId: string): Promise<void>;
205
+ /**
206
+ * Get transaction by ID
207
+ */
21
208
  getTransaction(txId: string): Promise<Transaction>;
209
+ /**
210
+ * Get economic parameters (fee structure)
211
+ *
212
+ * SECURITY FIX (CRITICAL-4): Contract doesn't have getEconomicParams() function.
213
+ * Must call individual getters: platformFeeBps(), requesterPenaltyBps(), feeRecipient()
214
+ * Per ACTPKernel.json ABI lines 576-586, 619-630, 351-361
215
+ */
22
216
  getEconomicParams(): Promise<EconomicParams>;
217
+ /**
218
+ * Estimate gas for transaction creation
219
+ */
23
220
  estimateCreateTransaction(params: CreateTransactionParams): Promise<bigint>;
221
+ /**
222
+ * Raise dispute on delivered transaction
223
+ * Reference: Yellow Paper §3.4 (Dispute Management)
224
+ */
24
225
  raiseDispute(txId: string, reason: string, evidence: string): Promise<void>;
226
+ /**
227
+ * Resolve/settle dispute with payment split
228
+ * Reference: Yellow Paper §3.4
229
+ *
230
+ * Disputes are settled via transitionState(SETTLED, proof) per §3.2
231
+ * The kernel contract decodes the proof and handles escrow disbursement
232
+ */
25
233
  resolveDispute(txId: string, resolution: DisputeResolution): Promise<void>;
234
+ /**
235
+ * Settle disputed transaction (alias for resolveDispute)
236
+ */
26
237
  settleDispute(txId: string, resolution: DisputeResolution): Promise<void>;
238
+ /**
239
+ * Anchor an EAS attestation UID to a transaction (delivery proof)
240
+ * Reference: AIP-4 (Delivery Proof and EAS Attestation Standard)
241
+ *
242
+ * @param txId - Transaction ID
243
+ * @param attestationUID - EAS attestation UID from provider
244
+ * @throws {ValidationError} If inputs are invalid
245
+ * @throws {TransactionRevertedError} If contract reverts
246
+ *
247
+ * @example
248
+ * ```typescript
249
+ * const easHelper = new EASHelper(signer, easConfig);
250
+ * const attestation = await easHelper.attestDeliveryProof(proof, recipient);
251
+ * await kernel.anchorAttestation(txId, attestation.uid);
252
+ * ```
253
+ */
27
254
  anchorAttestation(txId: string, attestationUID: string): Promise<void>;
28
255
  }
29
256
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"ACTPKernel.d.ts","sourceRoot":"","sources":["../../src/protocol/ACTPKernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,MAAM,EAAE,SAAS,EAAoB,MAAM,QAAQ,CAAC;AAEvE,OAAO,EACL,KAAK,EAEL,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACf,MAAM,UAAU,CAAC;AAkBlB,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAMD,qBAAa,UAAU;IAKnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAa;gBAGvB,OAAO,EAAE,MAAM,EAChC,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,UAAU;IAS1B,UAAU,IAAI,MAAM;IASpB,OAAO,CAAC,sBAAsB;IAkB9B,OAAO,CAAC,cAAc;IAwBhB,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IA+EnE,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,KAAK,EACf,KAAK,GAAE,SAAgB,GACtB,OAAO,CAAC,IAAI,CAAC;IAsCV,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAqF3D,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IA0BV,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAyCV,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB1C,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA4BlD,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAgB5C,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB3E,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA2C3E,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IA4D1E,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBzE,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B7E"}
1
+ {"version":3,"file":"ACTPKernel.d.ts","sourceRoot":"","sources":["../../src/protocol/ACTPKernel.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAoB,MAAM,QAAQ,CAAC;AAEvE,OAAO,EACL,KAAK,EAEL,WAAW,EACX,uBAAuB,EACvB,iBAAiB,EACjB,cAAc,EACf,MAAM,UAAU,CAAC;AAelB;;GAEG;AACH,UAAU,UAAU;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,oBAAoB,CAAC,EAAE,MAAM,CAAC;CAC/B;AAED;;;GAGG;AACH,qBAAa,UAAU;IAKnB,OAAO,CAAC,QAAQ,CAAC,OAAO;IAJ1B,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAa;gBAGvB,OAAO,EAAE,MAAM,EAChC,MAAM,EAAE,MAAM,EACd,WAAW,CAAC,EAAE,UAAU;IAM1B;;OAEG;IACH,UAAU,IAAI,MAAM;IAIpB;;;;;;;OAOG;IACH,WAAW,IAAI,QAAQ;IAIvB;;;;OAIG;IACH,OAAO,CAAC,sBAAsB;IAc9B;;;;;;;;;OASG;IACH,OAAO,CAAC,cAAc;IA8DtB;;;;;;OAMG;IACG,iBAAiB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkFzE;;;OAGG;IACG,eAAe,CACnB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,KAAK,EACf,KAAK,GAAE,SAAgB,GACtB,OAAO,CAAC,IAAI,CAAC;IA6BhB;;;;;;;;OAQG;IACG,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA8BjE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAsDG;IACG,UAAU,CACd,IAAI,EAAE,MAAM,EACZ,cAAc,EAAE,MAAM,EACtB,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC,IAAI,CAAC;IAuBhB;;;;;;;;;;OAUG;IACG,gBAAgB,CACpB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC;IAsBhB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA+DG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBhD;;OAEG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC;IA6CxD;;;;;;OAMG;IACG,iBAAiB,IAAI,OAAO,CAAC,cAAc,CAAC;IAmBlD;;OAEG;IACG,yBAAyB,CAAC,MAAM,EAAE,uBAAuB,GAAG,OAAO,CAAC,MAAM,CAAC;IAejF;;;OAGG;IACG,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCjF;;;;;;OAMG;IACG,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAyDhF;;OAEG;IACG,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/E;;;;;;;;;;;;;;;OAeG;IACG,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;CA+B7E"}