@agirails/sdk 2.0.0 → 2.0.1-beta

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/README.md +108 -116
  2. package/dist/ACTPClient.d.ts +33 -456
  3. package/dist/ACTPClient.d.ts.map +1 -1
  4. package/dist/ACTPClient.js +93 -477
  5. package/dist/ACTPClient.js.map +1 -1
  6. package/dist/abi/EscrowVault.json +38 -106
  7. package/dist/builders/DeliveryProofBuilder.d.ts +1 -60
  8. package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
  9. package/dist/builders/DeliveryProofBuilder.js +5 -81
  10. package/dist/builders/DeliveryProofBuilder.js.map +1 -1
  11. package/dist/builders/QuoteBuilder.d.ts +0 -101
  12. package/dist/builders/QuoteBuilder.d.ts.map +1 -1
  13. package/dist/builders/QuoteBuilder.js +3 -120
  14. package/dist/builders/QuoteBuilder.js.map +1 -1
  15. package/dist/builders/index.d.ts +0 -4
  16. package/dist/builders/index.d.ts.map +1 -1
  17. package/dist/builders/index.js +0 -4
  18. package/dist/builders/index.js.map +1 -1
  19. package/dist/config/networks.d.ts +0 -28
  20. package/dist/config/networks.d.ts.map +1 -1
  21. package/dist/config/networks.js +12 -60
  22. package/dist/config/networks.js.map +1 -1
  23. package/dist/errors/index.d.ts +2 -165
  24. package/dist/errors/index.d.ts.map +1 -1
  25. package/dist/errors/index.js +2 -260
  26. package/dist/errors/index.js.map +1 -1
  27. package/dist/index.d.ts +13 -61
  28. package/dist/index.d.ts.map +1 -1
  29. package/dist/index.js +36 -141
  30. package/dist/index.js.map +1 -1
  31. package/dist/protocol/ACTPKernel.d.ts +2 -229
  32. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  33. package/dist/protocol/ACTPKernel.js +33 -367
  34. package/dist/protocol/ACTPKernel.js.map +1 -1
  35. package/dist/protocol/EASHelper.d.ts +2 -57
  36. package/dist/protocol/EASHelper.d.ts.map +1 -1
  37. package/dist/protocol/EASHelper.js +37 -230
  38. package/dist/protocol/EASHelper.js.map +1 -1
  39. package/dist/protocol/EscrowVault.d.ts +2 -93
  40. package/dist/protocol/EscrowVault.d.ts.map +1 -1
  41. package/dist/protocol/EscrowVault.js +33 -122
  42. package/dist/protocol/EscrowVault.js.map +1 -1
  43. package/dist/protocol/EventMonitor.d.ts +1 -45
  44. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  45. package/dist/protocol/EventMonitor.js +8 -64
  46. package/dist/protocol/EventMonitor.js.map +1 -1
  47. package/dist/protocol/MessageSigner.d.ts +2 -116
  48. package/dist/protocol/MessageSigner.d.ts.map +1 -1
  49. package/dist/protocol/MessageSigner.js +9 -215
  50. package/dist/protocol/MessageSigner.js.map +1 -1
  51. package/dist/protocol/ProofGenerator.d.ts +0 -93
  52. package/dist/protocol/ProofGenerator.d.ts.map +1 -1
  53. package/dist/protocol/ProofGenerator.js +9 -194
  54. package/dist/protocol/ProofGenerator.js.map +1 -1
  55. package/dist/protocol/QuoteBuilder.d.ts +0 -8
  56. package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
  57. package/dist/protocol/QuoteBuilder.js +0 -8
  58. package/dist/protocol/QuoteBuilder.js.map +1 -1
  59. package/dist/types/eip712.d.ts +0 -34
  60. package/dist/types/eip712.d.ts.map +1 -1
  61. package/dist/types/eip712.js +5 -31
  62. package/dist/types/eip712.js.map +1 -1
  63. package/dist/types/escrow.d.ts +10 -17
  64. package/dist/types/escrow.d.ts.map +1 -1
  65. package/dist/types/index.d.ts +0 -5
  66. package/dist/types/index.d.ts.map +1 -1
  67. package/dist/types/index.js +0 -8
  68. package/dist/types/index.js.map +1 -1
  69. package/dist/types/message.d.ts +0 -32
  70. package/dist/types/message.d.ts.map +1 -1
  71. package/dist/types/message.js +0 -4
  72. package/dist/types/message.js.map +1 -1
  73. package/dist/types/state.d.ts +0 -28
  74. package/dist/types/state.d.ts.map +1 -1
  75. package/dist/types/state.js +6 -37
  76. package/dist/types/state.js.map +1 -1
  77. package/dist/types/transaction.d.ts +0 -17
  78. package/dist/types/transaction.d.ts.map +1 -1
  79. package/dist/utils/IPFSClient.d.ts +0 -113
  80. package/dist/utils/IPFSClient.d.ts.map +1 -1
  81. package/dist/utils/IPFSClient.js +7 -128
  82. package/dist/utils/IPFSClient.js.map +1 -1
  83. package/dist/utils/NonceManager.d.ts +1 -234
  84. package/dist/utils/NonceManager.d.ts.map +1 -1
  85. package/dist/utils/NonceManager.js +7 -372
  86. package/dist/utils/NonceManager.js.map +1 -1
  87. package/dist/utils/ReceivedNonceTracker.d.ts +0 -175
  88. package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
  89. package/dist/utils/ReceivedNonceTracker.js +5 -261
  90. package/dist/utils/ReceivedNonceTracker.js.map +1 -1
  91. package/dist/utils/canonicalJson.d.ts +0 -22
  92. package/dist/utils/canonicalJson.d.ts.map +1 -1
  93. package/dist/utils/canonicalJson.js +3 -26
  94. package/dist/utils/canonicalJson.js.map +1 -1
  95. package/dist/utils/computeTypeHash.d.ts +0 -14
  96. package/dist/utils/computeTypeHash.d.ts.map +1 -1
  97. package/dist/utils/computeTypeHash.js +2 -19
  98. package/dist/utils/computeTypeHash.js.map +1 -1
  99. package/dist/utils/validation.d.ts +0 -40
  100. package/dist/utils/validation.d.ts.map +1 -1
  101. package/dist/utils/validation.js +7 -184
  102. package/dist/utils/validation.js.map +1 -1
  103. package/package.json +37 -54
  104. package/src/ACTPClient.ts +178 -692
  105. package/src/__tests__/ProofGenerator.test.ts +124 -0
  106. package/src/__tests__/QuoteBuilder.test.ts +516 -0
  107. package/src/__tests__/StateMachine.test.ts +82 -0
  108. package/src/__tests__/builders/DeliveryProofBuilder.test.ts +581 -0
  109. package/src/__tests__/integration/ACTPClient.test.ts +263 -0
  110. package/src/__tests__/integration.test.ts +289 -0
  111. package/src/__tests__/protocol/EASHelper.test.ts +472 -0
  112. package/src/__tests__/protocol/EventMonitor.test.ts +382 -0
  113. package/src/__tests__/security/ACTPKernel.security.test.ts +1167 -0
  114. package/src/__tests__/security/EscrowVault.security.test.ts +570 -0
  115. package/src/__tests__/security/MessageSigner.security.test.ts +286 -0
  116. package/src/__tests__/security/NonceReplay.security.test.ts +501 -0
  117. package/src/__tests__/security/validation.security.test.ts +376 -0
  118. package/src/__tests__/utils/IPFSClient.test.ts +262 -0
  119. package/src/__tests__/utils/NonceManager.test.ts +205 -0
  120. package/src/__tests__/utils/canonicalJson.test.ts +153 -0
  121. package/src/abi/EscrowVault.json +38 -106
  122. package/src/builders/DeliveryProofBuilder.ts +2 -3
  123. package/src/config/networks.ts +9 -32
  124. package/src/errors/index.ts +1 -298
  125. package/src/index.ts +71 -207
  126. package/src/protocol/ACTPKernel.ts +23 -175
  127. package/src/protocol/EASHelper.ts +46 -230
  128. package/src/protocol/EscrowVault.ts +50 -68
  129. package/src/protocol/EventMonitor.ts +15 -44
  130. package/src/protocol/MessageSigner.ts +13 -193
  131. package/src/protocol/ProofGenerator.ts +4 -223
  132. package/src/types/escrow.ts +11 -12
  133. package/src/types/index.ts +1 -5
  134. package/src/types/state.ts +3 -12
  135. package/src/types/transaction.ts +1 -4
  136. package/src/utils/IPFSClient.ts +5 -122
  137. package/src/utils/NonceManager.ts +8 -305
  138. package/src/utils/ReceivedNonceTracker.ts +0 -170
  139. package/src/utils/validation.ts +0 -164
  140. package/LICENSE +0 -190
  141. package/bin/actp +0 -10
  142. package/dist/abi/AgentRegistry.json +0 -782
  143. package/dist/abi/IdentityRegistry.json +0 -316
  144. package/dist/adapters/BaseAdapter.d.ts +0 -231
  145. package/dist/adapters/BaseAdapter.d.ts.map +0 -1
  146. package/dist/adapters/BaseAdapter.js +0 -393
  147. package/dist/adapters/BaseAdapter.js.map +0 -1
  148. package/dist/adapters/BeginnerAdapter.d.ts +0 -152
  149. package/dist/adapters/BeginnerAdapter.d.ts.map +0 -1
  150. package/dist/adapters/BeginnerAdapter.js +0 -168
  151. package/dist/adapters/BeginnerAdapter.js.map +0 -1
  152. package/dist/adapters/IntermediateAdapter.d.ts +0 -211
  153. package/dist/adapters/IntermediateAdapter.d.ts.map +0 -1
  154. package/dist/adapters/IntermediateAdapter.js +0 -260
  155. package/dist/adapters/IntermediateAdapter.js.map +0 -1
  156. package/dist/adapters/index.d.ts +0 -15
  157. package/dist/adapters/index.d.ts.map +0 -1
  158. package/dist/adapters/index.js +0 -26
  159. package/dist/adapters/index.js.map +0 -1
  160. package/dist/cli/commands/balance.d.ts +0 -13
  161. package/dist/cli/commands/balance.d.ts.map +0 -1
  162. package/dist/cli/commands/balance.js +0 -89
  163. package/dist/cli/commands/balance.js.map +0 -1
  164. package/dist/cli/commands/batch.d.ts +0 -24
  165. package/dist/cli/commands/batch.d.ts.map +0 -1
  166. package/dist/cli/commands/batch.js +0 -424
  167. package/dist/cli/commands/batch.js.map +0 -1
  168. package/dist/cli/commands/config.d.ts +0 -13
  169. package/dist/cli/commands/config.d.ts.map +0 -1
  170. package/dist/cli/commands/config.js +0 -192
  171. package/dist/cli/commands/config.js.map +0 -1
  172. package/dist/cli/commands/init.d.ts +0 -19
  173. package/dist/cli/commands/init.d.ts.map +0 -1
  174. package/dist/cli/commands/init.js +0 -143
  175. package/dist/cli/commands/init.js.map +0 -1
  176. package/dist/cli/commands/mint.d.ts +0 -13
  177. package/dist/cli/commands/mint.d.ts.map +0 -1
  178. package/dist/cli/commands/mint.js +0 -91
  179. package/dist/cli/commands/mint.js.map +0 -1
  180. package/dist/cli/commands/pay.d.ts +0 -18
  181. package/dist/cli/commands/pay.d.ts.map +0 -1
  182. package/dist/cli/commands/pay.js +0 -87
  183. package/dist/cli/commands/pay.js.map +0 -1
  184. package/dist/cli/commands/simulate.d.ts +0 -32
  185. package/dist/cli/commands/simulate.d.ts.map +0 -1
  186. package/dist/cli/commands/simulate.js +0 -290
  187. package/dist/cli/commands/simulate.js.map +0 -1
  188. package/dist/cli/commands/time.d.ts +0 -29
  189. package/dist/cli/commands/time.d.ts.map +0 -1
  190. package/dist/cli/commands/time.js +0 -252
  191. package/dist/cli/commands/time.js.map +0 -1
  192. package/dist/cli/commands/tx.d.ts +0 -16
  193. package/dist/cli/commands/tx.d.ts.map +0 -1
  194. package/dist/cli/commands/tx.js +0 -379
  195. package/dist/cli/commands/tx.js.map +0 -1
  196. package/dist/cli/commands/watch.d.ts +0 -20
  197. package/dist/cli/commands/watch.d.ts.map +0 -1
  198. package/dist/cli/commands/watch.js +0 -160
  199. package/dist/cli/commands/watch.js.map +0 -1
  200. package/dist/cli/index.d.ts +0 -17
  201. package/dist/cli/index.d.ts.map +0 -1
  202. package/dist/cli/index.js +0 -104
  203. package/dist/cli/index.js.map +0 -1
  204. package/dist/cli/utils/client.d.ts +0 -70
  205. package/dist/cli/utils/client.d.ts.map +0 -1
  206. package/dist/cli/utils/client.js +0 -240
  207. package/dist/cli/utils/client.js.map +0 -1
  208. package/dist/cli/utils/config.d.ts +0 -91
  209. package/dist/cli/utils/config.d.ts.map +0 -1
  210. package/dist/cli/utils/config.js +0 -240
  211. package/dist/cli/utils/config.js.map +0 -1
  212. package/dist/cli/utils/output.d.ts +0 -174
  213. package/dist/cli/utils/output.d.ts.map +0 -1
  214. package/dist/cli/utils/output.js +0 -380
  215. package/dist/cli/utils/output.js.map +0 -1
  216. package/dist/level0/Provider.d.ts +0 -106
  217. package/dist/level0/Provider.d.ts.map +0 -1
  218. package/dist/level0/Provider.js +0 -10
  219. package/dist/level0/Provider.js.map +0 -1
  220. package/dist/level0/ServiceDirectory.d.ts +0 -74
  221. package/dist/level0/ServiceDirectory.d.ts.map +0 -1
  222. package/dist/level0/ServiceDirectory.js +0 -122
  223. package/dist/level0/ServiceDirectory.js.map +0 -1
  224. package/dist/level0/index.d.ts +0 -10
  225. package/dist/level0/index.d.ts.map +0 -1
  226. package/dist/level0/index.js +0 -15
  227. package/dist/level0/index.js.map +0 -1
  228. package/dist/level0/provide.d.ts +0 -51
  229. package/dist/level0/provide.d.ts.map +0 -1
  230. package/dist/level0/provide.js +0 -113
  231. package/dist/level0/provide.js.map +0 -1
  232. package/dist/level0/request.d.ts +0 -53
  233. package/dist/level0/request.d.ts.map +0 -1
  234. package/dist/level0/request.js +0 -462
  235. package/dist/level0/request.js.map +0 -1
  236. package/dist/level1/Agent.d.ts +0 -472
  237. package/dist/level1/Agent.d.ts.map +0 -1
  238. package/dist/level1/Agent.js +0 -1091
  239. package/dist/level1/Agent.js.map +0 -1
  240. package/dist/level1/index.d.ts +0 -10
  241. package/dist/level1/index.d.ts.map +0 -1
  242. package/dist/level1/index.js +0 -30
  243. package/dist/level1/index.js.map +0 -1
  244. package/dist/level1/pricing/PriceCalculator.d.ts +0 -62
  245. package/dist/level1/pricing/PriceCalculator.d.ts.map +0 -1
  246. package/dist/level1/pricing/PriceCalculator.js +0 -237
  247. package/dist/level1/pricing/PriceCalculator.js.map +0 -1
  248. package/dist/level1/pricing/PricingStrategy.d.ts +0 -179
  249. package/dist/level1/pricing/PricingStrategy.d.ts.map +0 -1
  250. package/dist/level1/pricing/PricingStrategy.js +0 -11
  251. package/dist/level1/pricing/PricingStrategy.js.map +0 -1
  252. package/dist/level1/types/Job.d.ts +0 -166
  253. package/dist/level1/types/Job.d.ts.map +0 -1
  254. package/dist/level1/types/Job.js +0 -11
  255. package/dist/level1/types/Job.js.map +0 -1
  256. package/dist/level1/types/Options.d.ts +0 -258
  257. package/dist/level1/types/Options.d.ts.map +0 -1
  258. package/dist/level1/types/Options.js +0 -8
  259. package/dist/level1/types/Options.js.map +0 -1
  260. package/dist/level1/types/index.d.ts +0 -8
  261. package/dist/level1/types/index.d.ts.map +0 -1
  262. package/dist/level1/types/index.js +0 -8
  263. package/dist/level1/types/index.js.map +0 -1
  264. package/dist/protocol/AgentRegistry.d.ts +0 -177
  265. package/dist/protocol/AgentRegistry.d.ts.map +0 -1
  266. package/dist/protocol/AgentRegistry.js +0 -449
  267. package/dist/protocol/AgentRegistry.js.map +0 -1
  268. package/dist/protocol/DIDManager.d.ts +0 -289
  269. package/dist/protocol/DIDManager.d.ts.map +0 -1
  270. package/dist/protocol/DIDManager.js +0 -481
  271. package/dist/protocol/DIDManager.js.map +0 -1
  272. package/dist/protocol/DIDResolver.d.ts +0 -236
  273. package/dist/protocol/DIDResolver.d.ts.map +0 -1
  274. package/dist/protocol/DIDResolver.js +0 -495
  275. package/dist/protocol/DIDResolver.js.map +0 -1
  276. package/dist/runtime/BlockchainRuntime.d.ts +0 -360
  277. package/dist/runtime/BlockchainRuntime.d.ts.map +0 -1
  278. package/dist/runtime/BlockchainRuntime.js +0 -767
  279. package/dist/runtime/BlockchainRuntime.js.map +0 -1
  280. package/dist/runtime/IACTPRuntime.d.ts +0 -271
  281. package/dist/runtime/IACTPRuntime.d.ts.map +0 -1
  282. package/dist/runtime/IACTPRuntime.js +0 -15
  283. package/dist/runtime/IACTPRuntime.js.map +0 -1
  284. package/dist/runtime/MockRuntime.d.ts +0 -445
  285. package/dist/runtime/MockRuntime.d.ts.map +0 -1
  286. package/dist/runtime/MockRuntime.js +0 -1065
  287. package/dist/runtime/MockRuntime.js.map +0 -1
  288. package/dist/runtime/MockStateManager.d.ts +0 -233
  289. package/dist/runtime/MockStateManager.d.ts.map +0 -1
  290. package/dist/runtime/MockStateManager.js +0 -533
  291. package/dist/runtime/MockStateManager.js.map +0 -1
  292. package/dist/runtime/index.d.ts +0 -14
  293. package/dist/runtime/index.d.ts.map +0 -1
  294. package/dist/runtime/index.js +0 -42
  295. package/dist/runtime/index.js.map +0 -1
  296. package/dist/runtime/types/MockState.d.ts +0 -167
  297. package/dist/runtime/types/MockState.d.ts.map +0 -1
  298. package/dist/runtime/types/MockState.js +0 -43
  299. package/dist/runtime/types/MockState.js.map +0 -1
  300. package/dist/types/agent.d.ts +0 -76
  301. package/dist/types/agent.d.ts.map +0 -1
  302. package/dist/types/agent.js +0 -8
  303. package/dist/types/agent.js.map +0 -1
  304. package/dist/types/did.d.ts +0 -192
  305. package/dist/types/did.d.ts.map +0 -1
  306. package/dist/types/did.js +0 -38
  307. package/dist/types/did.js.map +0 -1
  308. package/dist/utils/ErrorRecoveryGuide.d.ts +0 -125
  309. package/dist/utils/ErrorRecoveryGuide.d.ts.map +0 -1
  310. package/dist/utils/ErrorRecoveryGuide.js +0 -579
  311. package/dist/utils/ErrorRecoveryGuide.js.map +0 -1
  312. package/dist/utils/Helpers.d.ts +0 -453
  313. package/dist/utils/Helpers.d.ts.map +0 -1
  314. package/dist/utils/Helpers.js +0 -623
  315. package/dist/utils/Helpers.js.map +0 -1
  316. package/dist/utils/Logger.d.ts +0 -195
  317. package/dist/utils/Logger.d.ts.map +0 -1
  318. package/dist/utils/Logger.js +0 -382
  319. package/dist/utils/Logger.js.map +0 -1
  320. package/dist/utils/RateLimiter.d.ts +0 -253
  321. package/dist/utils/RateLimiter.d.ts.map +0 -1
  322. package/dist/utils/RateLimiter.js +0 -424
  323. package/dist/utils/RateLimiter.js.map +0 -1
  324. package/dist/utils/SDKLifecycle.d.ts +0 -156
  325. package/dist/utils/SDKLifecycle.d.ts.map +0 -1
  326. package/dist/utils/SDKLifecycle.js +0 -347
  327. package/dist/utils/SDKLifecycle.js.map +0 -1
  328. package/dist/utils/SecureNonce.d.ts +0 -57
  329. package/dist/utils/SecureNonce.d.ts.map +0 -1
  330. package/dist/utils/SecureNonce.js +0 -80
  331. package/dist/utils/SecureNonce.js.map +0 -1
  332. package/dist/utils/Semaphore.d.ts +0 -123
  333. package/dist/utils/Semaphore.d.ts.map +0 -1
  334. package/dist/utils/Semaphore.js +0 -247
  335. package/dist/utils/Semaphore.js.map +0 -1
  336. package/dist/utils/UsedAttestationTracker.d.ts +0 -167
  337. package/dist/utils/UsedAttestationTracker.d.ts.map +0 -1
  338. package/dist/utils/UsedAttestationTracker.js +0 -309
  339. package/dist/utils/UsedAttestationTracker.js.map +0 -1
  340. package/dist/utils/fsSafe.d.ts +0 -14
  341. package/dist/utils/fsSafe.d.ts.map +0 -1
  342. package/dist/utils/fsSafe.js +0 -89
  343. package/dist/utils/fsSafe.js.map +0 -1
  344. package/dist/utils/index.d.ts +0 -15
  345. package/dist/utils/index.d.ts.map +0 -1
  346. package/dist/utils/index.js +0 -51
  347. package/dist/utils/index.js.map +0 -1
  348. package/dist/utils/security.d.ts +0 -147
  349. package/dist/utils/security.d.ts.map +0 -1
  350. package/dist/utils/security.js +0 -391
  351. package/dist/utils/security.js.map +0 -1
  352. package/src/abi/AgentRegistry.json +0 -782
  353. package/src/abi/IdentityRegistry.json +0 -316
  354. package/src/adapters/BaseAdapter.ts +0 -473
  355. package/src/adapters/BeginnerAdapter.ts +0 -232
  356. package/src/adapters/IntermediateAdapter.ts +0 -316
  357. package/src/adapters/index.ts +0 -25
  358. package/src/cli/commands/balance.ts +0 -110
  359. package/src/cli/commands/batch.ts +0 -487
  360. package/src/cli/commands/config.ts +0 -231
  361. package/src/cli/commands/init.ts +0 -161
  362. package/src/cli/commands/mint.ts +0 -116
  363. package/src/cli/commands/pay.ts +0 -113
  364. package/src/cli/commands/simulate.ts +0 -345
  365. package/src/cli/commands/time.ts +0 -303
  366. package/src/cli/commands/tx.ts +0 -448
  367. package/src/cli/commands/watch.ts +0 -211
  368. package/src/cli/index.ts +0 -116
  369. package/src/cli/utils/client.ts +0 -249
  370. package/src/cli/utils/config.ts +0 -282
  371. package/src/cli/utils/output.ts +0 -465
  372. package/src/level0/Provider.ts +0 -117
  373. package/src/level0/ServiceDirectory.ts +0 -131
  374. package/src/level0/index.ts +0 -10
  375. package/src/level0/provide.ts +0 -131
  376. package/src/level0/request.ts +0 -494
  377. package/src/level1/Agent.ts +0 -1432
  378. package/src/level1/index.ts +0 -10
  379. package/src/level1/pricing/PriceCalculator.ts +0 -255
  380. package/src/level1/pricing/PricingStrategy.ts +0 -198
  381. package/src/level1/types/Job.ts +0 -179
  382. package/src/level1/types/Options.ts +0 -291
  383. package/src/level1/types/index.ts +0 -8
  384. package/src/protocol/AgentRegistry.ts +0 -559
  385. package/src/protocol/DIDManager.ts +0 -629
  386. package/src/protocol/DIDResolver.ts +0 -554
  387. package/src/runtime/BlockchainRuntime.ts +0 -993
  388. package/src/runtime/IACTPRuntime.ts +0 -284
  389. package/src/runtime/MockRuntime.ts +0 -1244
  390. package/src/runtime/MockStateManager.ts +0 -576
  391. package/src/runtime/index.ts +0 -25
  392. package/src/runtime/types/MockState.ts +0 -227
  393. package/src/types/agent.ts +0 -79
  394. package/src/types/did.ts +0 -223
  395. package/src/utils/ErrorRecoveryGuide.ts +0 -675
  396. package/src/utils/Helpers.ts +0 -688
  397. package/src/utils/Logger.ts +0 -484
  398. package/src/utils/RateLimiter.ts +0 -534
  399. package/src/utils/SDKLifecycle.ts +0 -416
  400. package/src/utils/SecureNonce.ts +0 -78
  401. package/src/utils/Semaphore.ts +0 -276
  402. package/src/utils/UsedAttestationTracker.ts +0 -387
  403. package/src/utils/fsSafe.ts +0 -75
  404. package/src/utils/index.ts +0 -80
  405. package/src/utils/security.ts +0 -418
