@agirails/sdk 2.0.1-beta → 2.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (405) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +116 -108
  3. package/bin/actp +10 -0
  4. package/dist/ACTPClient.d.ts +456 -33
  5. package/dist/ACTPClient.d.ts.map +1 -1
  6. package/dist/ACTPClient.js +477 -93
  7. package/dist/ACTPClient.js.map +1 -1
  8. package/dist/abi/AgentRegistry.json +782 -0
  9. package/dist/abi/EscrowVault.json +106 -38
  10. package/dist/abi/IdentityRegistry.json +316 -0
  11. package/dist/adapters/BaseAdapter.d.ts +231 -0
  12. package/dist/adapters/BaseAdapter.d.ts.map +1 -0
  13. package/dist/adapters/BaseAdapter.js +393 -0
  14. package/dist/adapters/BaseAdapter.js.map +1 -0
  15. package/dist/adapters/BeginnerAdapter.d.ts +152 -0
  16. package/dist/adapters/BeginnerAdapter.d.ts.map +1 -0
  17. package/dist/adapters/BeginnerAdapter.js +168 -0
  18. package/dist/adapters/BeginnerAdapter.js.map +1 -0
  19. package/dist/adapters/IntermediateAdapter.d.ts +211 -0
  20. package/dist/adapters/IntermediateAdapter.d.ts.map +1 -0
  21. package/dist/adapters/IntermediateAdapter.js +260 -0
  22. package/dist/adapters/IntermediateAdapter.js.map +1 -0
  23. package/dist/adapters/index.d.ts +15 -0
  24. package/dist/adapters/index.d.ts.map +1 -0
  25. package/dist/adapters/index.js +26 -0
  26. package/dist/adapters/index.js.map +1 -0
  27. package/dist/builders/DeliveryProofBuilder.d.ts +60 -1
  28. package/dist/builders/DeliveryProofBuilder.d.ts.map +1 -1
  29. package/dist/builders/DeliveryProofBuilder.js +81 -5
  30. package/dist/builders/DeliveryProofBuilder.js.map +1 -1
  31. package/dist/builders/QuoteBuilder.d.ts +101 -0
  32. package/dist/builders/QuoteBuilder.d.ts.map +1 -1
  33. package/dist/builders/QuoteBuilder.js +120 -3
  34. package/dist/builders/QuoteBuilder.js.map +1 -1
  35. package/dist/builders/index.d.ts +4 -0
  36. package/dist/builders/index.d.ts.map +1 -1
  37. package/dist/builders/index.js +4 -0
  38. package/dist/builders/index.js.map +1 -1
  39. package/dist/cli/commands/balance.d.ts +13 -0
  40. package/dist/cli/commands/balance.d.ts.map +1 -0
  41. package/dist/cli/commands/balance.js +89 -0
  42. package/dist/cli/commands/balance.js.map +1 -0
  43. package/dist/cli/commands/batch.d.ts +24 -0
  44. package/dist/cli/commands/batch.d.ts.map +1 -0
  45. package/dist/cli/commands/batch.js +424 -0
  46. package/dist/cli/commands/batch.js.map +1 -0
  47. package/dist/cli/commands/config.d.ts +13 -0
  48. package/dist/cli/commands/config.d.ts.map +1 -0
  49. package/dist/cli/commands/config.js +192 -0
  50. package/dist/cli/commands/config.js.map +1 -0
  51. package/dist/cli/commands/init.d.ts +19 -0
  52. package/dist/cli/commands/init.d.ts.map +1 -0
  53. package/dist/cli/commands/init.js +143 -0
  54. package/dist/cli/commands/init.js.map +1 -0
  55. package/dist/cli/commands/mint.d.ts +13 -0
  56. package/dist/cli/commands/mint.d.ts.map +1 -0
  57. package/dist/cli/commands/mint.js +91 -0
  58. package/dist/cli/commands/mint.js.map +1 -0
  59. package/dist/cli/commands/pay.d.ts +18 -0
  60. package/dist/cli/commands/pay.d.ts.map +1 -0
  61. package/dist/cli/commands/pay.js +87 -0
  62. package/dist/cli/commands/pay.js.map +1 -0
  63. package/dist/cli/commands/simulate.d.ts +32 -0
  64. package/dist/cli/commands/simulate.d.ts.map +1 -0
  65. package/dist/cli/commands/simulate.js +290 -0
  66. package/dist/cli/commands/simulate.js.map +1 -0
  67. package/dist/cli/commands/time.d.ts +29 -0
  68. package/dist/cli/commands/time.d.ts.map +1 -0
  69. package/dist/cli/commands/time.js +252 -0
  70. package/dist/cli/commands/time.js.map +1 -0
  71. package/dist/cli/commands/tx.d.ts +16 -0
  72. package/dist/cli/commands/tx.d.ts.map +1 -0
  73. package/dist/cli/commands/tx.js +379 -0
  74. package/dist/cli/commands/tx.js.map +1 -0
  75. package/dist/cli/commands/watch.d.ts +20 -0
  76. package/dist/cli/commands/watch.d.ts.map +1 -0
  77. package/dist/cli/commands/watch.js +160 -0
  78. package/dist/cli/commands/watch.js.map +1 -0
  79. package/dist/cli/index.d.ts +17 -0
  80. package/dist/cli/index.d.ts.map +1 -0
  81. package/dist/cli/index.js +104 -0
  82. package/dist/cli/index.js.map +1 -0
  83. package/dist/cli/utils/client.d.ts +70 -0
  84. package/dist/cli/utils/client.d.ts.map +1 -0
  85. package/dist/cli/utils/client.js +240 -0
  86. package/dist/cli/utils/client.js.map +1 -0
  87. package/dist/cli/utils/config.d.ts +91 -0
  88. package/dist/cli/utils/config.d.ts.map +1 -0
  89. package/dist/cli/utils/config.js +240 -0
  90. package/dist/cli/utils/config.js.map +1 -0
  91. package/dist/cli/utils/output.d.ts +174 -0
  92. package/dist/cli/utils/output.d.ts.map +1 -0
  93. package/dist/cli/utils/output.js +380 -0
  94. package/dist/cli/utils/output.js.map +1 -0
  95. package/dist/config/networks.d.ts +28 -0
  96. package/dist/config/networks.d.ts.map +1 -1
  97. package/dist/config/networks.js +60 -12
  98. package/dist/config/networks.js.map +1 -1
  99. package/dist/errors/index.d.ts +165 -2
  100. package/dist/errors/index.d.ts.map +1 -1
  101. package/dist/errors/index.js +260 -2
  102. package/dist/errors/index.js.map +1 -1
  103. package/dist/index.d.ts +61 -13
  104. package/dist/index.d.ts.map +1 -1
  105. package/dist/index.js +141 -36
  106. package/dist/index.js.map +1 -1
  107. package/dist/level0/Provider.d.ts +106 -0
  108. package/dist/level0/Provider.d.ts.map +1 -0
  109. package/dist/level0/Provider.js +10 -0
  110. package/dist/level0/Provider.js.map +1 -0
  111. package/dist/level0/ServiceDirectory.d.ts +74 -0
  112. package/dist/level0/ServiceDirectory.d.ts.map +1 -0
  113. package/dist/level0/ServiceDirectory.js +122 -0
  114. package/dist/level0/ServiceDirectory.js.map +1 -0
  115. package/dist/level0/index.d.ts +10 -0
  116. package/dist/level0/index.d.ts.map +1 -0
  117. package/dist/level0/index.js +15 -0
  118. package/dist/level0/index.js.map +1 -0
  119. package/dist/level0/provide.d.ts +51 -0
  120. package/dist/level0/provide.d.ts.map +1 -0
  121. package/dist/level0/provide.js +113 -0
  122. package/dist/level0/provide.js.map +1 -0
  123. package/dist/level0/request.d.ts +53 -0
  124. package/dist/level0/request.d.ts.map +1 -0
  125. package/dist/level0/request.js +462 -0
  126. package/dist/level0/request.js.map +1 -0
  127. package/dist/level1/Agent.d.ts +472 -0
  128. package/dist/level1/Agent.d.ts.map +1 -0
  129. package/dist/level1/Agent.js +1091 -0
  130. package/dist/level1/Agent.js.map +1 -0
  131. package/dist/level1/index.d.ts +10 -0
  132. package/dist/level1/index.d.ts.map +1 -0
  133. package/dist/level1/index.js +30 -0
  134. package/dist/level1/index.js.map +1 -0
  135. package/dist/level1/pricing/PriceCalculator.d.ts +62 -0
  136. package/dist/level1/pricing/PriceCalculator.d.ts.map +1 -0
  137. package/dist/level1/pricing/PriceCalculator.js +237 -0
  138. package/dist/level1/pricing/PriceCalculator.js.map +1 -0
  139. package/dist/level1/pricing/PricingStrategy.d.ts +179 -0
  140. package/dist/level1/pricing/PricingStrategy.d.ts.map +1 -0
  141. package/dist/level1/pricing/PricingStrategy.js +11 -0
  142. package/dist/level1/pricing/PricingStrategy.js.map +1 -0
  143. package/dist/level1/types/Job.d.ts +166 -0
  144. package/dist/level1/types/Job.d.ts.map +1 -0
  145. package/dist/level1/types/Job.js +11 -0
  146. package/dist/level1/types/Job.js.map +1 -0
  147. package/dist/level1/types/Options.d.ts +258 -0
  148. package/dist/level1/types/Options.d.ts.map +1 -0
  149. package/dist/level1/types/Options.js +8 -0
  150. package/dist/level1/types/Options.js.map +1 -0
  151. package/dist/level1/types/index.d.ts +8 -0
  152. package/dist/level1/types/index.d.ts.map +1 -0
  153. package/dist/level1/types/index.js +8 -0
  154. package/dist/level1/types/index.js.map +1 -0
  155. package/dist/protocol/ACTPKernel.d.ts +229 -2
  156. package/dist/protocol/ACTPKernel.d.ts.map +1 -1
  157. package/dist/protocol/ACTPKernel.js +367 -33
  158. package/dist/protocol/ACTPKernel.js.map +1 -1
  159. package/dist/protocol/AgentRegistry.d.ts +177 -0
  160. package/dist/protocol/AgentRegistry.d.ts.map +1 -0
  161. package/dist/protocol/AgentRegistry.js +449 -0
  162. package/dist/protocol/AgentRegistry.js.map +1 -0
  163. package/dist/protocol/DIDManager.d.ts +289 -0
  164. package/dist/protocol/DIDManager.d.ts.map +1 -0
  165. package/dist/protocol/DIDManager.js +481 -0
  166. package/dist/protocol/DIDManager.js.map +1 -0
  167. package/dist/protocol/DIDResolver.d.ts +236 -0
  168. package/dist/protocol/DIDResolver.d.ts.map +1 -0
  169. package/dist/protocol/DIDResolver.js +495 -0
  170. package/dist/protocol/DIDResolver.js.map +1 -0
  171. package/dist/protocol/EASHelper.d.ts +57 -2
  172. package/dist/protocol/EASHelper.d.ts.map +1 -1
  173. package/dist/protocol/EASHelper.js +230 -37
  174. package/dist/protocol/EASHelper.js.map +1 -1
  175. package/dist/protocol/EscrowVault.d.ts +93 -2
  176. package/dist/protocol/EscrowVault.d.ts.map +1 -1
  177. package/dist/protocol/EscrowVault.js +122 -33
  178. package/dist/protocol/EscrowVault.js.map +1 -1
  179. package/dist/protocol/EventMonitor.d.ts +45 -1
  180. package/dist/protocol/EventMonitor.d.ts.map +1 -1
  181. package/dist/protocol/EventMonitor.js +64 -8
  182. package/dist/protocol/EventMonitor.js.map +1 -1
  183. package/dist/protocol/MessageSigner.d.ts +116 -2
  184. package/dist/protocol/MessageSigner.d.ts.map +1 -1
  185. package/dist/protocol/MessageSigner.js +215 -9
  186. package/dist/protocol/MessageSigner.js.map +1 -1
  187. package/dist/protocol/ProofGenerator.d.ts +93 -0
  188. package/dist/protocol/ProofGenerator.d.ts.map +1 -1
  189. package/dist/protocol/ProofGenerator.js +194 -9
  190. package/dist/protocol/ProofGenerator.js.map +1 -1
  191. package/dist/protocol/QuoteBuilder.d.ts +8 -0
  192. package/dist/protocol/QuoteBuilder.d.ts.map +1 -1
  193. package/dist/protocol/QuoteBuilder.js +8 -0
  194. package/dist/protocol/QuoteBuilder.js.map +1 -1
  195. package/dist/runtime/BlockchainRuntime.d.ts +360 -0
  196. package/dist/runtime/BlockchainRuntime.d.ts.map +1 -0
  197. package/dist/runtime/BlockchainRuntime.js +767 -0
  198. package/dist/runtime/BlockchainRuntime.js.map +1 -0
  199. package/dist/runtime/IACTPRuntime.d.ts +271 -0
  200. package/dist/runtime/IACTPRuntime.d.ts.map +1 -0
  201. package/dist/runtime/IACTPRuntime.js +15 -0
  202. package/dist/runtime/IACTPRuntime.js.map +1 -0
  203. package/dist/runtime/MockRuntime.d.ts +445 -0
  204. package/dist/runtime/MockRuntime.d.ts.map +1 -0
  205. package/dist/runtime/MockRuntime.js +1065 -0
  206. package/dist/runtime/MockRuntime.js.map +1 -0
  207. package/dist/runtime/MockStateManager.d.ts +233 -0
  208. package/dist/runtime/MockStateManager.d.ts.map +1 -0
  209. package/dist/runtime/MockStateManager.js +533 -0
  210. package/dist/runtime/MockStateManager.js.map +1 -0
  211. package/dist/runtime/index.d.ts +14 -0
  212. package/dist/runtime/index.d.ts.map +1 -0
  213. package/dist/runtime/index.js +42 -0
  214. package/dist/runtime/index.js.map +1 -0
  215. package/dist/runtime/types/MockState.d.ts +167 -0
  216. package/dist/runtime/types/MockState.d.ts.map +1 -0
  217. package/dist/runtime/types/MockState.js +43 -0
  218. package/dist/runtime/types/MockState.js.map +1 -0
  219. package/dist/types/agent.d.ts +76 -0
  220. package/dist/types/agent.d.ts.map +1 -0
  221. package/dist/types/agent.js +8 -0
  222. package/dist/types/agent.js.map +1 -0
  223. package/dist/types/did.d.ts +192 -0
  224. package/dist/types/did.d.ts.map +1 -0
  225. package/dist/types/did.js +38 -0
  226. package/dist/types/did.js.map +1 -0
  227. package/dist/types/eip712.d.ts +34 -0
  228. package/dist/types/eip712.d.ts.map +1 -1
  229. package/dist/types/eip712.js +31 -5
  230. package/dist/types/eip712.js.map +1 -1
  231. package/dist/types/escrow.d.ts +17 -10
  232. package/dist/types/escrow.d.ts.map +1 -1
  233. package/dist/types/index.d.ts +5 -0
  234. package/dist/types/index.d.ts.map +1 -1
  235. package/dist/types/index.js +8 -0
  236. package/dist/types/index.js.map +1 -1
  237. package/dist/types/message.d.ts +32 -0
  238. package/dist/types/message.d.ts.map +1 -1
  239. package/dist/types/message.js +4 -0
  240. package/dist/types/message.js.map +1 -1
  241. package/dist/types/state.d.ts +28 -0
  242. package/dist/types/state.d.ts.map +1 -1
  243. package/dist/types/state.js +37 -6
  244. package/dist/types/state.js.map +1 -1
  245. package/dist/types/transaction.d.ts +17 -0
  246. package/dist/types/transaction.d.ts.map +1 -1
  247. package/dist/utils/ErrorRecoveryGuide.d.ts +125 -0
  248. package/dist/utils/ErrorRecoveryGuide.d.ts.map +1 -0
  249. package/dist/utils/ErrorRecoveryGuide.js +579 -0
  250. package/dist/utils/ErrorRecoveryGuide.js.map +1 -0
  251. package/dist/utils/Helpers.d.ts +453 -0
  252. package/dist/utils/Helpers.d.ts.map +1 -0
  253. package/dist/utils/Helpers.js +623 -0
  254. package/dist/utils/Helpers.js.map +1 -0
  255. package/dist/utils/IPFSClient.d.ts +113 -0
  256. package/dist/utils/IPFSClient.d.ts.map +1 -1
  257. package/dist/utils/IPFSClient.js +128 -7
  258. package/dist/utils/IPFSClient.js.map +1 -1
  259. package/dist/utils/Logger.d.ts +195 -0
  260. package/dist/utils/Logger.d.ts.map +1 -0
  261. package/dist/utils/Logger.js +382 -0
  262. package/dist/utils/Logger.js.map +1 -0
  263. package/dist/utils/NonceManager.d.ts +234 -1
  264. package/dist/utils/NonceManager.d.ts.map +1 -1
  265. package/dist/utils/NonceManager.js +372 -7
  266. package/dist/utils/NonceManager.js.map +1 -1
  267. package/dist/utils/RateLimiter.d.ts +253 -0
  268. package/dist/utils/RateLimiter.d.ts.map +1 -0
  269. package/dist/utils/RateLimiter.js +424 -0
  270. package/dist/utils/RateLimiter.js.map +1 -0
  271. package/dist/utils/ReceivedNonceTracker.d.ts +175 -0
  272. package/dist/utils/ReceivedNonceTracker.d.ts.map +1 -1
  273. package/dist/utils/ReceivedNonceTracker.js +261 -5
  274. package/dist/utils/ReceivedNonceTracker.js.map +1 -1
  275. package/dist/utils/SDKLifecycle.d.ts +156 -0
  276. package/dist/utils/SDKLifecycle.d.ts.map +1 -0
  277. package/dist/utils/SDKLifecycle.js +347 -0
  278. package/dist/utils/SDKLifecycle.js.map +1 -0
  279. package/dist/utils/SecureNonce.d.ts +57 -0
  280. package/dist/utils/SecureNonce.d.ts.map +1 -0
  281. package/dist/utils/SecureNonce.js +80 -0
  282. package/dist/utils/SecureNonce.js.map +1 -0
  283. package/dist/utils/Semaphore.d.ts +123 -0
  284. package/dist/utils/Semaphore.d.ts.map +1 -0
  285. package/dist/utils/Semaphore.js +247 -0
  286. package/dist/utils/Semaphore.js.map +1 -0
  287. package/dist/utils/UsedAttestationTracker.d.ts +167 -0
  288. package/dist/utils/UsedAttestationTracker.d.ts.map +1 -0
  289. package/dist/utils/UsedAttestationTracker.js +309 -0
  290. package/dist/utils/UsedAttestationTracker.js.map +1 -0
  291. package/dist/utils/canonicalJson.d.ts +22 -0
  292. package/dist/utils/canonicalJson.d.ts.map +1 -1
  293. package/dist/utils/canonicalJson.js +26 -3
  294. package/dist/utils/canonicalJson.js.map +1 -1
  295. package/dist/utils/computeTypeHash.d.ts +14 -0
  296. package/dist/utils/computeTypeHash.d.ts.map +1 -1
  297. package/dist/utils/computeTypeHash.js +19 -2
  298. package/dist/utils/computeTypeHash.js.map +1 -1
  299. package/dist/utils/fsSafe.d.ts +14 -0
  300. package/dist/utils/fsSafe.d.ts.map +1 -0
  301. package/dist/utils/fsSafe.js +89 -0
  302. package/dist/utils/fsSafe.js.map +1 -0
  303. package/dist/utils/index.d.ts +15 -0
  304. package/dist/utils/index.d.ts.map +1 -0
  305. package/dist/utils/index.js +51 -0
  306. package/dist/utils/index.js.map +1 -0
  307. package/dist/utils/security.d.ts +147 -0
  308. package/dist/utils/security.d.ts.map +1 -0
  309. package/dist/utils/security.js +391 -0
  310. package/dist/utils/security.js.map +1 -0
  311. package/dist/utils/validation.d.ts +40 -0
  312. package/dist/utils/validation.d.ts.map +1 -1
  313. package/dist/utils/validation.js +184 -7
  314. package/dist/utils/validation.js.map +1 -1
  315. package/package.json +54 -37
  316. package/src/ACTPClient.ts +692 -178
  317. package/src/abi/AgentRegistry.json +782 -0
  318. package/src/abi/EscrowVault.json +106 -38
  319. package/src/abi/IdentityRegistry.json +316 -0
  320. package/src/adapters/BaseAdapter.ts +473 -0
  321. package/src/adapters/BeginnerAdapter.ts +232 -0
  322. package/src/adapters/IntermediateAdapter.ts +316 -0
  323. package/src/adapters/index.ts +25 -0
  324. package/src/builders/DeliveryProofBuilder.ts +3 -2
  325. package/src/cli/commands/balance.ts +110 -0
  326. package/src/cli/commands/batch.ts +487 -0
  327. package/src/cli/commands/config.ts +231 -0
  328. package/src/cli/commands/init.ts +161 -0
  329. package/src/cli/commands/mint.ts +116 -0
  330. package/src/cli/commands/pay.ts +113 -0
  331. package/src/cli/commands/simulate.ts +345 -0
  332. package/src/cli/commands/time.ts +303 -0
  333. package/src/cli/commands/tx.ts +448 -0
  334. package/src/cli/commands/watch.ts +211 -0
  335. package/src/cli/index.ts +116 -0
  336. package/src/cli/utils/client.ts +249 -0
  337. package/src/cli/utils/config.ts +282 -0
  338. package/src/cli/utils/output.ts +465 -0
  339. package/src/config/networks.ts +32 -9
  340. package/src/errors/index.ts +298 -1
  341. package/src/index.ts +207 -71
  342. package/src/level0/Provider.ts +117 -0
  343. package/src/level0/ServiceDirectory.ts +131 -0
  344. package/src/level0/index.ts +10 -0
  345. package/src/level0/provide.ts +131 -0
  346. package/src/level0/request.ts +494 -0
  347. package/src/level1/Agent.ts +1432 -0
  348. package/src/level1/index.ts +10 -0
  349. package/src/level1/pricing/PriceCalculator.ts +255 -0
  350. package/src/level1/pricing/PricingStrategy.ts +198 -0
  351. package/src/level1/types/Job.ts +179 -0
  352. package/src/level1/types/Options.ts +291 -0
  353. package/src/level1/types/index.ts +8 -0
  354. package/src/protocol/ACTPKernel.ts +175 -23
  355. package/src/protocol/AgentRegistry.ts +559 -0
  356. package/src/protocol/DIDManager.ts +629 -0
  357. package/src/protocol/DIDResolver.ts +554 -0
  358. package/src/protocol/EASHelper.ts +230 -46
  359. package/src/protocol/EscrowVault.ts +68 -50
  360. package/src/protocol/EventMonitor.ts +44 -15
  361. package/src/protocol/MessageSigner.ts +193 -13
  362. package/src/protocol/ProofGenerator.ts +223 -4
  363. package/src/runtime/BlockchainRuntime.ts +993 -0
  364. package/src/runtime/IACTPRuntime.ts +284 -0
  365. package/src/runtime/MockRuntime.ts +1244 -0
  366. package/src/runtime/MockStateManager.ts +576 -0
  367. package/src/runtime/index.ts +25 -0
  368. package/src/runtime/types/MockState.ts +227 -0
  369. package/src/types/agent.ts +79 -0
  370. package/src/types/did.ts +223 -0
  371. package/src/types/escrow.ts +12 -11
  372. package/src/types/index.ts +5 -1
  373. package/src/types/state.ts +12 -3
  374. package/src/types/transaction.ts +4 -1
  375. package/src/utils/ErrorRecoveryGuide.ts +675 -0
  376. package/src/utils/Helpers.ts +688 -0
  377. package/src/utils/IPFSClient.ts +122 -5
  378. package/src/utils/Logger.ts +484 -0
  379. package/src/utils/NonceManager.ts +305 -8
  380. package/src/utils/RateLimiter.ts +534 -0
  381. package/src/utils/ReceivedNonceTracker.ts +170 -0
  382. package/src/utils/SDKLifecycle.ts +416 -0
  383. package/src/utils/SecureNonce.ts +78 -0
  384. package/src/utils/Semaphore.ts +276 -0
  385. package/src/utils/UsedAttestationTracker.ts +387 -0
  386. package/src/utils/fsSafe.ts +75 -0
  387. package/src/utils/index.ts +80 -0
  388. package/src/utils/security.ts +418 -0
  389. package/src/utils/validation.ts +164 -0
  390. package/src/__tests__/ProofGenerator.test.ts +0 -124
  391. package/src/__tests__/QuoteBuilder.test.ts +0 -516
  392. package/src/__tests__/StateMachine.test.ts +0 -82
  393. package/src/__tests__/builders/DeliveryProofBuilder.test.ts +0 -581
  394. package/src/__tests__/integration/ACTPClient.test.ts +0 -263
  395. package/src/__tests__/integration.test.ts +0 -289
  396. package/src/__tests__/protocol/EASHelper.test.ts +0 -472
  397. package/src/__tests__/protocol/EventMonitor.test.ts +0 -382
  398. package/src/__tests__/security/ACTPKernel.security.test.ts +0 -1167
  399. package/src/__tests__/security/EscrowVault.security.test.ts +0 -570
  400. package/src/__tests__/security/MessageSigner.security.test.ts +0 -286
  401. package/src/__tests__/security/NonceReplay.security.test.ts +0 -501
  402. package/src/__tests__/security/validation.security.test.ts +0 -376
  403. package/src/__tests__/utils/IPFSClient.test.ts +0 -262
  404. package/src/__tests__/utils/NonceManager.test.ts +0 -205
  405. package/src/__tests__/utils/canonicalJson.test.ts +0 -153
