@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,119 +1,503 @@
1
1
  "use strict";
2
+ /**
3
+ * ACTPClient - Main entry point for AGIRAILS SDK
4
+ *
5
+ * Provides the unified API for interacting with the ACTP protocol
6
+ * through three different abstraction levels:
7
+ * - `beginner`: High-level, opinionated API for simple use cases
8
+ * - `intermediate`: Balanced API with more control
9
+ * - `advanced`: Direct protocol access for full control
10
+ *
11
+ * @module ACTPClient
12
+ *
13
+ * @example
14
+ * ```typescript
15
+ * // Create client in mock mode
16
+ * const client = await ACTPClient.create({
17
+ * mode: 'mock',
18
+ * requesterAddress: '0x1234...',
19
+ * });
20
+ *
21
+ * // Beginner API - simplest approach
22
+ * const result = await client.beginner.pay({
23
+ * to: '0xProvider...',
24
+ * amount: '100',
25
+ * });
26
+ *
27
+ * // Intermediate API - more control
28
+ * const txId = await client.intermediate.createTransaction({
29
+ * provider: '0xProvider...',
30
+ * amount: '100',
31
+ * });
32
+ * await client.intermediate.linkEscrow(txId);
33
+ *
34
+ * // Advanced API - direct protocol access
35
+ * const tx = await client.advanced.getTransaction(txId);
36
+ * ```
37
+ */
38
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
39
+ if (k2 === undefined) k2 = k;
40
+ var desc = Object.getOwnPropertyDescriptor(m, k);
41
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
42
+ desc = { enumerable: true, get: function() { return m[k]; } };
43
+ }
44
+ Object.defineProperty(o, k2, desc);
45
+ }) : (function(o, m, k, k2) {
46
+ if (k2 === undefined) k2 = k;
47
+ o[k2] = m[k];
48
+ }));
49
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
50
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
51
+ }) : function(o, v) {
52
+ o["default"] = v;
53
+ });
54
+ var __importStar = (this && this.__importStar) || function (mod) {
55
+ if (mod && mod.__esModule) return mod;
56
+ var result = {};
57
+ if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
58
+ __setModuleDefault(result, mod);
59
+ return result;
60
+ };
2
61
  Object.defineProperty(exports, "__esModule", { value: true });
3
62
  exports.ACTPClient = void 0;
63
+ const path = __importStar(require("path"));
64
+ const os = __importStar(require("os"));
65
+ const fs = __importStar(require("fs"));
4
66
  const ethers_1 = require("ethers");
5
- const ACTPKernel_1 = require("./protocol/ACTPKernel");
6
- const EscrowVault_1 = require("./protocol/EscrowVault");
7
- const EventMonitor_1 = require("./protocol/EventMonitor");
8
- const ProofGenerator_1 = require("./protocol/ProofGenerator");
9
- const MessageSigner_1 = require("./protocol/MessageSigner");
10
- const QuoteBuilder_1 = require("./builders/QuoteBuilder");
67
+ const MockRuntime_1 = require("./runtime/MockRuntime");
68
+ const MockStateManager_1 = require("./runtime/MockStateManager");
69
+ const BlockchainRuntime_1 = require("./runtime/BlockchainRuntime");
70
+ const BeginnerAdapter_1 = require("./adapters/BeginnerAdapter");
71
+ const IntermediateAdapter_1 = require("./adapters/IntermediateAdapter");
11
72
  const networks_1 = require("./config/networks");