@@ -0,0 +1,205 @@
1
+ /**
2
+ * Tests for Nonce Manager
3
+ */
4
+
5
+ import {
6
+ InMemoryNonceManager,
7
+ DIDScopedNonceManager,
8
+ createNonceManager
9
+ } from '../../utils/NonceManager';
10
+
11
+ describe('InMemoryNonceManager', () => {
12
+ let manager: InMemoryNonceManager;
13
+
14
+ beforeEach(() => {
15
+ manager = new InMemoryNonceManager();
16
+ });
17
+
18
+ describe('getNextNonce', () => {
19
+ it('should return 1 for first nonce', () => {
20
+ expect(manager.getNextNonce('agirails.delivery.v1')).toBe(1);
21
+ });
22
+
23
+ it('should increment for multiple calls', () => {
24
+ expect(manager.getNextNonce('agirails.delivery.v1')).toBe(1);
25
+ manager.recordNonce('agirails.delivery.v1', 1);
26
+ expect(manager.getNextNonce('agirails.delivery.v1')).toBe(2);
27
+ manager.recordNonce('agirails.delivery.v1', 2);
28
+ expect(manager.getNextNonce('agirails.delivery.v1')).toBe(3);
29
+ });
30
+
31
+ it('should track nonces separately per message type', () => {
32
+ manager.recordNonce('agirails.delivery.v1', 5);
33
+ manager.recordNonce('agirails.quote.v1', 10);
34
+
35
+ expect(manager.getNextNonce('agirails.delivery.v1')).toBe(6);
36
+ expect(manager.getNextNonce('agirails.quote.v1')).toBe(11);
37
+ });
38
+ });
39
+
40
+ describe('recordNonce', () => {
41
+ it('should update current nonce', () => {
42
+ manager.recordNonce('agirails.delivery.v1', 5);
43
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(5);
44
+ });
45
+
46
+ it('should throw if nonce is not strictly increasing', () => {
47
+ manager.recordNonce('agirails.delivery.v1', 5);
48
+
49
+ expect(() => manager.recordNonce('agirails.delivery.v1', 5))
50
+ .toThrow('Nonce must be strictly increasing');
51
+
52
+ expect(() => manager.recordNonce('agirails.delivery.v1', 3))
53
+ .toThrow('Nonce must be strictly increasing');
54
+ });
55
+
56
+ it('should allow gaps in nonces', () => {
57
+ manager.recordNonce('agirails.delivery.v1', 1);
58
+ manager.recordNonce('agirails.delivery.v1', 10);
59
+
60
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(10);
61
+ });
62
+ });
63
+
64
+ describe('getCurrentNonce', () => {
65
+ it('should return 0 for unused message type', () => {
66
+ expect(manager.getCurrentNonce('agirails.unknown.v1')).toBe(0);
67
+ });
68
+
69
+ it('should return last recorded nonce', () => {
70
+ manager.recordNonce('agirails.delivery.v1', 42);
71
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(42);
72
+ });
73
+ });
74
+
75
+ describe('resetNonce', () => {
76
+ it('should reset nonce to 0', () => {
77
+ manager.recordNonce('agirails.delivery.v1', 10);
78
+ manager.resetNonce('agirails.delivery.v1');
79
+
80
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(0);
81
+ expect(manager.getNextNonce('agirails.delivery.v1')).toBe(1);
82
+ });
83
+ });
84
+
85
+ describe('getAllNonces', () => {
86
+ it('should return all nonces as object', () => {
87
+ manager.recordNonce('agirails.delivery.v1', 5);
88
+ manager.recordNonce('agirails.quote.v1', 10);
89
+
90
+ const nonces = manager.getAllNonces();
91
+
92
+ expect(nonces).toEqual({
93
+ 'agirails.delivery.v1': 5,
94
+ 'agirails.quote.v1': 10
95
+ });
96
+ });
97
+
98
+ it('should be empty for new manager', () => {
99
+ expect(manager.getAllNonces()).toEqual({});
100
+ });
101
+ });
102
+
103
+ describe('constructor with initialNonces', () => {
104
+ it('should initialize with provided nonces', () => {
105
+ const manager = new InMemoryNonceManager({
106
+ 'agirails.delivery.v1': 100,
107
+ 'agirails.quote.v1': 200
108
+ });
109
+
110
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(100);
111
+ expect(manager.getCurrentNonce('agirails.quote.v1')).toBe(200);
112
+ });
113
+ });
114
+ });
115
+
116
+ describe('DIDScopedNonceManager', () => {
117
+ const did1 = 'did:ethr:84532:0x1111111111111111111111111111111111111111';
118
+ const did2 = 'did:ethr:84532:0x2222222222222222222222222222222222222222';
119
+
120
+ let manager: DIDScopedNonceManager;
121
+
122
+ beforeEach(() => {
123
+ manager = new DIDScopedNonceManager(did1);
124
+ });
125
+
126
+ describe('DID scoping', () => {
127
+ it('should track nonces per DID', () => {
128
+ manager.recordNonceForDID(did1, 'agirails.delivery.v1', 5);
129
+ manager.recordNonceForDID(did2, 'agirails.delivery.v1', 10);
130
+
131
+ expect(manager.getNextNonceForDID(did1, 'agirails.delivery.v1')).toBe(6);
132
+ expect(manager.getNextNonceForDID(did2, 'agirails.delivery.v1')).toBe(11);
133
+ });
134
+
135
+ it('should use current DID for simple methods', () => {
136
+ manager.recordNonce('agirails.delivery.v1', 5);
137
+
138
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(5);
139
+ expect(manager.getNextNonce('agirails.delivery.v1')).toBe(6);
140
+ });
141
+
142
+ it('should allow switching DID context', () => {
143
+ manager.recordNonce('agirails.delivery.v1', 5);
144
+
145
+ manager.switchDID(did2);
146
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(0);
147
+
148
+ manager.recordNonce('agirails.delivery.v1', 10);
149
+
150
+ manager.switchDID(did1);
151
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(5);
152
+ });
153
+ });
154
+
155
+ describe('getAllNonces', () => {
156
+ it('should return nested structure', () => {
157
+ manager.recordNonceForDID(did1, 'agirails.delivery.v1', 5);
158
+ manager.recordNonceForDID(did1, 'agirails.quote.v1', 3);
159
+ manager.recordNonceForDID(did2, 'agirails.delivery.v1', 10);
160
+
161
+ const nonces = manager.getAllNonces();
162
+
163
+ expect(nonces).toEqual({
164
+ [did1]: {
165
+ 'agirails.delivery.v1': 5,
166
+ 'agirails.quote.v1': 3
167
+ },
168
+ [did2]: {
169
+ 'agirails.delivery.v1': 10
170
+ }
171
+ });
172
+ });
173
+ });
174
+
175
+ describe('constructor with initialNonces', () => {
176
+ it('should initialize DID with provided nonces', () => {
177
+ const manager = new DIDScopedNonceManager(did1, {
178
+ 'agirails.delivery.v1': 100
179
+ });
180
+
181
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(100);
182
+ expect(manager.getNextNonce('agirails.delivery.v1')).toBe(101);
183
+ });
184
+ });
185
+ });
186
+
187
+ describe('createNonceManager factory', () => {
188
+ it('should create InMemoryNonceManager when no DID provided', () => {
189
+ const manager = createNonceManager();
190
+ expect(manager).toBeInstanceOf(InMemoryNonceManager);
191
+ });
192
+
193
+ it('should create DIDScopedNonceManager when DID provided', () => {
194
+ const manager = createNonceManager('did:ethr:84532:0x...');
195
+ expect(manager).toBeInstanceOf(DIDScopedNonceManager);
196
+ });
197
+
198
+ it('should pass initialNonces to manager', () => {
199
+ const manager = createNonceManager(undefined, {
200
+ 'agirails.delivery.v1': 50
201
+ });
202
+
203
+ expect(manager.getCurrentNonce('agirails.delivery.v1')).toBe(50);
204
+ });
205
+ });
@@ -0,0 +1,153 @@
1
+ /**
2
+ * Tests for Canonical JSON Utilities (AIP-4 §3.6)
3
+ */
4
+
5
+ import { canonicalJsonStringify, computeCanonicalHash, computeResultHash } from '../../utils/canonicalJson';
6
+ import { keccak256, toUtf8Bytes } from 'ethers';
7
+
8
+ describe('Canonical JSON Utilities', () => {
9
+ describe('canonicalJsonStringify', () => {
10
+ it('should sort object keys alphabetically', () => {
11
+ const obj = { z: 1, a: 2, m: 3 };
12
+ const result = canonicalJsonStringify(obj);
13
+ expect(result).toBe('{"a":2,"m":3,"z":1}');
14
+ });
15
+
16
+ it('should handle nested objects', () => {
17
+ const obj = {
18
+ b: { y: 1, x: 2 },
19
+ a: { z: 3, w: 4 }
20
+ };
21
+ const result = canonicalJsonStringify(obj);
22
+ expect(result).toBe('{"a":{"w":4,"z":3},"b":{"x":2,"y":1}}');
23
+ });
24
+
25
+ it('should handle arrays', () => {
26
+ const obj = { items: [3, 1, 2], name: 'test' };
27
+ const result = canonicalJsonStringify(obj);
28
+ expect(result).toBe('{"items":[3,1,2],"name":"test"}');
29
+ });
30
+
31
+ it('should produce deterministic output', () => {
32
+ const obj1 = { a: 1, b: 2, c: 3 };
33
+ const obj2 = { c: 3, b: 2, a: 1 };
34
+
35
+ expect(canonicalJsonStringify(obj1)).toBe(canonicalJsonStringify(obj2));
36
+ });
37
+
38
+ it('should handle special characters', () => {
39
+ const obj = { text: 'hello "world"', emoji: '🎉' };
40
+ const result = canonicalJsonStringify(obj);
41
+ expect(result).toContain('hello \\"world\\"');
42
+ expect(result).toContain('🎉');
43
+ });
44
+
45
+ it('should handle null and boolean values', () => {
46
+ const obj = { isTrue: true, isFalse: false, nothing: null };
47
+ const result = canonicalJsonStringify(obj);
48
+ expect(result).toBe('{"isFalse":false,"isTrue":true,"nothing":null}');
49
+ });
50
+ });
51
+
52
+ describe('computeCanonicalHash', () => {
53
+ it('should compute keccak256 hash of canonical JSON', () => {
54
+ const obj = { a: 1, b: 2 };
55
+ const hash = computeCanonicalHash(obj);
56
+
57
+ // Hash should be 0x-prefixed, 66 chars (0x + 64 hex)
58
+ expect(hash).toMatch(/^0x[a-f0-9]{64}$/);
59
+ });
60
+
61
+ it('should produce same hash for semantically equal objects', () => {
62
+ const obj1 = { a: 1, b: 2, c: 3 };
63
+ const obj2 = { c: 3, b: 2, a: 1 }; // Different order
64
+
65
+ const hash1 = computeCanonicalHash(obj1);
66
+ const hash2 = computeCanonicalHash(obj2);
67
+
68
+ expect(hash1).toBe(hash2);
69
+ });
70
+
71
+ it('should produce different hashes for different objects', () => {
72
+ const obj1 = { a: 1, b: 2 };
73
+ const obj2 = { a: 1, b: 3 };
74
+
75
+ const hash1 = computeCanonicalHash(obj1);
76
+ const hash2 = computeCanonicalHash(obj2);
77
+
78
+ expect(hash1).not.toBe(hash2);
79
+ });
80
+ });
81
+
82
+ describe('computeResultHash', () => {
83
+ it('should alias computeCanonicalHash', () => {
84
+ const obj = { txId: '0xabc', result: 'test' };
85
+
86
+ const hash1 = computeResultHash(obj);
87
+ const hash2 = computeCanonicalHash(obj);
88
+
89
+ expect(hash1).toBe(hash2);
90
+ });
91
+ });
92
+
93
+ describe('AIP-4 Test Vector (§10.1)', () => {
94
+ it('should match AIP-4 canonical JSON test vector', () => {
95
+ const input = {
96
+ txId: '0x7d87c3b8e23a5c9d1f4e6b2a8c5d9e3f1a7b4c6d8e2f5a3b9c1d7e4f6a8b2c5d',
97
+ serviceType: 'ocr',
98
+ result: { text: 'test', confidence: 1.0 },
99
+ createdAt: 1700000000,
100
+ provider: 'did:ethr:0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
101
+ };
102
+
103
+ const canonical = canonicalJsonStringify(input);
104
+
105
+ // Expected output from AIP-4 §10.1
106
+ const expected = '{"createdAt":1700000000,"provider":"did:ethr:0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","result":{"confidence":1,"text":"test"},"serviceType":"ocr","txId":"0x7d87c3b8e23a5c9d1f4e6b2a8c5d9e3f1a7b4c6d8e2f5a3b9c1d7e4f6a8b2c5d"}';
107
+
108
+ expect(canonical).toBe(expected);
109
+ });
110
+
111
+ it('should compute correct hash for test vector', () => {
112
+ const input = {
113
+ txId: '0x7d87c3b8e23a5c9d1f4e6b2a8c5d9e3f1a7b4c6d8e2f5a3b9c1d7e4f6a8b2c5d',
114
+ serviceType: 'ocr',
115
+ result: { text: 'test', confidence: 1.0 },
116
+ createdAt: 1700000000,
117
+ provider: 'did:ethr:0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb'
118
+ };
119
+
120
+ const hash = computeResultHash(input);
121
+
122
+ // Compute expected hash manually
123
+ const canonical = '{"createdAt":1700000000,"provider":"did:ethr:0x742d35Cc6634C0532925a3b844Bc9e7595f0bEb","result":{"confidence":1,"text":"test"},"serviceType":"ocr","txId":"0x7d87c3b8e23a5c9d1f4e6b2a8c5d9e3f1a7b4c6d8e2f5a3b9c1d7e4f6a8b2c5d"}';
124
+ const expectedHash = keccak256(toUtf8Bytes(canonical));
125
+
126
+ expect(hash).toBe(expectedHash);
127
+ });
128
+ });
129
+
130
+ describe('Cross-language compatibility', () => {
131
+ it('should handle numbers without decimals', () => {
132
+ const obj = { value: 1.0 };
133
+ const result = canonicalJsonStringify(obj);
134
+
135
+ // JavaScript serializes 1.0 as 1 (no decimal)
136
+ expect(result).toBe('{"value":1}');
137
+ });
138
+
139
+ it('should handle large numbers', () => {
140
+ const obj = { timestamp: 1700000000, amount: 1000000000000 };
141
+ const result = canonicalJsonStringify(obj);
142
+
143
+ expect(result).toBe('{"amount":1000000000000,"timestamp":1700000000}');
144
+ });
145
+
146
+ it('should handle unicode strings', () => {
147
+ const obj = { text: 'Hello 世界 🌍' };
148
+ const result = canonicalJsonStringify(obj);
149
+
150
+ expect(result).toContain('Hello 世界 🌍');
151
+ });
152
+ });
153
+ });
@@ -1,133 +1,65 @@
1
1
  [
2
2
  {
3
- "type": "constructor",
4
3
  "inputs": [
5
- { "name": "_token", "type": "address", "internalType": "address" },
6
- { "name": "_kernel", "type": "address", "internalType": "address" }
4
+ {"name": "kernel", "type": "address"},
5
+ {"name": "txId", "type": "bytes32"},
6
+ {"name": "token", "type": "address"},
7
+ {"name": "amount", "type": "uint256"},
8
+ {"name": "beneficiary", "type": "address"}
7
9
  ],
8
- "stateMutability": "nonpayable"
9
- },
10
- {
11
- "type": "function",
12
- "name": "token",
13
- "inputs": [],
14
- "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
15
- "stateMutability": "view"
16
- },
17
- {
18
- "type": "function",
19
- "name": "kernel",
20
- "inputs": [],
21
- "outputs": [{ "name": "", "type": "address", "internalType": "address" }],
22
- "stateMutability": "view"
23
- },
24
- {
25
- "type": "function",
26
- "name": "escrows",
27
- "inputs": [{ "name": "", "type": "bytes32", "internalType": "bytes32" }],
28
- "outputs": [
29
- { "name": "requester", "type": "address", "internalType": "address" },
30
- { "name": "provider", "type": "address", "internalType": "address" },
31
- { "name": "amount", "type": "uint256", "internalType": "uint256" },
32
- { "name": "releasedAmount", "type": "uint256", "internalType": "uint256" },
33
- { "name": "active", "type": "bool", "internalType": "bool" }
34
- ],
35
- "stateMutability": "view"
10
+ "name": "createEscrow",
11
+ "outputs": [{"name": "escrowId", "type": "bytes32"}],
12
+ "stateMutability": "nonpayable",
13
+ "type": "function"
36
14
  },
37
15
  {
38
- "type": "function",
39
- "name": "createEscrow",
40
16
  "inputs": [
41
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
42
- { "name": "requester", "type": "address", "internalType": "address" },
43
- { "name": "provider", "type": "address", "internalType": "address" },
44
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
17
+ {"name": "escrowId", "type": "bytes32"},
18
+ {"name": "recipients", "type": "address[]"},
19
+ {"name": "amounts", "type": "uint256[]"}
45
20
  ],
21
+ "name": "disburse",
46
22
  "outputs": [],
47
- "stateMutability": "nonpayable"
23
+ "stateMutability": "nonpayable",
24
+ "type": "function"
48
25
  },
49
26
  {
50
- "type": "function",
51
- "name": "verifyEscrow",
52
27
  "inputs": [
53
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
54
- { "name": "requester", "type": "address", "internalType": "address" },
55
- { "name": "provider", "type": "address", "internalType": "address" },
56
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
28
+ {"name": "escrowId", "type": "bytes32"}
57
29
  ],
30
+ "name": "escrows",
58
31
  "outputs": [
59
- { "name": "isActive", "type": "bool", "internalType": "bool" },
60
- { "name": "escrowAmount", "type": "uint256", "internalType": "uint256" }
61
- ],
62
- "stateMutability": "view"
63
- },
64
- {
65
- "type": "function",
66
- "name": "payoutToProvider",
67
- "inputs": [
68
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
69
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
32
+ {"name": "kernel", "type": "address"},
33
+ {"name": "txId", "type": "bytes32"},
34
+ {"name": "token", "type": "address"},
35
+ {"name": "amount", "type": "uint256"},
36
+ {"name": "beneficiary", "type": "address"},
37
+ {"name": "released", "type": "bool"}
70
38
  ],
71
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
72
- "stateMutability": "nonpayable"
39
+ "stateMutability": "view",
40
+ "type": "function"
73
41
  },
74
42
  {
75
- "type": "function",
76
- "name": "refundToRequester",
77
- "inputs": [
78
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
79
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
80
- ],
81
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
82
- "stateMutability": "nonpayable"
83
- },
84
- {
85
- "type": "function",
86
- "name": "payout",
43
+ "anonymous": false,
87
44
  "inputs": [
88
- { "name": "escrowId", "type": "bytes32", "internalType": "bytes32" },
89
- { "name": "recipient", "type": "address", "internalType": "address" },
90
- { "name": "amount", "type": "uint256", "internalType": "uint256" }
45
+ {"indexed": true, "name": "escrowId", "type": "bytes32"},
46
+ {"indexed": true, "name": "kernel", "type": "address"},
47
+ {"indexed": true, "name": "txId", "type": "bytes32"},
48
+ {"indexed": false, "name": "token", "type": "address"},
49
+ {"indexed": false, "name": "amount", "type": "uint256"}
91
50
  ],
92
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
93
- "stateMutability": "nonpayable"
94
- },
95
- {
96
- "type": "function",
97
- "name": "remaining",
98
- "inputs": [{ "name": "escrowId", "type": "bytes32", "internalType": "bytes32" }],
99
- "outputs": [{ "name": "", "type": "uint256", "internalType": "uint256" }],
100
- "stateMutability": "view"
101
- },
102
- {
103
- "type": "event",
104
51
  "name": "EscrowCreated",
105
- "anonymous": false,
106
- "inputs": [
107
- { "name": "escrowId", "type": "bytes32", "indexed": true, "internalType": "bytes32" },
108
- { "name": "requester", "type": "address", "indexed": true, "internalType": "address" },
109
- { "name": "provider", "type": "address", "indexed": true, "internalType": "address" },
110
- { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }
111
- ]
112
- },
113
- {
114
- "type": "event",
115
- "name": "EscrowPayout",
116
- "anonymous": false,
117
- "inputs": [
118
- { "name": "escrowId", "type": "bytes32", "indexed": true, "internalType": "bytes32" },
119
- { "name": "recipient", "type": "address", "indexed": true, "internalType": "address" },
120
- { "name": "amount", "type": "uint256", "indexed": false, "internalType": "uint256" }
121
- ]
52
+ "type": "event"
122
53
  },
123
54
  {
124
- "type": "event",
125
- "name": "EscrowCompleted",
126
55
  "anonymous": false,
127
56
  "inputs": [
128
- { "name": "escrowId", "type": "bytes32", "indexed": true, "internalType": "bytes32" },
129
- { "name": "totalReleased", "type": "uint256", "indexed": false, "internalType": "uint256" }
130
- ]
57
+ {"indexed": true, "name": "escrowId", "type": "bytes32"},
58
+ {"indexed": false, "name": "recipients", "type": "address[]"},
59
+ {"indexed": false, "name": "amounts", "type": "uint256[]"}
60
+ ],
61
+ "name": "EscrowReleased",
62
+ "type": "event"
131
63
  }
