@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,481 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.DIDManager = void 0;
7
+ const ethers_1 = require("ethers");
8
+ const IdentityRegistry_json_1 = __importDefault(require("../abi/IdentityRegistry.json"));
9
+ const errors_1 = require("../errors");
10
+ const validation_1 = require("../utils/validation");
11
+ /**
12
+ * DIDManager - Manage DID attributes and delegates (AIP-7 §2.2)
13
+ *
14
+ * Interacts with ERC-1056 compatible AGIRAILS Identity Registry.
15
+ * Provides key rotation, delegate management, and attribute storage.
16
+ *
17
+ * @example
18
+ * ```typescript
19
+ * const manager = new DIDManager(registryAddress, signer);
20
+ *
21
+ * // Get identity owner
22
+ * const owner = await manager.getOwner(myAddress);
23
+ *
24
+ * // Add delegate (expires in 1 year)
25
+ * await manager.addDelegate(
26
+ * DelegateType.SIGNING,
27
+ * delegateAddress,
28
+ * 365 * 24 * 60 * 60
29
+ * );
30
+ *
31
+ * // Set service endpoint
32
+ * await manager.setAttribute(
33
+ * AttributeName.SERVICE_ENDPOINT,
34
+ * 'https://api.example.com',
35
+ * 365 * 24 * 60 * 60
36
+ * );
37
+ * ```
38
+ *
39
+ * @security
40
+ * - Only identity owner can add/revoke delegates
41
+ * - Only identity owner can set/revoke attributes
42
+ * - All operations wait for 2 confirmations
43
+ * - Gas limits include 20% safety buffer
44
+ */
45
+ class DIDManager {
46
+ /**
47
+ * Create DIDManager instance
48
+ *
49
+ * @param registryAddress - Address of AGIRAILS Identity Registry (ERC-1056)
50
+ * @param signer - Ethers.js signer (must be identity owner for write operations)
51
+ * @param gasSettings - Optional gas price settings
52
+ */
53
+ constructor(registryAddress, signer, gasSettings) {
54
+ this.registryAddress = registryAddress;
55
+ (0, validation_1.validateAddress)(registryAddress, 'registryAddress');
56
+ this.contract = new ethers_1.Contract(registryAddress, IdentityRegistry_json_1.default, signer);
57
+ this.gasSettings = gasSettings;
58
+ }
59
+ /**
60
+ * Get gas buffer multiplier based on operation complexity
61
+ */
62
+ getGasBufferMultiplier(operation) {
63
+ const buffers = {
64
+ 'changeOwner': 1.30, // 30% - Ownership transfer
65
+ 'addDelegate': 1.25, // 25% - Delegate registration
66
+ 'revokeDelegate': 1.20, // 20% - Delegate removal
67
+ 'setAttribute': 1.30, // 30% - Attribute storage (variable size)
68
+ 'revokeAttribute': 1.20 // 20% - Attribute removal
69
+ };
70
+ return buffers[operation] || 1.20;
71
+ }
72
+ /**
73
+ * Build transaction options with gas settings
74
+ */
75
+ buildTxOptions(estimatedGas, operation = 'default') {
76
+ const bufferMultiplier = this.getGasBufferMultiplier(operation);
77
+ let gasLimit = (estimatedGas * BigInt(Math.round(bufferMultiplier * 100))) / 100n;
78
+ // Cap gas limit (Base L2 safety)
79
+ const MAX_GAS_LIMIT = 10000000n;
80
+ if (gasLimit > MAX_GAS_LIMIT) {
81
+ throw new errors_1.ValidationError('gasLimit', `Estimated gas exceeds maximum safe limit (${MAX_GAS_LIMIT})`);
82
+ }
83
+ const options = { gasLimit };
84
+ if (this.gasSettings?.maxFeePerGas) {
85
+ options.maxFeePerGas = this.gasSettings.maxFeePerGas;
86
+ }
87
+ if (this.gasSettings?.maxPriorityFeePerGas) {
88
+ options.maxPriorityFeePerGas = this.gasSettings.maxPriorityFeePerGas;
89
+ }
90
+ return options;
91
+ }
92
+ /**
93
+ * Get registry contract address
94
+ */
95
+ getAddress() {
96
+ return this.registryAddress;
97
+ }
98
+ /**
99
+ * Get identity owner
100
+ *
101
+ * @param identity - Address to check (if not provided, uses signer address)
102
+ * @returns Current owner address
103
+ *
104
+ * @example
105
+ * ```typescript
106
+ * const owner = await manager.getOwner('0x742d35cc6634c0532925a3b844bc9e7595f0beb');
107
+ * console.log('Identity owner:', owner);
108
+ * ```
109
+ */
110
+ async getOwner(identity) {
111
+ let addr = identity;
112
+ // If no identity provided, try to get from signer
113
+ if (!addr && this.contract.runner && 'getAddress' in this.contract.runner) {
114
+ addr = await this.contract.runner.getAddress();
115
+ }
116
+ if (!addr) {
117
+ throw new errors_1.ValidationError('identity', 'Must provide identity address or signer');
118
+ }
119
+ (0, validation_1.validateAddress)(addr, 'identity');
120
+ const owner = await this.contract.identityOwner(addr);
121
+ return owner;
122
+ }
123
+ /**
124
+ * Change identity owner (key rotation)
125
+ *
126
+ * @param identity - Identity address to update
127
+ * @param newOwner - New owner address
128
+ * @returns Transaction hash
129
+ * @throws TransactionRevertedError if transaction fails
130
+ *
131
+ * @security
132
+ * - Only current owner can change ownership
133
+ * - Waits for 2 confirmations
134
+ * - Validates new owner address
135
+ *
136
+ * @example
137
+ * ```typescript
138
+ * // Rotate key to new address
139
+ * const txHash = await manager.changeOwner(
140
+ * '0x742d35cc6634c0532925a3b844bc9e7595f0beb',
141
+ * '0xNewOwnerAddress...'
142
+ * );
143
+ * console.log('Ownership transferred:', txHash);
144
+ * ```
145
+ */
146
+ async changeOwner(identity, newOwner) {
147
+ (0, validation_1.validateAddress)(identity, 'identity');
148
+ (0, validation_1.validateAddress)(newOwner, 'newOwner');
149
+ try {
150
+ // Estimate gas
151
+ const estimatedGas = await this.contract.changeOwner.estimateGas(identity, newOwner);
152
+ const options = this.buildTxOptions(estimatedGas, 'changeOwner');
153
+ // Send transaction
154
+ const tx = await this.contract.changeOwner(identity, newOwner, options);
155
+ // Wait for 2 confirmations
156
+ await tx.wait(2);
157
+ return tx.hash;
158
+ }
159
+ catch (error) {
160
+ throw new errors_1.TransactionRevertedError('changeOwner', error instanceof Error ? error.message : 'Transaction failed');
161
+ }
162
+ }
163
+ /**
164
+ * Check if delegate is valid
165
+ *
166
+ * @param identity - Identity address
167
+ * @param delegateType - Type of delegate (e.g., DelegateType.SIGNING)
168
+ * @param delegate - Delegate address
169
+ * @returns True if delegate is currently valid
170
+ *
171
+ * @example
172
+ * ```typescript
173
+ * const isValid = await manager.validDelegate(
174
+ * '0x742d35cc...',
175
+ * DelegateType.SIGNING,
176
+ * '0xDelegateAddress...'
177
+ * );
178
+ * console.log('Delegate valid:', isValid);
179
+ * ```
180
+ */
181
+ async validDelegate(identity, delegateType, delegate) {
182
+ (0, validation_1.validateAddress)(identity, 'identity');
183
+ (0, validation_1.validateAddress)(delegate, 'delegate');
184
+ const typeHash = this.stringToBytes32(delegateType);
185
+ const isValid = await this.contract.validDelegate(identity, typeHash, delegate);
186
+ return isValid;
187
+ }
188
+ /**
189
+ * Add delegate (for signing on behalf of identity)
190
+ *
191
+ * @param identity - Identity address
192
+ * @param delegateType - Type of delegate (e.g., DelegateType.SIGNING)
193
+ * @param delegate - Delegate address
194
+ * @param validity - Validity period in seconds
195
+ * @returns Transaction hash
196
+ * @throws TransactionRevertedError if transaction fails
197
+ *
198
+ * @security
199
+ * - Only identity owner can add delegates
200
+ * - Delegate expires after validity period
201
+ * - Waits for 2 confirmations
202
+ *
203
+ * @example
204
+ * ```typescript
205
+ * // Add signing delegate for 1 year
206
+ * const txHash = await manager.addDelegate(
207
+ * '0x742d35cc...',
208
+ * DelegateType.SIGNING,
209
+ * '0xDelegateAddress...',
210
+ * 365 * 24 * 60 * 60 // 1 year in seconds
211
+ * );
212
+ * ```
213
+ */
214
+ async addDelegate(identity, delegateType, delegate, validity) {
215
+ (0, validation_1.validateAddress)(identity, 'identity');
216
+ (0, validation_1.validateAddress)(delegate, 'delegate');
217
+ if (validity <= 0) {
218
+ throw new errors_1.ValidationError('validity', 'Validity must be positive');
219
+ }
220
+ const typeHash = this.stringToBytes32(delegateType);
221
+ try {
222
+ // Estimate gas
223
+ const estimatedGas = await this.contract.addDelegate.estimateGas(identity, typeHash, delegate, validity);
224
+ const options = this.buildTxOptions(estimatedGas, 'addDelegate');
225
+ // Send transaction
226
+ const tx = await this.contract.addDelegate(identity, typeHash, delegate, validity, options);
227
+ // Wait for 2 confirmations
228
+ await tx.wait(2);
229
+ return tx.hash;
230
+ }
231
+ catch (error) {
232
+ throw new errors_1.TransactionRevertedError('addDelegate', error instanceof Error ? error.message : 'Transaction failed');
233
+ }
234
+ }
235
+ /**
236
+ * Revoke delegate
237
+ *
238
+ * @param identity - Identity address
239
+ * @param delegateType - Type of delegate
240
+ * @param delegate - Delegate address to revoke
241
+ * @returns Transaction hash
242
+ * @throws TransactionRevertedError if transaction fails
243
+ *
244
+ * @security
245
+ * - Only identity owner can revoke delegates
246
+ * - Waits for 2 confirmations
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * const txHash = await manager.revokeDelegate(
251
+ * '0x742d35cc...',
252
+ * DelegateType.SIGNING,
253
+ * '0xDelegateAddress...'
254
+ * );
255
+ * ```
256
+ */
257
+ async revokeDelegate(identity, delegateType, delegate) {
258
+ (0, validation_1.validateAddress)(identity, 'identity');
259
+ (0, validation_1.validateAddress)(delegate, 'delegate');
260
+ const typeHash = this.stringToBytes32(delegateType);
261
+ try {
262
+ // Estimate gas
263
+ const estimatedGas = await this.contract.revokeDelegate.estimateGas(identity, typeHash, delegate);
264
+ const options = this.buildTxOptions(estimatedGas, 'revokeDelegate');
265
+ // Send transaction
266
+ const tx = await this.contract.revokeDelegate(identity, typeHash, delegate, options);
267
+ // Wait for 2 confirmations
268
+ await tx.wait(2);
269
+ return tx.hash;
270
+ }
271
+ catch (error) {
272
+ throw new errors_1.TransactionRevertedError('revokeDelegate', error instanceof Error ? error.message : 'Transaction failed');
273
+ }
274
+ }
275
+ /**
276
+ * Set attribute (e.g., service endpoint)
277
+ *
278
+ * @param identity - Identity address
279
+ * @param name - Attribute name (e.g., AttributeName.SERVICE_ENDPOINT)
280
+ * @param value - Attribute value (string, will be encoded to bytes)
281
+ * @param validity - Validity period in seconds
282
+ * @returns Transaction hash
283
+ * @throws TransactionRevertedError if transaction fails
284
+ *
285
+ * @security
286
+ * - Only identity owner can set attributes
287
+ * - Attribute expires after validity period
288
+ * - Waits for 2 confirmations
289
+ *
290
+ * @example
291
+ * ```typescript
292
+ * // Set service endpoint for 1 year
293
+ * const txHash = await manager.setAttribute(
294
+ * '0x742d35cc...',
295
+ * AttributeName.SERVICE_ENDPOINT,
296
+ * 'https://api.example.com/v1',
297
+ * 365 * 24 * 60 * 60
298
+ * );
299
+ * ```
300
+ */
301
+ async setAttribute(identity, name, value, validity) {
302
+ (0, validation_1.validateAddress)(identity, 'identity');
303
+ if (!value || value.length === 0) {
304
+ throw new errors_1.ValidationError('value', 'Attribute value cannot be empty');
305
+ }
306
+ if (validity <= 0) {
307
+ throw new errors_1.ValidationError('validity', 'Validity must be positive');
308
+ }
309
+ const nameHash = this.stringToBytes32(name);
310
+ const valueBytes = (0, ethers_1.toUtf8Bytes)(value);
311
+ try {
312
+ // Estimate gas
313
+ const estimatedGas = await this.contract.setAttribute.estimateGas(identity, nameHash, valueBytes, validity);
314
+ const options = this.buildTxOptions(estimatedGas, 'setAttribute');
315
+ // Send transaction
316
+ const tx = await this.contract.setAttribute(identity, nameHash, valueBytes, validity, options);
317
+ // Wait for 2 confirmations
318
+ await tx.wait(2);
319
+ return tx.hash;
320
+ }
321
+ catch (error) {
322
+ throw new errors_1.TransactionRevertedError('setAttribute', error instanceof Error ? error.message : 'Transaction failed');
323
+ }
324
+ }
325
+ /**
326
+ * Revoke attribute
327
+ *
328
+ * @param identity - Identity address
329
+ * @param name - Attribute name to revoke
330
+ * @param value - Attribute value (must match value set)
331
+ * @returns Transaction hash
332
+ * @throws TransactionRevertedError if transaction fails
333
+ *
334
+ * @security
335
+ * - Only identity owner can revoke attributes
336
+ * - Waits for 2 confirmations
337
+ *
338
+ * @example
339
+ * ```typescript
340
+ * const txHash = await manager.revokeAttribute(
341
+ * '0x742d35cc...',
342
+ * AttributeName.SERVICE_ENDPOINT,
343
+ * 'https://api.example.com/v1'
344
+ * );
345
+ * ```
346
+ */
347
+ async revokeAttribute(identity, name, value) {
348
+ (0, validation_1.validateAddress)(identity, 'identity');
349
+ if (!value || value.length === 0) {
350
+ throw new errors_1.ValidationError('value', 'Attribute value cannot be empty');
351
+ }
352
+ const nameHash = this.stringToBytes32(name);
353
+ const valueBytes = (0, ethers_1.toUtf8Bytes)(value);
354
+ try {
355
+ // Estimate gas
356
+ const estimatedGas = await this.contract.revokeAttribute.estimateGas(identity, nameHash, valueBytes);
357
+ const options = this.buildTxOptions(estimatedGas, 'revokeAttribute');
358
+ // Send transaction
359
+ const tx = await this.contract.revokeAttribute(identity, nameHash, valueBytes, options);
360
+ // Wait for 2 confirmations
361
+ await tx.wait(2);
362
+ return tx.hash;
363
+ }
364
+ catch (error) {
365
+ throw new errors_1.TransactionRevertedError('revokeAttribute', error instanceof Error ? error.message : 'Transaction failed');
366
+ }
367
+ }
368
+ /**
369
+ * Get timestamp of last change for identity
370
+ *
371
+ * @param identity - Identity address
372
+ * @returns Timestamp of last change (seconds since Unix epoch)
373
+ */
374
+ async getChanged(identity) {
375
+ (0, validation_1.validateAddress)(identity, 'identity');
376
+ const changed = await this.contract.changed(identity);
377
+ return changed;
378
+ }
379
+ /**
380
+ * Get nonce for identity (for signed operations)
381
+ *
382
+ * @param identity - Identity address
383
+ * @returns Current nonce
384
+ */
385
+ async getNonce(identity) {
386
+ (0, validation_1.validateAddress)(identity, 'identity');
387
+ const nonce = await this.contract.nonce(identity);
388
+ return nonce;
389
+ }
390
+ /**
391
+ * Convert string to bytes32 hash
392
+ *
393
+ * Used for delegate types and attribute names in ERC-1056
394
+ *
395
+ * @param str - String to convert
396
+ * @returns bytes32 hash (0x-prefixed hex string)
397
+ *
398
+ * @example
399
+ * ```typescript
400
+ * const hash = manager.stringToBytes32('veriKey');
401
+ * // Returns: '0x...' (keccak256 hash)
402
+ * ```
403
+ */
404
+ stringToBytes32(str) {
405
+ // If already a bytes32 hash (0x + 64 hex chars), return as-is
406
+ if (/^0x[0-9a-fA-F]{64}$/.test(str)) {
407
+ return str;
408
+ }
409
+ // Otherwise, hash the string
410
+ return (0, ethers_1.keccak256)((0, ethers_1.toUtf8Bytes)(str));
411
+ }
412
+ /**
413
+ * Listen for DIDOwnerChanged events
414
+ *
415
+ * @param callback - Function to call when owner changes
416
+ * @param identity - Optional filter by identity address
417
+ * @returns Cleanup function to stop listening
418
+ *
419
+ * @example
420
+ * ```typescript
421
+ * const unsubscribe = manager.onOwnerChanged((event) => {
422
+ * console.log('Owner changed:', event);
423
+ * }, '0x742d35cc...');
424
+ *
425
+ * // Later: stop listening
426
+ * unsubscribe();
427
+ * ```
428
+ */
429
+ onOwnerChanged(callback, identity) {
430
+ const filter = identity
431
+ ? this.contract.filters.DIDOwnerChanged(identity)
432
+ : this.contract.filters.DIDOwnerChanged();
433
+ const listener = (identityAddr, owner, previousChange) => {
434
+ callback({ identity: identityAddr, owner, previousChange });
435
+ };
436
+ this.contract.on(filter, listener);
437
+ return () => {
438
+ this.contract.off(filter, listener);
439
+ };
440
+ }
441
+ /**
442
+ * Listen for DIDDelegateChanged events
443
+ *
444
+ * @param callback - Function to call when delegate changes
445
+ * @param identity - Optional filter by identity address
446
+ * @returns Cleanup function to stop listening
447
+ */
448
+ onDelegateChanged(callback, identity) {
449
+ const filter = identity
450
+ ? this.contract.filters.DIDDelegateChanged(identity)
451
+ : this.contract.filters.DIDDelegateChanged();
452
+ const listener = (identityAddr, delegateType, delegate, validTo, previousChange) => {
453
+ callback({ identity: identityAddr, delegateType, delegate, validTo, previousChange });
454
+ };
455
+ this.contract.on(filter, listener);
456
+ return () => {
457
+ this.contract.off(filter, listener);
458
+ };
459
+ }
460
+ /**
461
+ * Listen for DIDAttributeChanged events
462
+ *
463
+ * @param callback - Function to call when attribute changes
464
+ * @param identity - Optional filter by identity address
465
+ * @returns Cleanup function to stop listening
466
+ */
467
+ onAttributeChanged(callback, identity) {
468
+ const filter = identity
469
+ ? this.contract.filters.DIDAttributeChanged(identity)
470
+ : this.contract.filters.DIDAttributeChanged();
471
+ const listener = (identityAddr, name, value, validTo, previousChange) => {
472
+ callback({ identity: identityAddr, name, value, validTo, previousChange });
473
+ };
474
+ this.contract.on(filter, listener);
475
+ return () => {
476
+ this.contract.off(filter, listener);
477
+ };
478
+ }
479
+ }
480
+ exports.DIDManager = DIDManager;
481
+ //# sourceMappingURL=DIDManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DIDManager.js","sourceRoot":"","sources":["../../src/protocol/DIDManager.ts"],"names":[],"mappings":"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"}