@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,453 @@
1
+ /**
2
+ * Helpers - Common utility functions for ACTP SDK
3
+ *
4
+ * SECURITY FIX (L-7): Convenience methods for common operations
5
+ * to reduce boilerplate and prevent mistakes.
6
+ *
7
+ * @module utils/Helpers
8
+ */
9
+ /**
10
+ * USDC amount utilities (6 decimal places)
11
+ */
12
+ export declare const USDC: {
13
+ /**
14
+ * USDC decimals
15
+ */
16
+ DECIMALS: number;
17
+ /**
18
+ * Minimum transaction amount in USDC wei ($0.05)
19
+ */
20
+ MIN_AMOUNT_WEI: bigint;
21
+ /**
22
+ * Convert human-readable USDC amount to wei
23
+ *
24
+ * @param amount - Amount as string or number (e.g., "100.50")
25
+ * @returns Amount in USDC wei (6 decimals)
26
+ *
27
+ * @example
28
+ * ```typescript
29
+ * USDC.toWei("100") // 100_000_000n
30
+ * USDC.toWei("100.50") // 100_500_000n
31
+ * USDC.toWei(100) // 100_000_000n
32
+ * ```
33
+ */
34
+ toWei(amount: string | number): bigint;
35
+ /**
36
+ * Convert USDC wei to human-readable string
37
+ *
38
+ * SECURITY FIX (MEDIUM-6): Uses pure BigInt arithmetic to prevent precision loss
39
+ *
40
+ * @param weiAmount - Amount in USDC wei
41
+ * @param decimals - Number of decimal places to show (default: 2)
42
+ * @returns Formatted string (e.g., "100.50")
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * USDC.fromWei(100_500_000n) // "100.50"
47
+ * USDC.fromWei(100_000_000n) // "100.00"
48
+ * USDC.fromWei(100_126_000n, 4) // "100.1260"
49
+ * ```
50
+ */
51
+ fromWei(weiAmount: bigint | string, decimals?: number): string;
52
+ /**
53
+ * Format USDC amount with currency symbol
54
+ *
55
+ * @param weiAmount - Amount in USDC wei
56
+ * @returns Formatted string with USDC suffix (e.g., "100.50 USDC")
57
+ */
58
+ format(weiAmount: bigint | string): string;
59
+ /**
60
+ * Check if amount meets minimum transaction requirement
61
+ *
62
+ * @param weiAmount - Amount in USDC wei
63
+ * @returns true if amount >= $0.05
64
+ */
65
+ meetsMinimum(weiAmount: bigint | string): boolean;
66
+ };
67
+ /**
68
+ * Deadline utilities
69
+ */
70
+ export declare const Deadline: {
71
+ /**
72
+ * Create deadline N hours from now
73
+ *
74
+ * @param hours - Number of hours from now
75
+ * @returns Unix timestamp in seconds
76
+ *
77
+ * @example
78
+ * ```typescript
79
+ * Deadline.hoursFromNow(24) // timestamp 24 hours from now
80
+ * ```
81
+ */
82
+ hoursFromNow(hours: number): number;
83
+ /**
84
+ * Create deadline N days from now
85
+ *
86
+ * @param days - Number of days from now
87
+ * @returns Unix timestamp in seconds
88
+ *
89
+ * @example
90
+ * ```typescript
91
+ * Deadline.daysFromNow(7) // timestamp 7 days from now
92
+ * ```
93
+ */
94
+ daysFromNow(days: number): number;
95
+ /**
96
+ * Create deadline at specific date
97
+ *
98
+ * @param date - Date object or ISO string
99
+ * @returns Unix timestamp in seconds
100
+ *
101
+ * @example
102
+ * ```typescript
103
+ * Deadline.at(new Date('2025-01-01'))
104
+ * Deadline.at('2025-01-01T00:00:00Z')
105
+ * ```
106
+ */
107
+ at(date: Date | string): number;
108
+ /**
109
+ * Check if deadline has passed
110
+ *
111
+ * @param deadline - Unix timestamp in seconds
112
+ * @returns true if deadline is in the past
113
+ */
114
+ isPast(deadline: number): boolean;
115
+ /**
116
+ * Get time remaining until deadline
117
+ *
118
+ * @param deadline - Unix timestamp in seconds
119
+ * @returns Time remaining in seconds (negative if past)
120
+ */
121
+ timeRemaining(deadline: number): number;
122
+ /**
123
+ * Format deadline as human-readable string
124
+ *
125
+ * @param deadline - Unix timestamp in seconds
126
+ * @returns Human-readable string (e.g., "in 2 hours", "expired 1 day ago")
127
+ */
128
+ format(deadline: number): string;
129
+ };
130
+ /**
131
+ * Address utilities
132
+ */
133
+ export declare const Address: {
134
+ /**
135
+ * Normalize address to lowercase with 0x prefix
136
+ *
137
+ * @param address - Ethereum address
138
+ * @returns Normalized address
139
+ */
140
+ normalize(address: string): string;
141
+ /**
142
+ * Check if two addresses are the same (case-insensitive)
143
+ *
144
+ * @param a - First address
145
+ * @param b - Second address
146
+ * @returns true if addresses match
147
+ */
148
+ equals(a: string, b: string): boolean;
149
+ /**
150
+ * Truncate address for display
151
+ *
152
+ * @param address - Ethereum address
153
+ * @param chars - Characters to show on each side (default: 4)
154
+ * @returns Truncated address (e.g., "0x1234...5678")
155
+ */
156
+ truncate(address: string, chars?: number): string;
157
+ /**
158
+ * Check if string is valid Ethereum address format
159
+ *
160
+ * @param address - String to check
161
+ * @returns true if valid address format
162
+ */
163
+ isValid(address: string): boolean;
164
+ /**
165
+ * Check if address is zero address
166
+ *
167
+ * @param address - Ethereum address
168
+ * @returns true if zero address
169
+ */
170
+ isZero(address: string): boolean;
171
+ };
172
+ /**
173
+ * Bytes32 utilities
174
+ */
175
+ export declare const Bytes32: {
176
+ /**
177
+ * Check if string is valid bytes32 format
178
+ *
179
+ * @param value - String to check
180
+ * @returns true if valid bytes32 format
181
+ */
182
+ isValid(value: string): boolean;
183
+ /**
184
+ * Normalize bytes32 to lowercase
185
+ *
186
+ * @param value - Bytes32 string
187
+ * @returns Normalized lowercase string
188
+ */
189
+ normalize(value: string): string;
190
+ /**
191
+ * Check if two bytes32 values are equal
192
+ *
193
+ * @param a - First value
194
+ * @param b - Second value
195
+ * @returns true if equal
196
+ */
197
+ equals(a: string, b: string): boolean;
198
+ /**
199
+ * Check if bytes32 is zero
200
+ *
201
+ * @param value - Bytes32 string
202
+ * @returns true if zero
203
+ */
204
+ isZero(value: string): boolean;
205
+ /**
206
+ * Create zero bytes32
207
+ *
208
+ * @returns Zero bytes32 string
209
+ */
210
+ zero(): string;
211
+ /**
212
+ * Truncate bytes32 for display
213
+ *
214
+ * @param value - Bytes32 string
215
+ * @param chars - Characters to show on each side (default: 6)
216
+ * @returns Truncated string (e.g., "0x123456...abcdef")
217
+ */
218
+ truncate(value: string, chars?: number): string;
219
+ };
220
+ /**
221
+ * State machine utilities
222
+ */
223
+ export declare const State: {
224
+ /**
225
+ * Valid ACTP states
226
+ */
227
+ STATES: readonly ["INITIATED", "QUOTED", "COMMITTED", "IN_PROGRESS", "DELIVERED", "SETTLED", "DISPUTED", "CANCELLED"];
228
+ /**
229
+ * Terminal states (no further transitions)
230
+ */
231
+ TERMINAL: readonly ["SETTLED", "CANCELLED"];
232
+ /**
233
+ * Check if state is terminal
234
+ *
235
+ * @param state - State to check
236
+ * @returns true if terminal state
237
+ */
238
+ isTerminal(state: string): boolean;
239
+ /**
240
+ * Check if state is valid
241
+ *
242
+ * @param state - State to check
243
+ * @returns true if valid state
244
+ */
245
+ isValid(state: string): boolean;
246
+ /**
247
+ * Get valid next states from current state
248
+ *
249
+ * SECURITY FIX (CRITICAL-1): Must match ACTPKernel contract state machine exactly
250
+ * Per CLAUDE.md §Architecture Overview - ACTP Protocol State Machine
251
+ *
252
+ * @param currentState - Current state
253
+ * @returns Array of valid next states
254
+ */
255
+ validTransitions(currentState: string): string[];
256
+ /**
257
+ * Check if transition is valid
258
+ *
259
+ * @param from - Current state
260
+ * @param to - Target state
261
+ * @returns true if transition is valid
262
+ */
263
+ canTransition(from: string, to: string): boolean;
264
+ };
265
+ /**
266
+ * Dispute window utilities
267
+ */
268
+ export declare const DisputeWindow: {
269
+ /**
270
+ * Default dispute window in seconds (2 days)
271
+ */
272
+ DEFAULT: number;
273
+ /**
274
+ * Minimum dispute window in seconds (1 hour)
275
+ */
276
+ MIN: number;
277
+ /**
278
+ * Maximum dispute window in seconds (30 days)
279
+ */
280
+ MAX: number;
281
+ /**
282
+ * Convert hours to seconds
283
+ */
284
+ hours(h: number): number;
285
+ /**
286
+ * Convert days to seconds
287
+ */
288
+ days(d: number): number;
289
+ /**
290
+ * Check if dispute window is still active
291
+ *
292
+ * @param completedAt - Completion timestamp
293
+ * @param windowSeconds - Dispute window in seconds
294
+ * @returns true if window is still active
295
+ */
296
+ isActive(completedAt: number, windowSeconds: number): boolean;
297
+ /**
298
+ * Get time remaining in dispute window
299
+ *
300
+ * @param completedAt - Completion timestamp
301
+ * @param windowSeconds - Dispute window in seconds
302
+ * @returns Seconds remaining (0 if expired)
303
+ */
304
+ remaining(completedAt: number, windowSeconds: number): number;
305
+ };
306
+ /**
307
+ * ============================================================================
308
+ * Convenience Wrappers for Common Operations
309
+ * ============================================================================
310
+ */
311
+ /**
312
+ * Parse USDC amount string to wei (6 decimals)
313
+ *
314
+ * Convenience wrapper for USDC.toWei()
315
+ *
316
+ * @param amount - Amount in USDC (e.g., "100" or "0.50")
317
+ * @returns BigInt in wei (e.g., 100000000n for $100)
318
+ *
319
+ * @example
320
+ * ```typescript
321
+ * parseUSDC("100") // 100_000_000n
322
+ * parseUSDC("0.50") // 500_000n
323
+ * parseUSDC(100) // 100_000_000n
324
+ * ```
325
+ */
326
+ export declare function parseUSDC(amount: string | number): bigint;
327
+ /**
328
+ * Format USDC wei to human-readable string
329
+ *
330
+ * Convenience wrapper for USDC.fromWei()
331
+ *
332
+ * @param wei - Amount in wei (BigInt or string)
333
+ * @returns Formatted string (e.g., "100.00")
334
+ *
335
+ * @example
336
+ * ```typescript
337
+ * formatUSDC(100_000_000n) // "100.00"
338
+ * formatUSDC("100000000") // "100.00"
339
+ * formatUSDC(500_000n) // "0.50"
340
+ * ```
341
+ */
342
+ export declare function formatUSDC(wei: bigint | string): string;
343
+ /**
344
+ * Shorten Ethereum address for display
345
+ *
346
+ * Convenience wrapper for Address.truncate()
347
+ *
348
+ * @param address - Full Ethereum address
349
+ * @param chars - Characters to show on each side (default: 4)
350
+ * @returns Shortened address (e.g., "0x1234...abcd")
351
+ *
352
+ * @example
353
+ * ```typescript
354
+ * shortenAddress("0x1234567890123456789012345678901234567890") // "0x1234...7890"
355
+ * shortenAddress("0x1234567890123456789012345678901234567890", 6) // "0x123456...567890"
356
+ * ```
357
+ */
358
+ export declare function shortenAddress(address: string, chars?: number): string;
359
+ /**
360
+ * ============================================================================
361
+ * Service Metadata Utilities
362
+ *
363
+ * SECURITY FIX (CRITICAL): ACTPKernel expects bytes32 serviceHash, not raw strings.
364
+ * These utilities handle proper hashing and encoding of service metadata.
365
+ * ============================================================================
366
+ */
367
+ /**
368
+ * Service metadata structure
369
+ */
370
+ export interface ServiceMetadata {
371
+ service: string;
372
+ input?: unknown;
373
+ version?: string;
374
+ timestamp?: number;
375
+ }
376
+ /**
377
+ * Service metadata utilities for ACTP transactions
378
+ *
379
+ * SECURITY FIX (CRITICAL): The ACTPKernel contract expects a bytes32 serviceHash,
380
+ * not a raw JSON string. This utility properly hashes metadata before on-chain calls.
381
+ */
382
+ export declare const ServiceHash: {
383
+ /**
384
+ * Create canonical JSON from service metadata
385
+ *
386
+ * SECURITY: Uses deterministic key ordering to ensure consistent hashes
387
+ *
388
+ * @param metadata - Service metadata object
389
+ * @returns Canonical JSON string
390
+ */
391
+ toCanonical(metadata: ServiceMetadata): string;
392
+ /**
393
+ * Hash service metadata to bytes32 using keccak256
394
+ *
395
+ * SECURITY FIX (CRITICAL): This is what should be passed to ACTPKernel.createTransaction()
396
+ *
397
+ * @param metadata - Service metadata (string or object)
398
+ * @returns bytes32 hash string (0x-prefixed, 64 hex chars)
399
+ *
400
+ * @example
401
+ * ```typescript
402
+ * const hash = ServiceHash.hash({ service: 'echo', input: 'hello' });
403
+ * // Returns: 0x1234...abcd (bytes32)
404
+ * ```
405
+ */
406
+ hash(metadata: ServiceMetadata | string): string;
407
+ /**
408
+ * Create service metadata from legacy format
409
+ *
410
+ * Parses the old "service:X;input:Y" format into structured metadata
411
+ *
412
+ * @param legacyFormat - Legacy service description string
413
+ * @returns Parsed ServiceMetadata or null if invalid
414
+ */
415
+ fromLegacy(legacyFormat: string): ServiceMetadata | null;
416
+ /**
417
+ * Extract service name from metadata hash (requires off-chain lookup)
418
+ *
419
+ * NOTE: The hash cannot be reversed. This is a helper for when you have
420
+ * both the hash and the original metadata stored off-chain.
421
+ *
422
+ * @param metadata - Original metadata
423
+ * @returns Service name
424
+ */
425
+ getServiceName(metadata: ServiceMetadata | string): string;
426
+ /**
427
+ * Validate bytes32 format
428
+ *
429
+ * @param value - Value to check
430
+ * @returns true if valid bytes32 format
431
+ */
432
+ isValidHash(value: string): boolean;
433
+ /**
434
+ * Zero hash (empty service metadata)
435
+ */
436
+ ZERO: string;
437
+ };
438
+ /**
439
+ * Hash service description for on-chain storage
440
+ *
441
+ * Convenience function for ServiceHash.hash()
442
+ *
443
+ * @param service - Service name
444
+ * @param input - Input data (optional)
445
+ * @returns bytes32 hash
446
+ *
447
+ * @example
448
+ * ```typescript
449
+ * const hash = hashServiceMetadata('echo', { text: 'hello' });
450
+ * ```
451
+ */
452
+ export declare function hashServiceMetadata(service: string, input?: unknown): string;
453
+ //# sourceMappingURL=Helpers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Helpers.d.ts","sourceRoot":"","sources":["../../src/utils/Helpers.ts"],"names":[],"mappings":"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"}