132
64
  ]
133
65
 
@@ -19,10 +19,9 @@ import { AIP4DeliveryProofTypes, AIP4DeliveryProofData, EIP712Domain } from '../
19
19
 
20
20
  /**
21
21
  * AGIRAILS Delivery Schema UID (Base Sepolia)
22
- * Deployed 2025-11-23 - AIP-4 delivery proof schema
23
- * Schema: bytes32 txId, string resultCID, bytes32 resultHash, uint256 deliveredAt
22
+ * TODO: Update after schema deployment
24
23
  */
25
- export const AGIRAILS_DELIVERY_SCHEMA_UID = '0x1b0ebdf0bd20c28ec9d5362571ce8715a55f46e81c3de2f9b0d8e1b95fb5ffce';
24
+ export const AGIRAILS_DELIVERY_SCHEMA_UID = '0x0000000000000000000000000000000000000000000000000000000000000000'; // PENDING
26
25
 
27
26
  /**
28
27
  * Delivery proof build parameters
@@ -1,20 +1,5 @@
1
1
  import { ethers } from 'ethers';
2
2
 
3
- // ============================================================================
4
- // SECURITY FIX (C-7): RPC URL Configuration
5
- // ============================================================================
6
- // Environment variables take priority over hardcoded defaults.
7
- // This prevents accidental API key leakage if developers modify this file.
8
- // Public RPC endpoints are used as fallbacks for ease of use.
9
- //
10
- // Set these environment variables to use your own RPC provider:
11
- // BASE_SEPOLIA_RPC - Custom RPC for Base Sepolia testnet
12
- // BASE_MAINNET_RPC - Custom RPC for Base Mainnet
13
- // ============================================================================
14
-
15
- const BASE_SEPOLIA_RPC_URL = process.env.BASE_SEPOLIA_RPC || 'https://sepolia.base.org';
16
- const BASE_MAINNET_RPC_URL = process.env.BASE_MAINNET_RPC || 'https://mainnet.base.org';
17
-
18
3
  /**
19
4
  * Network configuration
20
5
  */