@@ -1 +1 @@
1
- {"version":3,"file":"ReceivedNonceTracker.js","sourceRoot":"","sources":["../../src/utils/ReceivedNonceTracker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ReceivedNonceTracker.js","sourceRoot":"","sources":["../../src/utils/ReceivedNonceTracker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,156 @@
1
+ /**
2
+ * SDKLifecycle - Proper cleanup and resource management
3
+ *
4
+ * SECURITY FIX (M-8): Ensures proper cleanup on SDK shutdown:
5
+ * - Connection cleanup
6
+ * - Pending request handling
7
+ * - Memory release
8
+ * - Graceful shutdown
9
+ *
10
+ * @module utils/SDKLifecycle
11
+ */
12
+ import { Logger } from './Logger';
13
+ /**
14
+ * Disposable resource interface
15
+ */
16
+ export interface Disposable {
17
+ /** Cleanup method */
18
+ dispose(): Promise<void> | void;
19
+ }
20
+ /**
21
+ * Shutdown handler function
22
+ */
23
+ export type ShutdownHandler = () => Promise<void> | void;
24
+ /**
25
+ * Lifecycle event types
26
+ */
27
+ export type LifecycleEvent = 'initializing' | 'ready' | 'shutting-down' | 'shutdown' | 'error';
28
+ /**
29
+ * Lifecycle event listener
30
+ */
31
+ export type LifecycleListener = (event: LifecycleEvent, data?: unknown) => void;
32
+ /**
33
+ * SDK Lifecycle Manager
34
+ *
35
+ * Manages SDK initialization, shutdown, and resource cleanup.
36
+ *
37
+ * @example
38
+ * ```typescript
39
+ * const lifecycle = new SDKLifecycle();
40
+ *
41
+ * // Register cleanup handlers
42
+ * lifecycle.onShutdown(async () => {
43
+ * await closeConnections();
44
+ * });
45
+ *
46
+ * // Register disposable resources
47
+ * lifecycle.registerDisposable(myResource);
48
+ *
49
+ * // Later, initiate shutdown
50
+ * await lifecycle.shutdown();
51
+ * ```
52
+ */
53
+ export declare class SDKLifecycle {
54
+ private state;
55
+ private shutdownHandlers;
56
+ private disposables;
57
+ private listeners;
58
+ private shutdownPromise;
59
+ private readonly logger;
60
+ private isShuttingDown;
61
+ private processHandlers;
62
+ private processHandlersRegistered;
63
+ constructor(logger?: Logger);
64
+ /**
65
+ * Get current lifecycle state
66
+ */
67
+ getState(): LifecycleEvent;
68
+ /**
69
+ * Check if SDK is ready for operations
70
+ */
71
+ isReady(): boolean;
72
+ /**
73
+ * Mark SDK as ready
74
+ */
75
+ markReady(): void;
76
+ /**
77
+ * Register a shutdown handler
78
+ *
79
+ * @param handler - Function to call during shutdown
80
+ * @returns Unregister function
81
+ */
82
+ onShutdown(handler: ShutdownHandler): () => void;
83
+ /**
84
+ * Register a disposable resource
85
+ *
86
+ * @param disposable - Resource with dispose() method
87
+ * @returns Unregister function
88
+ */
89
+ registerDisposable(disposable: Disposable): () => void;
90
+ /**
91
+ * Add lifecycle event listener
92
+ *
93
+ * @param listener - Event listener function
94
+ * @returns Unregister function
95
+ */
96
+ addListener(listener: LifecycleListener): () => void;
97
+ /**
98
+ * Emit lifecycle event
99
+ */
100
+ private emit;
101
+ /**
102
+ * Initiate graceful shutdown
103
+ *
104
+ * @param timeout - Maximum time to wait for cleanup (ms)
105
+ * @returns Promise that resolves when shutdown is complete
106
+ */
107
+ shutdown(timeout?: number): Promise<void>;
108
+ /**
109
+ * Execute shutdown sequence
110
+ */
111
+ private executeShutdown;
112
+ /**
113
+ * Register process-level shutdown handlers
114
+ *
115
+ * SECURITY FIX (NEW-HIGH-2): Store handler references for cleanup
116
+ * to prevent memory leaks when multiple SDKLifecycle instances are created.
117
+ */
118
+ private registerProcessHandlers;
119
+ /**
120
+ * Unregister process-level shutdown handlers
121
+ *
122
+ * SECURITY FIX (NEW-HIGH-2): Remove handlers to prevent memory leaks
123
+ */
124
+ private unregisterProcessHandlers;
125
+ /**
126
+ * Create a disposable wrapper for any cleanup function
127
+ */
128
+ static createDisposable(cleanup: () => Promise<void> | void): Disposable;
129
+ }
130
+ /**
131
+ * Global SDK lifecycle manager instance
132
+ */
133
+ export declare const sdkLifecycle: SDKLifecycle;
134
+ /**
135
+ * Convenience function to run cleanup on shutdown
136
+ *
137
+ * @example
138
+ * ```typescript
139
+ * const cleanup = onShutdown(async () => {
140
+ * await closeDatabase();
141
+ * });
142
+ *
143
+ * // Later, to remove the handler:
144
+ * cleanup();
145
+ * ```
146
+ */
147
+ export declare function onShutdown(handler: ShutdownHandler): () => void;
148
+ /**
149
+ * Convenience function to register disposable
150
+ */
151
+ export declare function registerDisposable(disposable: Disposable): () => void;
152
+ /**
153
+ * Convenience function to shutdown SDK
154
+ */
155
+ export declare function shutdownSDK(timeout?: number): Promise<void>;
156
+ //# sourceMappingURL=SDKLifecycle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SDKLifecycle.d.ts","sourceRoot":"","sources":["../../src/utils/SDKLifecycle.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,EAAa,MAAM,EAAE,MAAM,UAAU,CAAC;AAE7C;;GAEG;AACH,MAAM,WAAW,UAAU;IACzB,qBAAqB;IACrB,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CACjC;AAED;;GAEG;AACH,MAAM,MAAM,eAAe,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AAEzD;;GAEG;AACH,MAAM,MAAM,cAAc,GACtB,cAAc,GACd,OAAO,GACP,eAAe,GACf,UAAU,GACV,OAAO,CAAC;AAEZ;;GAEG;AACH,MAAM,MAAM,iBAAiB,GAAG,CAAC,KAAK,EAAE,cAAc,EAAE,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;AAEhF;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,qBAAa,YAAY;IACvB,OAAO,CAAC,KAAK,CAAkC;IAC/C,OAAO,CAAC,gBAAgB,CAAyB;IACjD,OAAO,CAAC,WAAW,CAAoB;IACvC,OAAO,CAAC,SAAS,CAA2B;IAC5C,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAS;IAChC,OAAO,CAAC,cAAc,CAAS;IAG/B,OAAO,CAAC,eAAe,CAKhB;IACP,OAAO,CAAC,yBAAyB,CAAS;gBAE9B,MAAM,CAAC,EAAE,MAAM;IAO3B;;OAEG;IACH,QAAQ,IAAI,cAAc;IAI1B;;OAEG;IACH,OAAO,IAAI,OAAO;IAIlB;;OAEG;IACH,SAAS,IAAI,IAAI;IAMjB;;;;;OAKG;IACH,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,IAAI;IAWhD;;;;;OAKG;IACH,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,IAAI;IAWtD;;;;;OAKG;IACH,WAAW,CAAC,QAAQ,EAAE,iBAAiB,GAAG,MAAM,IAAI;IAWpD;;OAEG;IACH,OAAO,CAAC,IAAI;IAUZ;;;;;OAKG;IACG,QAAQ,CAAC,OAAO,SAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB9C;;OAEG;YACW,eAAe;IA8E7B;;;;;OAKG;IACH,OAAO,CAAC,uBAAuB;IAyD/B;;;;OAIG;IACH,OAAO,CAAC,yBAAyB;IAsBjC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,GAAG,UAAU;CAKzE;AAED;;GAEG;AACH,eAAO,MAAM,YAAY,cAAqB,CAAC;AAE/C;;;;;;;;;;;;GAYG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,eAAe,GAAG,MAAM,IAAI,CAE/D;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,UAAU,EAAE,UAAU,GAAG,MAAM,IAAI,CAErE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAE3D"}
@@ -0,0 +1,347 @@
1
+ "use strict";
2
+ /**
3
+ * SDKLifecycle - Proper cleanup and resource management
4
+ *
5
+ * SECURITY FIX (M-8): Ensures proper cleanup on SDK shutdown:
6
+ * - Connection cleanup
7
+ * - Pending request handling
8
+ * - Memory release
9
+ * - Graceful shutdown
10
+ *
11
+ * @module utils/SDKLifecycle
12
+ */
13
+ Object.defineProperty(exports, "__esModule", { value: true });
14
+ exports.shutdownSDK = exports.registerDisposable = exports.onShutdown = exports.sdkLifecycle = exports.SDKLifecycle = void 0;
15
+ const Logger_1 = require("./Logger");
16
+ /**
17
+ * SDK Lifecycle Manager
18
+ *
19
+ * Manages SDK initialization, shutdown, and resource cleanup.
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * const lifecycle = new SDKLifecycle();
24
+ *
25
+ * // Register cleanup handlers
26
+ * lifecycle.onShutdown(async () => {
27
+ * await closeConnections();
28
+ * });
29
+ *
30
+ * // Register disposable resources
31
+ * lifecycle.registerDisposable(myResource);
32
+ *
33
+ * // Later, initiate shutdown
34
+ * await lifecycle.shutdown();
35
+ * ```
36
+ */
37
+ class SDKLifecycle {
38
+ constructor(logger) {
39
+ this.state = 'initializing';
40
+ this.shutdownHandlers = [];
41
+ this.disposables = [];
42
+ this.listeners = [];
43
+ this.shutdownPromise = null;
44
+ this.isShuttingDown = false;
45
+ // SECURITY FIX (NEW-HIGH-2): Store handler references for cleanup
46
+ this.processHandlers = {};
47
+ this.processHandlersRegistered = false;
48
+ this.logger = logger ?? Logger_1.sdkLogger.child('Lifecycle');
49
+ // Register process shutdown handlers
50
+ this.registerProcessHandlers();
51
+ }
52
+ /**
53
+ * Get current lifecycle state
54
+ */
55
+ getState() {
56
+ return this.state;
57
+ }
58
+ /**
59
+ * Check if SDK is ready for operations
60
+ */
61
+ isReady() {
62
+ return this.state === 'ready';
63
+ }
64
+ /**
65
+ * Mark SDK as ready
66
+ */
67
+ markReady() {
68
+ this.state = 'ready';
69
+ this.emit('ready');
70
+ this.logger.info('SDK ready');
71
+ }
72
+ /**
73
+ * Register a shutdown handler
74
+ *
75
+ * @param handler - Function to call during shutdown
76
+ * @returns Unregister function
77
+ */
78
+ onShutdown(handler) {
79
+ this.shutdownHandlers.push(handler);
80
+ return () => {
81
+ const index = this.shutdownHandlers.indexOf(handler);
82
+ if (index > -1) {
83
+ this.shutdownHandlers.splice(index, 1);
84
+ }
85
+ };
86
+ }
87
+ /**
88
+ * Register a disposable resource
89
+ *
90
+ * @param disposable - Resource with dispose() method
91
+ * @returns Unregister function
92
+ */
93
+ registerDisposable(disposable) {
94
+ this.disposables.push(disposable);
95
+ return () => {
96
+ const index = this.disposables.indexOf(disposable);
97
+ if (index > -1) {
98
+ this.disposables.splice(index, 1);
99
+ }
100
+ };
101
+ }
102
+ /**
103
+ * Add lifecycle event listener
104
+ *
105
+ * @param listener - Event listener function
106
+ * @returns Unregister function
107
+ */
108
+ addListener(listener) {
109
+ this.listeners.push(listener);
110
+ return () => {
111
+ const index = this.listeners.indexOf(listener);
112
+ if (index > -1) {
113
+ this.listeners.splice(index, 1);
114
+ }
115
+ };
116
+ }
117
+ /**
118
+ * Emit lifecycle event
119
+ */
120
+ emit(event, data) {
121
+ for (const listener of this.listeners) {
122
+ try {
123
+ listener(event, data);
124
+ }
125
+ catch (error) {
126
+ this.logger.error('Lifecycle listener error', { event }, error);
127
+ }
128
+ }
129
+ }
130
+ /**
131
+ * Initiate graceful shutdown
132
+ *
133
+ * @param timeout - Maximum time to wait for cleanup (ms)
134
+ * @returns Promise that resolves when shutdown is complete
135
+ */
136
+ async shutdown(timeout = 30000) {
137
+ // Prevent multiple shutdown calls
138
+ if (this.shutdownPromise) {
139
+ return this.shutdownPromise;
140
+ }
141
+ if (this.isShuttingDown) {
142
+ return;
143
+ }
144
+ this.isShuttingDown = true;
145
+ this.state = 'shutting-down';
146
+ this.emit('shutting-down');
147
+ this.logger.info('SDK shutting down...');
148
+ this.shutdownPromise = this.executeShutdown(timeout);
149
+ return this.shutdownPromise;
150
+ }
151
+ /**
152
+ * Execute shutdown sequence
153
+ */
154
+ async executeShutdown(timeout) {
155
+ const startTime = Date.now();
156
+ const errors = [];
157
+ // Create timeout promise
158
+ const timeoutPromise = new Promise((_, reject) => {
159
+ setTimeout(() => {
160
+ reject(new Error(`Shutdown timed out after ${timeout}ms`));
161
+ }, timeout);
162
+ });
163
+ try {
164
+ // Run shutdown handlers first (in reverse order - LIFO)
165
+ const handlersPromise = (async () => {
166
+ for (let i = this.shutdownHandlers.length - 1; i >= 0; i--) {
167
+ try {
168
+ const elapsed = Date.now() - startTime;
169
+ if (elapsed >= timeout) {
170
+ this.logger.warn('Shutdown timeout reached, skipping remaining handlers');
171
+ break;
172
+ }
173
+ const handler = this.shutdownHandlers[i];
174
+ await handler();
175
+ }
176
+ catch (error) {
177
+ this.logger.error('Shutdown handler error', {}, error);
178
+ errors.push(error);
179
+ }
180
+ }
181
+ // Dispose resources (in reverse order)
182
+ for (let i = this.disposables.length - 1; i >= 0; i--) {
183
+ try {
184
+ const elapsed = Date.now() - startTime;
185
+ if (elapsed >= timeout) {
186
+ this.logger.warn('Shutdown timeout reached, skipping remaining disposables');
187
+ break;
188
+ }
189
+ const disposable = this.disposables[i];
190
+ await disposable.dispose();
191
+ }
192
+ catch (error) {
193
+ this.logger.error('Disposable cleanup error', {}, error);
194
+ errors.push(error);
195
+ }
196
+ }
197
+ })();
198
+ // Race against timeout
199
+ await Promise.race([handlersPromise, timeoutPromise]);
200
+ }
201
+ catch (error) {
202
+ if (error.message.includes('timed out')) {
203
+ this.logger.warn('Shutdown timed out, forcing cleanup');
204
+ }
205
+ else {
206
+ errors.push(error);
207
+ }
208
+ }
209
+ // SECURITY FIX (NEW-HIGH-2): Remove process handlers to prevent memory leaks
210
+ this.unregisterProcessHandlers();
211
+ // Clear registrations
212
+ this.shutdownHandlers = [];
213
+ this.disposables = [];
214
+ this.state = 'shutdown';
215
+ this.emit('shutdown');
216
+ this.logger.info('SDK shutdown complete', { errors: errors.length });
217
+ if (errors.length > 0) {
218
+ this.logger.error('Shutdown completed with errors', {
219
+ errorCount: errors.length,
220
+ errors: errors.map((e) => e.message),
221
+ });
222
+ }
223
+ }
224
+ /**
225
+ * Register process-level shutdown handlers
226
+ *
227
+ * SECURITY FIX (NEW-HIGH-2): Store handler references for cleanup
228
+ * to prevent memory leaks when multiple SDKLifecycle instances are created.
229
+ */
230
+ registerProcessHandlers() {
231
+ // Only register in Node.js environment
232
+ if (typeof process === 'undefined') {
233
+ return;
234
+ }
235
+ // SECURITY FIX (NEW-HIGH-2): Prevent duplicate registrations
236
+ if (this.processHandlersRegistered) {
237
+ return;
238
+ }
239
+ // SECURITY FIX (NEW-HIGH-2): Create named handlers we can remove later
240
+ this.processHandlers.sigint = () => {
241
+ this.logger.info('Received SIGINT, initiating shutdown');
242
+ this.shutdown().then(() => {
243
+ process.exit(0);
244
+ }).catch((error) => {
245
+ this.logger.error('Shutdown error', {}, error);
246
+ process.exit(1);
247
+ });
248
+ };
249
+ this.processHandlers.sigterm = () => {
250
+ this.logger.info('Received SIGTERM, initiating shutdown');
251
+ this.shutdown().then(() => {
252
+ process.exit(0);
253
+ }).catch((error) => {
254
+ this.logger.error('Shutdown error', {}, error);
255
+ process.exit(1);
256
+ });
257
+ };
258
+ this.processHandlers.uncaughtException = (error) => {
259
+ this.logger.error('Uncaught exception', {}, error);
260
+ this.emit('error', error);
261
+ this.shutdown().finally(() => {
262
+ process.exit(1);
263
+ });
264
+ };
265
+ this.processHandlers.unhandledRejection = (reason) => {
266
+ const error = reason instanceof Error ? reason : new Error(String(reason));
267
+ this.logger.error('Unhandled rejection', {}, error);
268
+ this.emit('error', error);
269
+ };
270
+ // Handle termination signals
271
+ process.on('SIGINT', this.processHandlers.sigint);
272
+ process.on('SIGTERM', this.processHandlers.sigterm);
273
+ // Handle uncaught errors
274
+ process.on('uncaughtException', this.processHandlers.uncaughtException);
275
+ process.on('unhandledRejection', this.processHandlers.unhandledRejection);
276
+ this.processHandlersRegistered = true;
277
+ }
278
+ /**
279
+ * Unregister process-level shutdown handlers
280
+ *
281
+ * SECURITY FIX (NEW-HIGH-2): Remove handlers to prevent memory leaks
282
+ */
283
+ unregisterProcessHandlers() {
284
+ if (typeof process === 'undefined' || !this.processHandlersRegistered) {
285
+ return;
286
+ }
287
+ if (this.processHandlers.sigint) {
288
+ process.removeListener('SIGINT', this.processHandlers.sigint);
289
+ }
290
+ if (this.processHandlers.sigterm) {
291
+ process.removeListener('SIGTERM', this.processHandlers.sigterm);
292
+ }
293
+ if (this.processHandlers.uncaughtException) {
294
+ process.removeListener('uncaughtException', this.processHandlers.uncaughtException);
295
+ }
296
+ if (this.processHandlers.unhandledRejection) {
297
+ process.removeListener('unhandledRejection', this.processHandlers.unhandledRejection);
298
+ }
299
+ this.processHandlers = {};
300
+ this.processHandlersRegistered = false;
301
+ }
302
+ /**
303
+ * Create a disposable wrapper for any cleanup function
304
+ */
305
+ static createDisposable(cleanup) {
306
+ return {
307
+ dispose: cleanup,
308
+ };
309
+ }
310
+ }
311
+ exports.SDKLifecycle = SDKLifecycle;
312
+ /**
313
+ * Global SDK lifecycle manager instance
314
+ */
315
+ exports.sdkLifecycle = new SDKLifecycle();
316
+ /**
317
+ * Convenience function to run cleanup on shutdown
318
+ *
319
+ * @example
320
+ * ```typescript
321
+ * const cleanup = onShutdown(async () => {
322
+ * await closeDatabase();
323
+ * });
324
+ *
325
+ * // Later, to remove the handler:
326
+ * cleanup();
327
+ * ```
328
+ */
329
+ function onShutdown(handler) {
330
+ return exports.sdkLifecycle.onShutdown(handler);
331
+ }
332
+ exports.onShutdown = onShutdown;
333
+ /**
334
+ * Convenience function to register disposable
335
+ */
336
+ function registerDisposable(disposable) {
337
+ return exports.sdkLifecycle.registerDisposable(disposable);
338
+ }
339
+ exports.registerDisposable = registerDisposable;
340
+ /**
341
+ * Convenience function to shutdown SDK
342
+ */
343
+ function shutdownSDK(timeout) {
344
+ return exports.sdkLifecycle.shutdown(timeout);
345
+ }
346
+ exports.shutdownSDK = shutdownSDK;
347
+ //# sourceMappingURL=SDKLifecycle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SDKLifecycle.js","sourceRoot":"","sources":["../../src/utils/SDKLifecycle.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,57 @@
1
+ /**
2
+ * SecureNonce - Cryptographically secure nonce generation
3
+ *
4
+ * SECURITY FIX (NEW-H-3): Provides secure random nonce generation
5
+ * to prevent weak randomness vulnerabilities in EIP-712 message signing.
6
+ *
7
+ * Reference: V7 Re-Audit NEW-H-3 (Weak Random Nonce Generation)
8
+ *
9
+ * @module utils/SecureNonce
10
+ */
11
+ /**
12
+ * Generate a cryptographically secure random nonce (bytes32)
13
+ *
14
+ * Uses ethers.js randomBytes() which:
15
+ * - Uses Node.js crypto.randomBytes() (CSPRNG)
16
+ * - Uses Web Crypto API in browsers (window.crypto.getRandomValues)
17
+ * - Guaranteed to be cryptographically secure
18
+ *
19
+ * @returns 32-byte hex string (0x...)
20
+ *
21
+ * @example
22
+ * ```typescript
23
+ * import { generateSecureNonce } from '@agirails/sdk';
24
+ *
25
+ * const nonce = generateSecureNonce();
26
+ * console.log(nonce); // 0x1234...abcd (64 hex chars)
27
+ * ```
28
+ */
29
+ export declare function generateSecureNonce(): string;
30
+ /**
31
+ * Validate nonce format (must be bytes32)
32
+ *
33
+ * @param nonce - Nonce to validate
34
+ * @returns true if valid bytes32 format
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * isValidNonce('0x' + '00'.repeat(32)); // true
39
+ * isValidNonce('0x1234'); // false (too short)
40
+ * isValidNonce('not-hex'); // false (invalid format)
41
+ * ```
42
+ */
43
+ export declare function isValidNonce(nonce: string): boolean;
44
+ /**
45
+ * Generate an array of secure nonces
46
+ *
47
+ * @param count - Number of nonces to generate
48
+ * @returns Array of bytes32 hex strings
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * const nonces = generateSecureNonces(10);
53
+ * console.log(nonces.length); // 10
54
+ * ```
55
+ */
56
+ export declare function generateSecureNonces(count: number): string[];
57
+ //# sourceMappingURL=SecureNonce.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SecureNonce.d.ts","sourceRoot":"","sources":["../../src/utils/SecureNonce.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAIH;;;;;;;;;;;;;;;;;GAiBG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAE5C;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAEnD;AAED;;;;;;;;;;;GAWG;AACH,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,EAAE,CAa5D"}