12
- const errors_1 = require("./errors");
13
- const EASHelper_1 = require("./protocol/EASHelper");
14
- const NonceManager_1 = require("./utils/NonceManager");
15
- class ACTPClient {
16
- constructor(config) {
17
- this.validateConfig(config);
18
- this.networkConfig = (0, networks_1.getNetwork)(config.network);
19
- if (config.contracts) {
20
- this.networkConfig = {
21
- ...this.networkConfig,
22
- contracts: {
23
- ...this.networkConfig.contracts,
24
- ...config.contracts
25
- }
26
- };
27
- }
28
- if (config.gasSettings) {
29
- this.networkConfig = {
30
- ...this.networkConfig,
31
- gasSettings: {
32
- ...this.networkConfig.gasSettings,
33
- ...config.gasSettings
34
- }
35
- };
73
+ // ============================================================================
74
+ // Security: Path Validation
75
+ // ============================================================================
76
+ /**
77
+ * Validates that a state directory path is safe to use.
78
+ *
79
+ * SECURITY: Prevents path traversal attacks by ensuring:
80
+ * 1. No '..' components in the path
81
+ * 2. No symbolic links that could escape the intended directory
82
+ * 3. Path resolves to a location within home directory or current working directory
83
+ *
84
+ * @param stateDirectory - The directory path to validate
85
+ * @throws Error if path is unsafe
86
+ */
87
+ function validateStateDirectory(stateDirectory) {
88
+ // Check for path traversal characters
89
+ if (stateDirectory.includes('..')) {
90
+ throw new Error('stateDirectory cannot contain path traversal characters (..). ' +
91
+ 'Use absolute paths only for security.');
92
+ }
93
+ // Resolve the path to get the absolute path
94
+ const resolvedPath = path.resolve(stateDirectory);
95
+ // If path exists, reject symlinks and use realpath for boundary checks.
96
+ // This blocks symlink escapes like "~/project" -> "/etc".
97
+ let effectivePath = resolvedPath;
98
+ if (fs.existsSync(resolvedPath)) {
99
+ const st = fs.lstatSync(resolvedPath);
100
+ if (st.isSymbolicLink()) {
101
+ throw new Error('stateDirectory cannot be a symbolic link. ' +
102
+ `Path "${stateDirectory}" resolves to a symlink at "${resolvedPath}".`);
36
103
  }
37
- Object.freeze(this.networkConfig.contracts);
38
- Object.freeze(this.networkConfig.gasSettings);
39
- Object.freeze(this.networkConfig);
40
- if (config.provider) {
41
- this.provider = config.provider;
104
+ if (!st.isDirectory()) {
105
+ throw new Error(`stateDirectory must be a directory. Path "${resolvedPath}" is not a directory.`);
42
106
  }
43
- else {
44
- const rpcUrl = config.rpcUrl || this.networkConfig.rpcUrl;
45
- this.provider = new ethers_1.ethers.JsonRpcProvider(rpcUrl, this.networkConfig.chainId);
107
+ effectivePath = fs.realpathSync(resolvedPath);
108
+ }
109
+ // Get safe base directories
110
+ const homeDir = os.homedir();
111
+ const cwd = process.cwd();
112
+ // SECURITY FIX (C-5): Use path.relative() instead of startsWith()
113
+ // to handle case-insensitive filesystems (macOS, Windows) correctly.
114
+ // path.relative() returns a path starting with '..' if target is outside base.
115
+ const relativeToHome = path.relative(homeDir, effectivePath);
116
+ const relativeToCwd = path.relative(cwd, effectivePath);
117
+ // Check if path escapes the boundary (starts with '..' or is absolute)
118
+ const isUnderHome = !relativeToHome.startsWith('..') && !path.isAbsolute(relativeToHome);
119
+ const isUnderCwd = !relativeToCwd.startsWith('..') && !path.isAbsolute(relativeToCwd);
120
+ if (!isUnderHome && !isUnderCwd) {
121
+ throw new Error('stateDirectory must be within home directory or current working directory. ' +
122
+ `Resolved path "${resolvedPath}" is outside allowed boundaries.`);
123
+ }
124
+ // Additional check: Ensure path doesn't contain null bytes (can bypass validation)
125
+ if (stateDirectory.includes('\0')) {
126
+ throw new Error('stateDirectory contains invalid null byte character');
127
+ }
128
+ }
129
+ // ============================================================================
130
+ // Type Guards
131
+ // ============================================================================
132
+ /**
133
+ * Type guard to check if runtime is MockRuntime.
134
+ *
135
+ * @param runtime - Runtime to check
136
+ * @returns True if runtime is IMockRuntime
137
+ */
138
+ function isMockRuntime(runtime) {
139
+ return 'reset' in runtime && typeof runtime.reset === 'function';
140
+ }
141
+ // ============================================================================
142
+ // ACTPClient Class
143
+ // ============================================================================
144
+ /**
145
+ * ACTPClient - Main entry point for AGIRAILS SDK.
146
+ *
147
+ * This class provides a unified interface to the ACTP protocol through
148
+ * three abstraction levels, catering to developers with different needs:
149
+ *
150
+ * **Beginner API** (`client.beginner`):
151
+ * - Simplest possible interface
152
+ * - Smart defaults (24h deadline, 2-day dispute window)
153
+ * - User-friendly inputs (strings, no BigInt)
154
+ * - Perfect for: Quick prototypes, simple integrations
155
+ *
156
+ * **Intermediate API** (`client.intermediate`):
157
+ * - Explicit lifecycle methods
158
+ * - More control over transaction flow
159
+ * - Still with user-friendly input parsing
160
+ * - Perfect for: Production apps needing control
161
+ *
162
+ * **Advanced API** (`client.advanced`):
163
+ * - Direct access to protocol runtime
164
+ * - Full control over all parameters
165
+ * - Protocol-level types (BigInt, timestamps)
166
+ * - Perfect for: Power users, custom integrations
167
+ *
168
+ * @example
169
+ * ```typescript
170
+ * // Create client
171
+ * const client = await ACTPClient.create({
172
+ * mode: 'mock',
173
+ * requesterAddress: '0xRequester...',
174
+ * });
175
+ *
176
+ * // Three ways to create a transaction:
177
+ *
178
+ * // 1. Beginner: One call does everything
179
+ * await client.beginner.pay({ to: '0xProvider', amount: '100' });
180
+ *
181
+ * // 2. Intermediate: Explicit steps
182
+ * const txId = await client.intermediate.createTransaction({
183
+ * provider: '0xProvider',
184
+ * amount: '100',
185
+ * });
186
+ * await client.intermediate.linkEscrow(txId);
187
+ *
188
+ * // 3. Advanced: Full control
189
+ * const txId = await client.advanced.createTransaction({
190
+ * provider: '0xProvider',
191
+ * requester: '0xRequester',
192
+ * amount: '100000000', // wei
193
+ * deadline: Math.floor(Date.now() / 1000) + 86400,
194
+ * disputeWindow: 172800,
195
+ * });
196
+ * ```
197
+ */
198
+ class ACTPClient {
199
+ /**
200
+ * Private constructor - use ACTPClient.create() factory method.
201
+ */
202
+ constructor(runtime, requesterAddress, info, easHelper) {
203
+ this.runtime = runtime;
204
+ this.info = info;
205
+ this.easHelper = easHelper;
206
+ this.beginner = new BeginnerAdapter_1.BeginnerAdapter(runtime, requesterAddress, easHelper);
207
+ this.intermediate = new IntermediateAdapter_1.IntermediateAdapter(runtime, requesterAddress, easHelper);
208
+ }
209
+ // ==========================================================================
210
+ // Factory Method
211
+ // ==========================================================================
212
+ /**
213
+ * Creates a new ACTPClient instance.
214
+ *
215
+ * This is the primary way to instantiate an ACTPClient.
216
+ * It handles runtime initialization based on the specified mode.
217
+ *
218
+ * @param config - Client configuration
219
+ * @returns Promise resolving to initialized ACTPClient
220
+ * @throws {Error} If mode is not supported (only 'mock' currently)
221
+ *
222
+ * @example
223
+ * ```typescript
224
+ * // Mock mode (local development)
225
+ * const client = await ACTPClient.create({
226
+ * mode: 'mock',
227
+ * requesterAddress: '0x1234...',
228
+ * });
229
+ *
230
+ * // Mock mode with custom state directory
231
+ * const client = await ACTPClient.create({
232
+ * mode: 'mock',
233
+ * requesterAddress: '0x1234...',
234
+ * stateDirectory: '/custom/path/.actp',
235
+ * });
236
+ *
237
+ * // Custom runtime (for testing)
238
+ * const customRuntime = new MockRuntime();
239
+ * const client = await ACTPClient.create({
240
+ * mode: 'mock',
241
+ * requesterAddress: '0x1234...',
242
+ * runtime: customRuntime,
243
+ * });
244
+ * ```
245
+ */
246
+ static async create(config) {
247
+ // Validate requester address
248
+ if (!config.requesterAddress) {
249
+ throw new Error('requesterAddress is required');
46
250
  }
47
- if (config.signer) {
48
- this.signer = config.signer;
251
+ if (!/^0x[a-fA-F0-9]{40}$/.test(config.requesterAddress)) {
252
+ throw new Error(`Invalid requesterAddress: "${config.requesterAddress}". ` +
253
+ 'Must be a valid Ethereum address (0x-prefixed, 40 hex chars)');
49
254
  }
50
- else if (config.privateKey) {
51
- this.signer = new ethers_1.Wallet(config.privateKey, this.provider);
255
+ let runtime;
256
+ let stateDirectory;
257
+ let easHelper;
258
+ // If custom runtime provided, use it directly
259
+ if (config.runtime) {
260
+ runtime = config.runtime;
52
261
  }
53
262
  else {
54
- throw new errors_1.ValidationError('signer', 'Either privateKey or signer must be provided');
55
- }
56
- this.nonceManager = new NonceManager_1.InMemoryNonceManager();
57
- if (config.rpcUrl) {
58
- }
59
- this.kernel = new ACTPKernel_1.ACTPKernel(this.networkConfig.contracts.actpKernel, this.signer, this.networkConfig.gasSettings);
60
- this.escrow = new EscrowVault_1.EscrowVault(this.networkConfig.contracts.escrowVault, this.signer, this.networkConfig.gasSettings);
61
- this.events = new EventMonitor_1.EventMonitor(this.kernel['contract'], this.escrow['contract']);
62
- this.proofGenerator = new ProofGenerator_1.ProofGenerator();
63
- this.messageSigner = new MessageSigner_1.MessageSigner(this.signer);
64
- this.quote = new QuoteBuilder_1.QuoteBuilder(this.signer, this.nonceManager, this.ipfs);
65
- if (config.eas) {
66
- this.eas = new EASHelper_1.EASHelper(this.signer, config.eas);
263
+ // Initialize runtime based on mode
264
+ switch (config.mode) {
265
+ case 'mock': {
266
+ // SECURITY FIX: Enhanced path validation to prevent path traversal attacks
267
+ if (config.stateDirectory) {
268
+ validateStateDirectory(config.stateDirectory);
269
+ }
270
+ // MockStateManager takes projectRoot as string parameter
271
+ const stateManager = new MockStateManager_1.MockStateManager(config.stateDirectory);
272
+ runtime = new MockRuntime_1.MockRuntime(stateManager);
273
+ stateDirectory = config.stateDirectory;
274
+ // EASHelper not needed in mock mode
275
+ break;
276
+ }
277
+ case 'testnet':
278
+ case 'mainnet': {
279
+ // Validate required parameters for blockchain modes
280
+ if (!config.privateKey) {
281
+ throw new Error(`privateKey is required for ${config.mode} mode`);
282
+ }
283
+ // Map mode to network config
284
+ const network = config.mode === 'testnet' ? 'base-sepolia' : 'base-mainnet';
285
+ // Default RPC URL from network config if not provided
286
+ // This makes Level0/Agent usable on testnet without forcing users to pass rpcUrl explicitly.
287
+ const rpcUrl = config.rpcUrl ?? (0, networks_1.getNetwork)(network).rpcUrl;
288
+ // Optional persistent state directory can be used for:
289
+ // - mock mode state (mock-state.json)
290
+ // - blockchain mode safety state (e.g., used-attestation replay protection)
291
+ if (config.stateDirectory) {
292
+ validateStateDirectory(config.stateDirectory);
293
+ }
294
+ // Create ethers provider and signer
295
+ const provider = new ethers_1.ethers.JsonRpcProvider(rpcUrl);
296
+ const signer = new ethers_1.ethers.Wallet(config.privateKey, provider);
297
+ const requireAttestation = config.requireAttestation ?? Boolean(config.easConfig);
298
+ // Create BlockchainRuntime
299
+ const blockchainRuntime = new BlockchainRuntime_1.BlockchainRuntime({
300
+ network,
301
+ signer,
302
+ provider,
303
+ contracts: config.contracts,
304
+ gasSettings: config.gasSettings,
305
+ easConfig: config.easConfig,
306
+ requireAttestation,
307
+ stateDirectory: config.stateDirectory,
308
+ });
309
+ // Initialize async components
310
+ await blockchainRuntime.initialize();
311
+ runtime = blockchainRuntime;
312
+ // SECURITY FIX (C-4): Use the runtime's initialized EASHelper so
313
+ // adapters and runtime share the same tracker + verification logic.
314
+ if (config.easConfig) {
315
+ easHelper = blockchainRuntime.getEASHelper();
316
+ }
317
+ break;
318
+ }
319
+ default:
320
+ throw new Error(`Unknown mode: "${config.mode}". ` +
321
+ 'Supported modes: "mock", "testnet", "mainnet"');
322
+ }
67
323
  }
324
+ // Normalize address to lowercase for consistency
325
+ const normalizedAddress = config.requesterAddress.toLowerCase();
326
+ const info = {
327
+ mode: config.mode,
328
+ address: normalizedAddress,
329
+ stateDirectory,
330
+ };
331
+ // SECURITY FIX (C-4): Pass EASHelper to adapters for attestation verification
332
+ return new ACTPClient(runtime, normalizedAddress, info, easHelper);
68
333
  }
69
- static async create(config) {
70
- const client = new ACTPClient(config);
71
- await client.messageSigner.initDomain(client.networkConfig.contracts.actpKernel);
72
- return client;
73
- }
74
- async initialize() {
75
- await this.messageSigner.initDomain(this.networkConfig.contracts.actpKernel);
334
+ // ==========================================================================
335
+ // Public Methods
336
+ // ==========================================================================
337
+ /**
338
+ * Advanced-level API.
339
+ *
340
+ * Provides direct access to the underlying protocol runtime.
341
+ * Use this when you need full control over all parameters.
342
+ *
343
+ * This is the same as accessing `client.runtime` directly.
344
+ *
345
+ * @example
346
+ * ```typescript
347
+ * // Direct runtime access
348
+ * const txId = await client.advanced.createTransaction({
349
+ * provider: '0xProvider',
350
+ * requester: '0xRequester',
351
+ * amount: '100000000', // wei
352
+ * deadline: Math.floor(Date.now() / 1000) + 86400,
353
+ * });
354
+ *
355
+ * // Get transaction details
356
+ * const tx = await client.advanced.getTransaction(txId);
357
+ *
358
+ * // Time manipulation (mock mode only - requires IMockRuntime cast)
359
+ * import { IMockRuntime } from './runtime/IACTPRuntime';
360
+ * if (client.getMode() === 'mock') {
361
+ * (client.advanced as IMockRuntime).time.advanceTime(3600); // Advance 1 hour
362
+ * }
363
+ * ```
364
+ */
365
+ get advanced() {
366
+ return this.runtime;
76
367
  }
77
- async getAddress() {
78
- return await this.signer.getAddress();
368
+ /**
369
+ * Gets the requester's Ethereum address.
370
+ *
371
+ * This is the address used as the "from" address for all transactions
372
+ * created through this client.
373
+ *
374
+ * @returns The requester's Ethereum address (normalized to lowercase)
375
+ *
376
+ * @example
377
+ * ```typescript
378
+ * const address = client.getAddress();
379
+ * console.log('My address:', address);
380
+ * // '0x1111111111111111111111111111111111111111'
381
+ * ```
382
+ */
383
+ getAddress() {
384
+ return this.info.address;
79
385
  }
80
- getNetworkConfig() {
81
- return this.networkConfig;
386
+ /**
387
+ * Gets the current operating mode.
388
+ *
389
+ * @returns The client's operating mode ('mock', 'testnet', or 'mainnet')
390
+ *
391
+ * @example
392
+ * ```typescript
393
+ * if (client.getMode() === 'mock') {
394
+ * console.log('Running in local development mode');
395
+ * }
396
+ * ```
397
+ */
398
+ getMode() {
399
+ return this.info.mode;
82
400
  }
83
- getProvider() {
84
- return this.provider;
85
- }
86
- async getBlockNumber() {
87
- try {
88
- return await this.provider.getBlockNumber();
401
+ /**
402
+ * Resets the mock state to default.
403
+ *
404
+ * Only available in mock mode. Clears all transactions, escrows,
405
+ * and accounts, resetting to a fresh state.
406
+ *
407
+ * @throws {Error} If not in mock mode or runtime doesn't support reset
408
+ *
409
+ * @example
410
+ * ```typescript
411
+ * // Reset state between test runs
412
+ * await client.reset();
413
+ * ```
414
+ */
415
+ async reset() {
416
+ if (this.info.mode !== 'mock') {
417
+ throw new Error(`reset() is only available in mock mode. Current mode: "${this.info.mode}"`);
89
418
  }
90
- catch (error) {
91
- throw new errors_1.NetworkError(this.networkConfig.name, error.message);
419
+ if (!isMockRuntime(this.runtime)) {
420
+ throw new Error('Runtime does not support reset operation');
92
421
  }
422
+ await this.runtime.reset();
93
423
  }
94
- async getGasPrice() {
95
- try {
96
- const feeData = await this.provider.getFeeData();
97
- return feeData.gasPrice || 0n;
98
- }
99
- catch (error) {
100
- throw new errors_1.NetworkError(this.networkConfig.name, error.message);
101
- }
424
+ /**
425
+ * Custom JSON serialization to prevent private key exposure.
426
+ *
427
+ * SECURITY FIX (HIGH-4): Prevents accidental private key logging
428
+ * when ACTPClient instance is serialized (e.g., JSON.stringify, console.log).
429
+ *
430
+ * @returns Safe serializable object with sensitive data removed
431
+ */
432
+ toJSON() {
433
+ return {
434
+ mode: this.info.mode,
435
+ address: this.info.address,
436
+ stateDirectory: this.info.stateDirectory,
437
+ isInitialized: true,
438
+ // Explicitly exclude: privateKey, signer, provider internals
439
+ _warning: 'Sensitive data (privateKey, signer) excluded for security',
440
+ };
102
441
  }
103
- async releaseEscrowWithVerification(txId, attestationUID) {
104
- if (!this.eas) {
105
- throw new Error('EAS is not configured. Initialize ACTPClient with eas config or use kernel.releaseEscrow() directly (unsafe)');
106
- }
107
- await this.eas.verifyDeliveryAttestation(txId, attestationUID);
108
- await this.kernel.releaseEscrow(txId);
442
+ /**
443
+ * Custom string representation for debugging.
444
+ *
445
+ * SECURITY FIX (HIGH-4): Prevents private key exposure in logs.
446
+ */
447
+ toString() {
448
+ return `ACTPClient(mode=${this.info.mode}, address=${this.info.address})`;
109
449
  }
110
- validateConfig(config) {
111
- if (!config.network) {
112
- throw new errors_1.ValidationError('network', 'Network is required');
450
+ /**
451
+ * Custom inspect for Node.js util.inspect (console.log).
452
+ *
453
+ * SECURITY FIX (HIGH-4): Prevents private key exposure in console output.
454
+ */
455
+ [Symbol.for('nodejs.util.inspect.custom')]() {
456
+ return this.toString();
457
+ }
458
+ /**
459
+ * Mints USDC tokens to an address.
460
+ *
461
+ * Only available in mock mode. Useful for testing scenarios
462
+ * where you need to fund accounts.
463
+ *
464
+ * @param address - Address to mint tokens to
465
+ * @param amount - Amount to mint (in USDC wei, e.g., '1000000' for 1 USDC)
466
+ * @throws {Error} If not in mock mode or runtime doesn't support mintTokens
467
+ *
468
+ * @example
469
+ * ```typescript
470
+ * // Mint 1000 USDC to the requester
471
+ * await client.mintTokens(client.getAddress(), '1000000000'); // 1000 * 10^6
472
+ * ```
473
+ */
474
+ async mintTokens(address, amount) {
475
+ if (this.info.mode !== 'mock') {
476
+ throw new Error(`mintTokens() is only available in mock mode. Current mode: "${this.info.mode}"`);
477
+ }
478
+ if (!isMockRuntime(this.runtime)) {
479
+ throw new Error('Runtime does not support mintTokens operation');
113
480
  }
114
- if (!config.privateKey && !config.signer && !config.provider) {
115
- throw new errors_1.ValidationError('auth', 'Provide either privateKey, signer, or provider with signer access');
481
+ await this.runtime.mintTokens(address, amount);
482
+ }
483
+ /**
484
+ * Gets the USDC balance of an address.
485
+ *
486
+ * @param address - Address to check balance for
487
+ * @returns Promise resolving to balance in USDC wei
488
+ * @throws {Error} If runtime doesn't support getBalance
489
+ *
490
+ * @example
491
+ * ```typescript
492
+ * const balance = await client.getBalance(client.getAddress());
493
+ * console.log('Balance:', balance); // '1000000000' (1000 USDC)
494
+ * ```
495
+ */
496
+ async getBalance(address) {
497
+ if (!isMockRuntime(this.runtime)) {
498
+ throw new Error('Runtime does not support getBalance operation');
116
499
  }
500
+ return this.runtime.getBalance(address);
117
501
  }
118
502
  }
119
503
  exports.ACTPClient = ACTPClient;
@@ -1 +1 @@
1
- {"version":3,"file":"ACTPClient.js","sourceRoot":"","sources":["../src/ACTPClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ACTPClient.js","sourceRoot":"","sources":["../src/ACTPClient.ts"],"names":[],"mappings":"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"}