@@ -29,7 +14,6 @@ export interface NetworkConfig {
29
14
  usdc: string;
30
15
  eas: string; // EAS contract address
31
16
  easSchemaRegistry: string; // EAS SchemaRegistry contract
32
- agentRegistry?: string; // AIP-7 Agent Registry (optional until deployed)
33
17
  };
34
18
  eas: {
35
19
  deliverySchemaUID: string; // AIP-4 delivery proof schema
@@ -46,18 +30,16 @@ export interface NetworkConfig {
46
30
  export const BASE_SEPOLIA: NetworkConfig = {
47
31
  name: 'Base Sepolia',
48
32
  chainId: 84532,
49
- rpcUrl: BASE_SEPOLIA_RPC_URL,
33
+ rpcUrl: 'https://sepolia.base.org',
50
34
  blockExplorer: 'https://sepolia.basescan.org',
51
35
  contracts: {
52
- // Redeployed 2025-12-10 by Arha (new deployer wallet 0x42a2f11555b9363fb7ebdcdc76d7cb26e01dcb00)
53
- actpKernel: '0xD199070F8e9FB9a127F6Fe730Bc13300B4b3d962',
54
- escrowVault: '0x948b9Ea081C4Cec1E112Af2e539224c531d4d585',
36
+ // Redeployed 2025-11-25 by Arha (fixed auto-transition in linkEscrow, optimizer-runs 200)
37
+ actpKernel: '0x6aDB650e185b0ee77981AC5279271f0Fa6CFe7ba',
38
+ escrowVault: '0x921edE340770db5DB6059B5B866be987d1b7311F',
55
39
  usdc: '0x444b4e1A65949AB2ac75979D5d0166Eb7A248Ccb', // MockUSDC
56
40
  // EAS contracts (Base native deployment)
57
41
  eas: '0x4200000000000000000000000000000000000021',
58
- easSchemaRegistry: '0x4200000000000000000000000000000000000020',
59
- // AIP-7 Agent Registry (deployed 2025-12-11)
60
- agentRegistry: '0xFed6914Aa70c0a53E9c7Cc4d2Ae159e4748fb09D'
42
+ easSchemaRegistry: '0x4200000000000000000000000000000000000020'
61
43
  },
62
44
  eas: {
63
45
  // Deployed 2025-11-23 - AIP-4 delivery proof schema
@@ -71,18 +53,14 @@ export const BASE_SEPOLIA: NetworkConfig = {
71
53
 
72
54
  /**
73
55
  * Base Mainnet Configuration
74
- *
75
- * WARNING: Mainnet contracts are NOT YET DEPLOYED.
76
- * Using 'base-mainnet' will throw an error until contracts are deployed.
77
- * Use 'base-sepolia' for testnet development.
78
56
  */
79
57
  export const BASE_MAINNET: NetworkConfig = {
80
58
  name: 'Base Mainnet',
81
59
  chainId: 8453,
82
- rpcUrl: BASE_MAINNET_RPC_URL,
60
+ rpcUrl: 'https://mainnet.base.org',
83
61
  blockExplorer: 'https://basescan.org',
84
62
  contracts: {
85
- // NOT DEPLOYED: Will throw error via validateNetworkConfig()
63
+ // TODO: Update after mainnet deployment
86
64
  actpKernel: '0x0000000000000000000000000000000000000000',
87
65
  escrowVault: '0x0000000000000000000000000000000000000000',
88
66
  usdc: '0x833589fCD6eDb6E08f4c7C32D4f71b54bdA02913', // Official USDC on Base
@@ -91,7 +69,7 @@ export const BASE_MAINNET: NetworkConfig = {
91
69
  easSchemaRegistry: '0x4200000000000000000000000000000000000020'
92
70
  },
93
71
  eas: {
94
- // NOT DEPLOYED: Requires mainnet schema registration
72
+ // TODO: Deploy delivery schema to mainnet
95
73
  deliverySchemaUID: '0x0000000000000000000000000000000000000000000000000000000000000000'
96
74
  },
97
75
  gasSettings: {
@@ -133,8 +111,7 @@ export function getNetwork(network: string): NetworkConfig {
133
111
  escrowVault: config.contracts.escrowVault,
134
112
  usdc: config.contracts.usdc,
135
113
  eas: config.contracts.eas,
136
- easSchemaRegistry: config.contracts.easSchemaRegistry,
137
- agentRegistry: config.contracts.agentRegistry
114
+ easSchemaRegistry: config.contracts.easSchemaRegistry
138
115
  },
139
116
  eas: {
140
117
  deliverySchemaUID: config.eas.deliverySchemaUID