@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
@@ -1 +1 @@
1
- {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"message.d.ts","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,3 @@
1
1
  "use strict";
2
- /**
3
- * ACTP Message Types
4
- * Reference: Yellow Paper §4-10 (AIPs)
5
- */
6
2
  Object.defineProperty(exports, "__esModule", { value: true });
7
3
  //# sourceMappingURL=message.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":";AAAA;;;GAGG"}
1
+ {"version":3,"file":"message.js","sourceRoot":"","sources":["../../src/types/message.ts"],"names":[],"mappings":""}
@@ -1,7 +1,3 @@
1
- /**
2
- * ACTP State Machine
3
- * Reference: Yellow Paper §3.2
4
- */
5
1
  export declare enum State {
6
2
  INITIATED = 0,
7
3
  QUOTED = 1,
@@ -13,35 +9,11 @@ export declare enum State {
13
9
  CANCELLED = 7
14
10
  }
15
11
  export declare class StateMachine {
16
- /**
17
- * Valid state transitions per Yellow Paper §3.2.2
18
- *
19
- * SECURITY FIX (CRITICAL-1): State machine must match ACTPKernel contract exactly
20
- * Per CLAUDE.md §Architecture Overview - ACTP Protocol State Machine:
21
- * - COMMITTED can transition to IN_PROGRESS, DELIVERED, or CANCELLED
22
- * - IN_PROGRESS can transition to DELIVERED or CANCELLED (not DISPUTED)
23
- * - DISPUTED can only transition to SETTLED (not CANCELLED)
24
- */
25
12
  private static readonly TRANSITIONS;
26
- /**
27
- * Check if state transition is valid
28
- */
29
13
  static isValidTransition(from: State, to: State): boolean;
30
- /**
31
- * Check if state is terminal (no further transitions)
32
- */
33
14
  static isTerminalState(state: State): boolean;
34
- /**
35
- * Get human-readable state name
36
- */
37
15
  static getStateName(state: State): string;
38
- /**
39
- * Get all valid next states from current state
40
- */
41
16
  static getNextValidStates(currentState: State): State[];
42
- /**
43
- * Validate state transition or throw error
44
- */
45
17
  static validateTransition(from: State, to: State): void;
46
18
  }
47
19
  //# sourceMappingURL=state.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,oBAAY,KAAK;IACf,SAAS,IAAI;IACb,MAAM,IAAI;IACV,SAAS,IAAI;IACb,WAAW,IAAI;IACf,SAAS,IAAI;IACb,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,SAAS,IAAI;CACd;AAED,qBAAa,YAAY;IACvB;;;;;;;;OAQG;IACH,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CAYjC;IAEF;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO;IAIzD;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAI7C;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAIzC;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,GAAG,KAAK,EAAE;IAIvD;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,IAAI;CAYxD"}
1
+ {"version":3,"file":"state.d.ts","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":"AAKA,oBAAY,KAAK;IACf,SAAS,IAAI;IACb,MAAM,IAAI;IACV,SAAS,IAAI;IACb,WAAW,IAAI;IACf,SAAS,IAAI;IACb,OAAO,IAAI;IACX,QAAQ,IAAI;IACZ,SAAS,IAAI;CACd;AAED,qBAAa,YAAY;IAIvB,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,WAAW,CASjC;IAKF,MAAM,CAAC,iBAAiB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,OAAO;IAOzD,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,KAAK,GAAG,OAAO;IAO7C,MAAM,CAAC,YAAY,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM;IAOzC,MAAM,CAAC,kBAAkB,CAAC,YAAY,EAAE,KAAK,GAAG,KAAK,EAAE;IAOvD,MAAM,CAAC,kBAAkB,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,KAAK,GAAG,IAAI;CAYxD"}
@@ -1,8 +1,4 @@
1
1
  "use strict";
2
- /**
3
- * ACTP State Machine
4
- * Reference: Yellow Paper §3.2
5
- */
6
2
  Object.defineProperty(exports, "__esModule", { value: true });
7
3
  exports.StateMachine = exports.State = void 0;
8
4
  var State;
@@ -17,33 +13,18 @@ var State;
17
13
  State[State["CANCELLED"] = 7] = "CANCELLED";
18
14
  })(State || (exports.State = State = {}));
19
15
  class StateMachine {
20
- /**
21
- * Check if state transition is valid
22
- */
23
16
  static isValidTransition(from, to) {
24
17
  return this.TRANSITIONS[from]?.includes(to) ?? false;
25
18
  }
26
- /**
27
- * Check if state is terminal (no further transitions)
28
- */
29
19
  static isTerminalState(state) {
30
20
  return state === State.SETTLED || state === State.CANCELLED;
31
21
  }
32
- /**
33
- * Get human-readable state name
34
- */
35
22
  static getStateName(state) {
36
23
  return State[state];
37
24
  }
38
- /**
39
- * Get all valid next states from current state
40
- */
41
25
  static getNextValidStates(currentState) {
42
26
  return this.TRANSITIONS[currentState] || [];
43
27
  }
44
- /**
45
- * Validate state transition or throw error
46
- */
47
28
  static validateTransition(from, to) {
48
29
  if (!this.isValidTransition(from, to)) {
49
30
  const validStates = this.getNextValidStates(from)
@@ -55,26 +36,14 @@ class StateMachine {
55
36
  }
56
37
  }
57
38
  exports.StateMachine = StateMachine;
58
- /**
59
- * Valid state transitions per Yellow Paper §3.2.2
60
- *
61
- * SECURITY FIX (CRITICAL-1): State machine must match ACTPKernel contract exactly
62
- * Per CLAUDE.md §Architecture Overview - ACTP Protocol State Machine:
63
- * - COMMITTED can transition to IN_PROGRESS, DELIVERED, or CANCELLED
64
- * - IN_PROGRESS can transition to DELIVERED or CANCELLED (not DISPUTED)
65
- * - DISPUTED can only transition to SETTLED (not CANCELLED)
66
- */
67
39
  StateMachine.TRANSITIONS = {
68
- [State.INITIATED]: [State.QUOTED, State.COMMITTED, State.CANCELLED], // Allow direct INITIATED → COMMITTED (AIP-3)
40
+ [State.INITIATED]: [State.QUOTED, State.COMMITTED, State.CANCELLED],
69
41
  [State.QUOTED]: [State.COMMITTED, State.CANCELLED],
70
- // SECURITY FIX (CRITICAL-1): Add DELIVERED (can skip IN_PROGRESS)
71
- [State.COMMITTED]: [State.IN_PROGRESS, State.DELIVERED, State.CANCELLED],
72
- // SECURITY FIX (CRITICAL-1): Remove DISPUTED, add CANCELLED
73
- [State.IN_PROGRESS]: [State.DELIVERED, State.CANCELLED],
42
+ [State.COMMITTED]: [State.IN_PROGRESS, State.CANCELLED],
43
+ [State.IN_PROGRESS]: [State.DELIVERED, State.DISPUTED],
74
44
  [State.DELIVERED]: [State.SETTLED, State.DISPUTED],
75
- // SECURITY FIX (CRITICAL-1): Remove CANCELLED (disputes resolve to SETTLED only)
76
- [State.DISPUTED]: [State.SETTLED],
77
- [State.SETTLED]: [], // Terminal state
78
- [State.CANCELLED]: [] // Terminal state
45
+ [State.DISPUTED]: [State.SETTLED, State.CANCELLED],
46
+ [State.SETTLED]: [],
47
+ [State.CANCELLED]: []
79
48
  };
80
49
  //# sourceMappingURL=state.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,IAAY,KASX;AATD,WAAY,KAAK;IACf,2CAAa,CAAA;IACb,qCAAU,CAAA;IACV,2CAAa,CAAA;IACb,+CAAe,CAAA;IACf,2CAAa,CAAA;IACb,uCAAW,CAAA;IACX,yCAAY,CAAA;IACZ,2CAAa,CAAA;AACf,CAAC,EATW,KAAK,qBAAL,KAAK,QAShB;AAED,MAAa,YAAY;IAwBvB;;OAEG;IACH,MAAM,CAAC,iBAAiB,CAAC,IAAW,EAAE,EAAS;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;IACvD,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,eAAe,CAAC,KAAY;QACjC,OAAO,KAAK,KAAK,KAAK,CAAC,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9D,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,KAAY;QAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,YAAmB;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAED;;OAEG;IACH,MAAM,CAAC,kBAAkB,CAAC,IAAW,EAAE,EAAS;QAC9C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;iBAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,IAAI;gBAC3D,0BAA0B,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,IAAI,uBAAuB,EAAE,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;;AAlEH,oCAmEC;AAlEC;;;;;;;;GAQG;AACqB,wBAAW,GAA2B;IAC5D,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,EAAE,6CAA6C;IAClH,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAClD,kEAAkE;IAClE,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IACxE,4DAA4D;IAC5D,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IACvD,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;IAClD,iFAAiF;IACjF,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC;IACjC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,iBAAiB;IACtC,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,iBAAiB;CACxC,CAAC"}
1
+ {"version":3,"file":"state.js","sourceRoot":"","sources":["../../src/types/state.ts"],"names":[],"mappings":";;;AAKA,IAAY,KASX;AATD,WAAY,KAAK;IACf,2CAAa,CAAA;IACb,qCAAU,CAAA;IACV,2CAAa,CAAA;IACb,+CAAe,CAAA;IACf,2CAAa,CAAA;IACb,uCAAW,CAAA;IACX,yCAAY,CAAA;IACZ,2CAAa,CAAA;AACf,CAAC,EATW,KAAK,qBAAL,KAAK,QAShB;AAED,MAAa,YAAY;IAkBvB,MAAM,CAAC,iBAAiB,CAAC,IAAW,EAAE,EAAS;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,QAAQ,CAAC,EAAE,CAAC,IAAI,KAAK,CAAC;IACvD,CAAC;IAKD,MAAM,CAAC,eAAe,CAAC,KAAY;QACjC,OAAO,KAAK,KAAK,KAAK,CAAC,OAAO,IAAI,KAAK,KAAK,KAAK,CAAC,SAAS,CAAC;IAC9D,CAAC;IAKD,MAAM,CAAC,YAAY,CAAC,KAAY;QAC9B,OAAO,KAAK,CAAC,KAAK,CAAC,CAAC;IACtB,CAAC;IAKD,MAAM,CAAC,kBAAkB,CAAC,YAAmB;QAC3C,OAAO,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,IAAI,EAAE,CAAC;IAC9C,CAAC;IAKD,MAAM,CAAC,kBAAkB,CAAC,IAAW,EAAE,EAAS;QAC9C,IAAI,CAAC,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;YACtC,MAAM,WAAW,GAAG,IAAI,CAAC,kBAAkB,CAAC,IAAI,CAAC;iBAC9C,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;iBAClB,IAAI,CAAC,IAAI,CAAC,CAAC;YAEd,MAAM,IAAI,KAAK,CACb,6BAA6B,KAAK,CAAC,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC,IAAI;gBAC3D,0BAA0B,KAAK,CAAC,IAAI,CAAC,KAAK,WAAW,IAAI,uBAAuB,EAAE,CACnF,CAAC;QACJ,CAAC;IACH,CAAC;;AAzDH,oCA0DC;AAtDyB,wBAAW,GAA2B;IAC5D,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,MAAM,EAAE,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IACnE,CAAC,KAAK,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC;IAClD,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,KAAK,CAAC,SAAS,CAAC;IACvD,CAAC,KAAK,CAAC,WAAW,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC;IACtD,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,QAAQ,CAAC;IAClD,CAAC,KAAK,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,SAAS,CAAC;IAClD,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,EAAE;IACnB,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,EAAE;CACtB,CAAC"}
@@ -1,8 +1,4 @@
1
1
  import { State } from './state';
2
- /**
3
- * ACTP Transaction
4
- * Reference: Yellow Paper §3.1
5
- */
6
2
  export interface Transaction {
7
3
  txId: string;
8
4
  requester: string;
@@ -10,19 +6,12 @@ export interface Transaction {
10
6
  amount: bigint;
11
7
  state: State;
12
8
  createdAt: number;
13
- updatedAt: number;
14
9
  deadline: number;
15
10
  disputeWindow: number;
16
11
  escrowContract: string;
17
12
  escrowId: string;
18
- serviceHash: string;
19
- attestationUID: string;
20
13
  metadata: string;
21
- platformFeeBpsLocked: number;
22
14
  }
23
- /**
24
- * Parameters for creating a new transaction
25
- */
26
15
  export interface CreateTransactionParams {
27
16
  provider: string;
28
17
  requester: string;
@@ -31,18 +20,12 @@ export interface CreateTransactionParams {
31
20
  disputeWindow: number;
32
21
  metadata?: string;
33
22
  }
34
- /**
35
- * Dispute resolution split
36
- */
37
23
  export interface DisputeResolution {
38
24
  requesterAmount: bigint;
39
25
  providerAmount: bigint;
40
26
  mediatorAmount: bigint;
41
27
  mediator?: string;
42
28
  }
43
- /**
44
- * Economic parameters (fee structure)
45
- */
46
29
  export interface EconomicParams {
47
30
  baseFeeNumerator: number;
48
31
  baseFeeDenominator: number;
@@ -1 +1 @@
1
- {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/types/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAEhC;;;GAGG;AACH,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED;;GAEG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
1
+ {"version":3,"file":"transaction.d.ts","sourceRoot":"","sources":["../../src/types/transaction.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAMhC,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,KAAK,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAKD,MAAM,WAAW,uBAAuB;IACtC,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,iBAAiB;IAChC,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAKD,MAAM,WAAW,cAAc;IAC7B,gBAAgB,EAAE,MAAM,CAAC;IACzB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,kBAAkB,EAAE,MAAM,CAAC;CAC5B"}
@@ -1,75 +1,17 @@
1
- /**
2
- * IPFS Client Implementation
3
- * Wrapper around kubo-rpc-client (formerly ipfs-http-client) for AIP-4 delivery proof uploads
4
- */
5
- /// <reference types="node" />
6
- /**
7
- * IPFS Client Interface (from DeliveryProofBuilder)
8
- */
9
1
  export interface IPFSClient {
10
- /**
11
- * Upload data to IPFS
12
- * @param data - JSON string or buffer
13
- * @returns CIDv1 string (base32, e.g., "bafybeig...")
14
- */
15
2
  add(data: string | Buffer): Promise<string>;
16
- /**
17
- * Pin content to prevent garbage collection
18
- * @param cid - IPFS CID
19
- */
20
3
  pin(cid: string): Promise<void>;
21
- /**
22
- * Retrieve content from IPFS
23
- * @param cid - IPFS CID
24
- * @returns Content as string
25
- */
26
4
  get(cid: string): Promise<string>;
27
5
  }
28
- /**
29
- * IPFS Client Configuration
30
- */
31
6
  export interface IPFSClientConfig {
32
- /**
33
- * IPFS HTTP API endpoint
34
- * Default: http://localhost:5001 (local IPFS daemon)
35
- * Production: https://ipfs.infura.io:5001/api/v0 (Infura)
36
- */
37
7
  url?: string;
38
- /**
39
- * API authentication (for Infura, Pinata, etc.)
40
- */
41
8
  auth?: {
42
9
  username: string;
43
10
  password: string;
44
11
  };
45
- /**
46
- * HTTP headers (for API keys)
47
- */
48
12
  headers?: Record<string, string>;
49
- /**
50
- * Request timeout (ms)
51
- * Default: 60000 (60 seconds)
52
- */
53
13
  timeout?: number;
54
- /**
55
- * SECURITY FIX (MEDIUM-3): Maximum content size in bytes
56
- * Default: 50MB (50 * 1024 * 1024)
57
- */
58
- maxSize?: number;
59
- /**
60
- * SECURITY FIX (MEDIUM-3): Allowed URL protocols
61
- * Default: ['http:', 'https:'] (http for localhost, https for remote)
62
- */
63
- allowedProtocols?: string[];
64
- /**
65
- * SECURITY FIX (MEDIUM-3): Allow localhost URLs
66
- * Default: true (required for local IPFS daemon)
67
- */
68
- allowLocalhost?: boolean;
69
14
  }
70
- /**
71
- * Default IPFS configurations
72
- */
73
15
  export declare const IPFS_CONFIGS: {
74
16
  local: {
75
17
  url: string;
@@ -81,70 +23,15 @@ export declare const IPFS_CONFIGS: {
81
23
  url: string;
82
24
  };
83
25
  };
84
- /**
85
- * IPFS HTTP Client Implementation
86
- * Uses ipfs-http-client library
87
- *
88
- * SECURITY FIX (MEDIUM-3): Now includes URL and size validation
89
- */
90
26
  export declare class IPFSHTTPClientImpl implements IPFSClient {
91
27
  private client;
92
28
  private config;
93
- private static readonly DEFAULT_MAX_SIZE;
94
- private static readonly DEFAULT_ALLOWED_PROTOCOLS;
95
- private static readonly BLOCKED_HOSTS;
96
- /**
97
- * Create IPFS client
98
- *
99
- * SECURITY FIX (MEDIUM-3): Validates URL and adds size limits
100
- *
101
- * @param config - IPFS client configuration
102
- * @throws Error if URL is invalid or blocked
103
- */
104
29
  constructor(config?: IPFSClientConfig);
105
- /**
106
- * SECURITY FIX (MEDIUM-3): Validate IPFS endpoint URL
107
- */
108
- private validateUrl;
109
- /**
110
- * Upload data to IPFS
111
- *
112
- * SECURITY FIX (MEDIUM-3): Validates size before upload
113
- *
114
- * @param data - JSON string or buffer
115
- * @returns CIDv1 string (base32)
116
- * @throws Error if data exceeds maxSize
117
- */
118
30
  add(data: string | Buffer): Promise<string>;
119
- /**
120
- * Pin content to prevent garbage collection
121
- * @param cid - IPFS CID
122
- */
123
31
  pin(cid: string): Promise<void>;
124
- /**
125
- * Retrieve content from IPFS
126
- *
127
- * SECURITY FIX (MEDIUM-3): Validates size during retrieval
128
- *
129
- * @param cid - IPFS CID
130
- * @returns Content as string
131
- * @throws Error if content exceeds maxSize
132
- */
133
32
  get(cid: string): Promise<string>;
134
- /**
135
- * Check if IPFS daemon is reachable
136
- * @returns true if connected, false otherwise
137
- */
138
33
  isOnline(): Promise<boolean>;
139
- /**
140
- * Get IPFS node ID
141
- * @returns IPFS node ID
142
- */
143
34
  getNodeId(): Promise<string>;
144
35
  }
145
- /**
146
- * Create IPFS client with environment-based configuration
147
- * Checks for IPFS_URL, INFURA_PROJECT_ID, PINATA_API_KEY env vars
148
- */
149
36
  export declare function createIPFSClient(): IPFSClient;
150
37
  //# sourceMappingURL=IPFSClient.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"IPFSClient.d.ts","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"AAAA;;;GAGG;;AAIH;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB;;;;OAIG;IACH,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAE5C;;;OAGG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAEhC;;;;OAIG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B;;;;OAIG;IACH,GAAG,CAAC,EAAE,MAAM,CAAC;IAEb;;OAEG;IACH,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAEF;;OAEG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAEjC;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB;;;OAGG;IACH,gBAAgB,CAAC,EAAE,MAAM,EAAE,CAAC;IAE5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED;;GAEG;AACH,eAAO,MAAM,YAAY;;;;;;;;;;CAYxB,CAAC;AAEF;;;;;GAKG;AACH,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAA6B;IAG3C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,gBAAgB,CAAoB;IAC5D,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,yBAAyB,CAAuB;IACxE,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,aAAa,CAInC;IAEF;;;;;;;OAOG;gBACS,MAAM,GAAE,gBAAqB;IAoCzC;;OAEG;IACH,OAAO,CAAC,WAAW;IA+CnB;;;;;;;;OAQG;IACG,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBjD;;;OAGG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrC;;;;;;;;OAQG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAkCvC;;;OAGG;IACG,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IASlC;;;OAGG;IACG,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CAQnC;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CAkC7C"}
1
+ {"version":3,"file":"IPFSClient.d.ts","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,UAAU;IAMzB,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAM5C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAOhC,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;CACnC;AAKD,MAAM,WAAW,gBAAgB;IAM/B,GAAG,CAAC,EAAE,MAAM,CAAC;IAKb,IAAI,CAAC,EAAE;QACL,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IAKF,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAMjC,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAKD,eAAO,MAAM,YAAY;;;;;;;;;;CAYxB,CAAC;AAMF,qBAAa,kBAAmB,YAAW,UAAU;IACnD,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,MAAM,CAAmB;gBAMrB,MAAM,GAAE,gBAAqB;IAgCnC,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB3C,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAa/B,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IA4BjC,QAAQ,IAAI,OAAO,CAAC,OAAO,CAAC;IAa5B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;CAQnC;AAMD,wBAAgB,gBAAgB,IAAI,UAAU,CAkC7C"}
@@ -1,60 +1,30 @@
1
1
  "use strict";
2
- /**
3
- * IPFS Client Implementation
4
- * Wrapper around kubo-rpc-client (formerly ipfs-http-client) for AIP-4 delivery proof uploads
5
- */
6
2
  Object.defineProperty(exports, "__esModule", { value: true });
7
- exports.createIPFSClient = exports.IPFSHTTPClientImpl = exports.IPFS_CONFIGS = void 0;
3
+ exports.IPFSHTTPClientImpl = exports.IPFS_CONFIGS = void 0;
4
+ exports.createIPFSClient = createIPFSClient;
8
5
  const kubo_rpc_client_1 = require("kubo-rpc-client");
9
- /**
10
- * Default IPFS configurations
11
- */
12
6
  exports.IPFS_CONFIGS = {
13
7
  local: {
14
8
  url: 'http://localhost:5001'
15
9
  },
16
10
  infura: {
17
11
  url: 'https://ipfs.infura.io:5001/api/v0'
18
- // Auth required: Set INFURA_PROJECT_ID and INFURA_PROJECT_SECRET
19
12
  },
20
13
  pinata: {
21
14
  url: 'https://api.pinata.cloud'
22
- // Headers required: Set pinata_api_key and pinata_secret_api_key
23
15
  }
24
16
  };
25
- /**
26
- * IPFS HTTP Client Implementation
27
- * Uses ipfs-http-client library
28
- *
29
- * SECURITY FIX (MEDIUM-3): Now includes URL and size validation
30
- */
31
17
  class IPFSHTTPClientImpl {
32
- /**
33
- * Create IPFS client
34
- *
35
- * SECURITY FIX (MEDIUM-3): Validates URL and adds size limits
36
- *
37
- * @param config - IPFS client configuration
38
- * @throws Error if URL is invalid or blocked
39
- */
40
18
  constructor(config = {}) {
41
- const url = config.url || 'http://localhost:5001';
42
- // SECURITY FIX (MEDIUM-3): Validate URL
43
- this.validateUrl(url, config.allowLocalhost ?? true, config.allowedProtocols);
44
19
  this.config = {
45
- url,
20
+ url: config.url || 'http://localhost:5001',
46
21
  timeout: config.timeout || 60000,
47
- maxSize: config.maxSize || IPFSHTTPClientImpl.DEFAULT_MAX_SIZE,
48
- allowedProtocols: config.allowedProtocols || IPFSHTTPClientImpl.DEFAULT_ALLOWED_PROTOCOLS,
49
- allowLocalhost: config.allowLocalhost ?? true,
50
- auth: config.auth,
51
- headers: config.headers,
22
+ ...config
52
23
  };
53
24
  const options = {
54
25
  url: this.config.url,
55
26
  timeout: this.config.timeout
56
27
  };
57
- // Add authentication if provided
58
28
  if (this.config.auth) {
59
29
  options.headers = {
60
30
  ...this.config.headers,
@@ -66,70 +36,20 @@ class IPFSHTTPClientImpl {
66
36
  }
67
37
  this.client = (0, kubo_rpc_client_1.create)(options);
68
38
  }
69
- /**
70
- * SECURITY FIX (MEDIUM-3): Validate IPFS endpoint URL
71
- */
72
- validateUrl(url, allowLocalhost, allowedProtocols) {
73
- let parsed;
74
- try {
75
- parsed = new URL(url);
76
- }
77
- catch {
78
- throw new Error(`Invalid IPFS endpoint URL: ${url}`);
79
- }
80
- const protocols = allowedProtocols || IPFSHTTPClientImpl.DEFAULT_ALLOWED_PROTOCOLS;
81
- if (!protocols.includes(parsed.protocol)) {
82
- throw new Error(`IPFS endpoint protocol "${parsed.protocol}" not allowed. ` +
83
- `Allowed protocols: ${protocols.join(', ')}`);
84
- }
85
- const hostname = parsed.hostname.toLowerCase();
86
- // Check blocked hosts (cloud metadata endpoints)
87
- if (IPFSHTTPClientImpl.BLOCKED_HOSTS.includes(hostname)) {
88
- throw new Error(`IPFS endpoint hostname "${hostname}" is blocked for security reasons.`);
89
- }
90
- // Check localhost
91
- const isLocalhost = ['localhost', '127.0.0.1', '0.0.0.0', '[::1]'].includes(hostname);
92
- if (isLocalhost && !allowLocalhost) {
93
- throw new Error(`Localhost IPFS endpoints are disabled. Set allowLocalhost: true to enable.`);
94
- }
95
- // For remote hosts, require HTTPS
96
- if (!isLocalhost && parsed.protocol !== 'https:') {
97
- console.warn(`[SECURITY WARNING] Using non-HTTPS protocol "${parsed.protocol}" for remote IPFS endpoint "${hostname}". ` +
98
- `This may expose data in transit. Consider using HTTPS.`);
99
- }
100
- }
101
- /**
102
- * Upload data to IPFS
103
- *
104
- * SECURITY FIX (MEDIUM-3): Validates size before upload
105
- *
106
- * @param data - JSON string or buffer
107
- * @returns CIDv1 string (base32)
108
- * @throws Error if data exceeds maxSize
109
- */
110
39
  async add(data) {
111
40
  try {
112
41
  const content = typeof data === 'string' ? Buffer.from(data, 'utf-8') : data;
113
- // SECURITY FIX (MEDIUM-3): Check size before upload
114
- if (content.length > this.config.maxSize) {
115
- throw new Error(`Content too large: ${content.length} bytes exceeds maximum of ${this.config.maxSize} bytes`);
116
- }
117
42
  const result = await this.client.add(content, {
118
- cidVersion: 1, // Use CIDv1 (base32)
43
+ cidVersion: 1,
119
44
  hashAlg: 'sha2-256',
120
- pin: true // Auto-pin on upload
45
+ pin: true
121
46
  });
122
- // Convert CID to base32 string (e.g., "bafybeig...")
123
47
  return result.cid.toString();
124
48
  }
125
49
  catch (error) {
126
50
  throw new Error(`IPFS upload failed: ${error instanceof Error ? error.message : String(error)}`);
127
51
  }
128
52
  }
129
- /**
130
- * Pin content to prevent garbage collection
131
- * @param cid - IPFS CID
132
- */
133
53
  async pin(cid) {
134
54
  try {
135
55
  await this.client.pin.add(cid);
@@ -138,29 +58,13 @@ class IPFSHTTPClientImpl {
138
58
  throw new Error(`IPFS pin failed: ${error instanceof Error ? error.message : String(error)}`);
139
59
  }
140
60
  }
141
- /**
142
- * Retrieve content from IPFS
143
- *
144
- * SECURITY FIX (MEDIUM-3): Validates size during retrieval
145
- *
146
- * @param cid - IPFS CID
147
- * @returns Content as string
148
- * @throws Error if content exceeds maxSize
149
- */
150
61
  async get(cid) {
151
62
  try {
152
63
  const chunks = [];
153
- let totalLength = 0;
154
64
  for await (const chunk of this.client.cat(cid)) {
155
- totalLength += chunk.length;
156
- // SECURITY FIX (MEDIUM-3): Check size during streaming to prevent DoS
157
- if (totalLength > this.config.maxSize) {
158
- throw new Error(`Content too large: ${totalLength}+ bytes exceeds maximum of ${this.config.maxSize} bytes. ` +
159
- `Consider increasing maxSize in IPFSClientConfig if this is expected.`);
160
- }
161
65
  chunks.push(chunk);
162
66
  }
163
- // Concatenate all chunks
67
+ const totalLength = chunks.reduce((acc, chunk) => acc + chunk.length, 0);
164
68
  const result = new Uint8Array(totalLength);
165
69
  let offset = 0;
166
70
  for (const chunk of chunks) {
@@ -173,10 +77,6 @@ class IPFSHTTPClientImpl {
173
77
  throw new Error(`IPFS retrieval failed: ${error instanceof Error ? error.message : String(error)}`);
174
78
  }
175
79
  }
176
- /**
177
- * Check if IPFS daemon is reachable
178
- * @returns true if connected, false otherwise
179
- */
180
80
  async isOnline() {
181
81
  try {
182
82
  await this.client.id();
@@ -186,10 +86,6 @@ class IPFSHTTPClientImpl {
186
86
  return false;
187
87
  }
188
88
  }
189
- /**
190
- * Get IPFS node ID
191
- * @returns IPFS node ID
192
- */
193
89
  async getNodeId() {
194
90
  try {
195
91
  const id = await this.client.id();
@@ -201,20 +97,7 @@ class IPFSHTTPClientImpl {
201
97
  }
202
98
  }
203
99
  exports.IPFSHTTPClientImpl = IPFSHTTPClientImpl;
204
- // SECURITY FIX (MEDIUM-3): Default security settings
205
- IPFSHTTPClientImpl.DEFAULT_MAX_SIZE = 50 * 1024 * 1024; // 50MB
206
- IPFSHTTPClientImpl.DEFAULT_ALLOWED_PROTOCOLS = ['http:', 'https:'];
207
- IPFSHTTPClientImpl.BLOCKED_HOSTS = [
208
- 'metadata.google.internal',
209
- '169.254.169.254',
210
- 'metadata.aws.internal',
211
- ];
212
- /**
213
- * Create IPFS client with environment-based configuration
214
- * Checks for IPFS_URL, INFURA_PROJECT_ID, PINATA_API_KEY env vars
215
- */
216
100
  function createIPFSClient() {
217
- // Check for Infura credentials
218
101
  if (process.env.INFURA_PROJECT_ID && process.env.INFURA_PROJECT_SECRET) {
219
102
  return new IPFSHTTPClientImpl({
220
103
  url: 'https://ipfs.infura.io:5001/api/v0',
@@ -224,7 +107,6 @@ function createIPFSClient() {
224
107
  }
225
108
  });
226
109
  }
227
- // Check for Pinata credentials
228
110
  if (process.env.PINATA_API_KEY && process.env.PINATA_SECRET_API_KEY) {
229
111
  return new IPFSHTTPClientImpl({
230
112
  url: 'https://api.pinata.cloud',
@@ -234,16 +116,13 @@ function createIPFSClient() {
234
116
  }
235
117
  });
236
118
  }
237
- // Check for custom IPFS URL
238
119
  if (process.env.IPFS_URL) {
239
120
  return new IPFSHTTPClientImpl({
240
121
  url: process.env.IPFS_URL
241
122
  });
242
123
  }
243
- // Default to local IPFS daemon
244
124
  return new IPFSHTTPClientImpl({
245
125
  url: 'http://localhost:5001'
246
126
  });
247
127
  }
248
- exports.createIPFSClient = createIPFSClient;
249
128
  //# sourceMappingURL=IPFSClient.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"IPFSClient.js","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"IPFSClient.js","sourceRoot":"","sources":["../../src/utils/IPFSClient.ts"],"names":[],"mappings":"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"}