@super-protocol/swarm-contracts-sdk 0.0.1-beta.1

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 (629) hide show
  1. package/LICENSE +66 -0
  2. package/README.md +52 -0
  3. package/dist/cjs/analytics/Analytics.d.ts +17 -0
  4. package/dist/cjs/analytics/Analytics.js +84 -0
  5. package/dist/cjs/analytics/AnalyticsError.d.ts +7 -0
  6. package/dist/cjs/analytics/AnalyticsError.js +12 -0
  7. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.d.ts +19 -0
  8. package/dist/cjs/analytics/eventProviders/BrowserEventProvider.js +38 -0
  9. package/dist/cjs/analytics/eventProviders/EventProvider.d.ts +24 -0
  10. package/dist/cjs/analytics/eventProviders/EventProvider.js +25 -0
  11. package/dist/cjs/analytics/eventProviders/NodeEventProvider.d.ts +22 -0
  12. package/dist/cjs/analytics/eventProviders/NodeEventProvider.js +56 -0
  13. package/dist/cjs/analytics/transports/AxiosTransport.d.ts +4 -0
  14. package/dist/cjs/analytics/transports/AxiosTransport.js +60 -0
  15. package/dist/cjs/analytics/transports/FetchTransport.d.ts +4 -0
  16. package/dist/cjs/analytics/transports/FetchTransport.js +31 -0
  17. package/dist/cjs/analytics/types.d.ts +26 -0
  18. package/dist/cjs/analytics/types.js +3 -0
  19. package/dist/cjs/certificates/binary-splitter.d.ts +27 -0
  20. package/dist/cjs/certificates/binary-splitter.js +279 -0
  21. package/dist/cjs/certificates/crl.d.ts +6 -0
  22. package/dist/cjs/certificates/crl.js +66 -0
  23. package/dist/cjs/certificates/generator.d.ts +38 -0
  24. package/dist/cjs/certificates/generator.js +262 -0
  25. package/dist/cjs/certificates/helper.d.ts +29 -0
  26. package/dist/cjs/certificates/helper.js +216 -0
  27. package/dist/cjs/certificates/index.d.ts +5 -0
  28. package/dist/cjs/certificates/index.js +22 -0
  29. package/dist/cjs/certificates/ocsp.d.ts +14 -0
  30. package/dist/cjs/certificates/ocsp.js +320 -0
  31. package/dist/cjs/certificates/serializer.d.ts +13 -0
  32. package/dist/cjs/certificates/serializer.js +142 -0
  33. package/dist/cjs/certificates/setup-crypto.d.ts +3 -0
  34. package/dist/cjs/certificates/setup-crypto.js +48 -0
  35. package/dist/cjs/certificates/types.d.ts +122 -0
  36. package/dist/cjs/certificates/types.js +10 -0
  37. package/dist/cjs/config.d.ts +3 -0
  38. package/dist/cjs/config.js +7 -0
  39. package/dist/cjs/connectors/BaseConnector.d.ts +52 -0
  40. package/dist/cjs/connectors/BaseConnector.js +61 -0
  41. package/dist/cjs/connectors/BlockchainConnector.d.ts +78 -0
  42. package/dist/cjs/connectors/BlockchainConnector.js +325 -0
  43. package/dist/cjs/connectors/BlockchainEventsListener.d.ts +33 -0
  44. package/dist/cjs/connectors/BlockchainEventsListener.js +283 -0
  45. package/dist/cjs/connectors/index.d.ts +2 -0
  46. package/dist/cjs/connectors/index.js +11 -0
  47. package/dist/cjs/constants.d.ts +48 -0
  48. package/dist/cjs/constants.js +683 -0
  49. package/dist/cjs/contracts/SuperProtocolToken.d.ts +300 -0
  50. package/dist/cjs/contracts/SuperProtocolToken.js +3 -0
  51. package/dist/cjs/contracts/SuperProtocolToken__factory.d.ts +393 -0
  52. package/dist/cjs/contracts/SuperProtocolToken__factory.js +521 -0
  53. package/dist/cjs/contracts/typechain-types/common.d.ts +50 -0
  54. package/dist/cjs/contracts/typechain-types/common.js +3 -0
  55. package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.d.ts +3340 -0
  56. package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.js +4335 -0
  57. package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts +1 -0
  58. package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/index.js +10 -0
  59. package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/index.d.ts +1 -0
  60. package/dist/cjs/contracts/typechain-types/factories/hardhat-diamond-abi/index.js +32 -0
  61. package/dist/cjs/contracts/typechain-types/factories/index.d.ts +1 -0
  62. package/dist/cjs/contracts/typechain-types/factories/index.js +32 -0
  63. package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/App.d.ts +2299 -0
  64. package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/App.js +3 -0
  65. package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts +1 -0
  66. package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.js +3 -0
  67. package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/index.d.ts +2 -0
  68. package/dist/cjs/contracts/typechain-types/hardhat-diamond-abi/index.js +3 -0
  69. package/dist/cjs/contracts/typechain-types/index.d.ts +5 -0
  70. package/dist/cjs/contracts/typechain-types/index.js +34 -0
  71. package/dist/cjs/crypto/Crypto.d.ts +70 -0
  72. package/dist/cjs/crypto/Crypto.js +137 -0
  73. package/dist/cjs/crypto/index.d.ts +4 -0
  74. package/dist/cjs/crypto/index.js +37 -0
  75. package/dist/cjs/crypto/nodejs/AES.d.ts +25 -0
  76. package/dist/cjs/crypto/nodejs/AES.js +105 -0
  77. package/dist/cjs/crypto/nodejs/ARIA.d.ts +23 -0
  78. package/dist/cjs/crypto/nodejs/ARIA.js +77 -0
  79. package/dist/cjs/crypto/nodejs/ECIES.d.ts +10 -0
  80. package/dist/cjs/crypto/nodejs/ECIES.js +107 -0
  81. package/dist/cjs/crypto/nodejs/NativeCrypto.d.ts +46 -0
  82. package/dist/cjs/crypto/nodejs/NativeCrypto.js +154 -0
  83. package/dist/cjs/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
  84. package/dist/cjs/crypto/nodejs/RSA-Hybrid.js +94 -0
  85. package/dist/cjs/crypto/types.d.ts +10 -0
  86. package/dist/cjs/crypto/types.js +3 -0
  87. package/dist/cjs/crypto/utils.d.ts +15 -0
  88. package/dist/cjs/crypto/utils.js +94 -0
  89. package/dist/cjs/crypto/utils.spec.d.ts +1 -0
  90. package/dist/cjs/crypto/utils.spec.js +221 -0
  91. package/dist/cjs/errors/base.error.d.ts +3 -0
  92. package/dist/cjs/errors/base.error.js +19 -0
  93. package/dist/cjs/errors/index.d.ts +3 -0
  94. package/dist/cjs/errors/index.js +10 -0
  95. package/dist/cjs/errors/insufficient-funds.error.d.ts +19 -0
  96. package/dist/cjs/errors/insufficient-funds.error.js +57 -0
  97. package/dist/cjs/errors/not-found.error.d.ts +3 -0
  98. package/dist/cjs/errors/not-found.error.js +8 -0
  99. package/dist/cjs/errors/utils.d.ts +2 -0
  100. package/dist/cjs/errors/utils.js +30 -0
  101. package/dist/cjs/index.d.ts +58 -0
  102. package/dist/cjs/index.js +119 -0
  103. package/dist/cjs/logger.d.ts +7 -0
  104. package/dist/cjs/logger.js +12 -0
  105. package/dist/cjs/models/EtlModel.d.ts +34 -0
  106. package/dist/cjs/models/EtlModel.js +125 -0
  107. package/dist/cjs/models/index.d.ts +1 -0
  108. package/dist/cjs/models/index.js +9 -0
  109. package/dist/cjs/package.json +1 -0
  110. package/dist/cjs/polyfills.d.ts +4 -0
  111. package/dist/cjs/polyfills.js +8 -0
  112. package/dist/cjs/proto/AmdSevSnp.d.ts +194 -0
  113. package/dist/cjs/proto/AmdSevSnp.js +358 -0
  114. package/dist/cjs/proto/Compression.d.ts +43 -0
  115. package/dist/cjs/proto/Compression.js +133 -0
  116. package/dist/cjs/proto/Hash.d.ts +37 -0
  117. package/dist/cjs/proto/Hash.js +104 -0
  118. package/dist/cjs/proto/Nvtrust.d.ts +116 -0
  119. package/dist/cjs/proto/Nvtrust.js +159 -0
  120. package/dist/cjs/proto/OrderReport.d.ts +730 -0
  121. package/dist/cjs/proto/OrderReport.js +466 -0
  122. package/dist/cjs/proto/TRI.d.ts +215 -0
  123. package/dist/cjs/proto/TRI.js +318 -0
  124. package/dist/cjs/providers/storage/ChunksDownloadDecorator.d.ts +36 -0
  125. package/dist/cjs/providers/storage/ChunksDownloadDecorator.js +145 -0
  126. package/dist/cjs/providers/storage/IStorageProvider.d.ts +15 -0
  127. package/dist/cjs/providers/storage/IStorageProvider.js +3 -0
  128. package/dist/cjs/providers/storage/S3StorageProvider.d.ts +26 -0
  129. package/dist/cjs/providers/storage/S3StorageProvider.js +210 -0
  130. package/dist/cjs/providers/storage/StorageAdapter.d.ts +62 -0
  131. package/dist/cjs/providers/storage/StorageAdapter.js +300 -0
  132. package/dist/cjs/providers/storage/StorageContentWriter.d.ts +46 -0
  133. package/dist/cjs/providers/storage/StorageContentWriter.js +168 -0
  134. package/dist/cjs/providers/storage/StorageKeyValueAdapter.d.ts +26 -0
  135. package/dist/cjs/providers/storage/StorageKeyValueAdapter.js +139 -0
  136. package/dist/cjs/providers/storage/StorageMetadataReader.d.ts +20 -0
  137. package/dist/cjs/providers/storage/StorageMetadataReader.js +56 -0
  138. package/dist/cjs/providers/storage/StorjAdapter.d.ts +20 -0
  139. package/dist/cjs/providers/storage/StorjAdapter.js +60 -0
  140. package/dist/cjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  141. package/dist/cjs/providers/storage/StorjCredentialsManager.js +114 -0
  142. package/dist/cjs/providers/storage/StorjStorageProvider.d.ts +29 -0
  143. package/dist/cjs/providers/storage/StorjStorageProvider.js +146 -0
  144. package/dist/cjs/providers/storage/fs-storage-provider.d.ts +19 -0
  145. package/dist/cjs/providers/storage/fs-storage-provider.js +162 -0
  146. package/dist/cjs/providers/storage/getStorageProvider.d.ts +4 -0
  147. package/dist/cjs/providers/storage/getStorageProvider.js +23 -0
  148. package/dist/cjs/providers/storage/parseStorageCredentials.d.ts +4 -0
  149. package/dist/cjs/providers/storage/parseStorageCredentials.js +21 -0
  150. package/dist/cjs/providers/storage/types.d.ts +29 -0
  151. package/dist/cjs/providers/storage/types.js +3 -0
  152. package/dist/cjs/staticModels/Deposits.d.ts +85 -0
  153. package/dist/cjs/staticModels/Deposits.js +268 -0
  154. package/dist/cjs/staticModels/Diamond.d.ts +6 -0
  155. package/dist/cjs/staticModels/Diamond.js +22 -0
  156. package/dist/cjs/staticModels/ModelPackager.d.ts +18 -0
  157. package/dist/cjs/staticModels/ModelPackager.js +49 -0
  158. package/dist/cjs/staticModels/ProviderRewards.d.ts +5 -0
  159. package/dist/cjs/staticModels/ProviderRewards.js +81 -0
  160. package/dist/cjs/staticModels/StaticModel.d.ts +6 -0
  161. package/dist/cjs/staticModels/StaticModel.js +43 -0
  162. package/dist/cjs/staticModels/Superpro.d.ts +18 -0
  163. package/dist/cjs/staticModels/Superpro.js +47 -0
  164. package/dist/cjs/staticModels/SuperproToken.d.ts +113 -0
  165. package/dist/cjs/staticModels/SuperproToken.js +333 -0
  166. package/dist/cjs/store.d.ts +17 -0
  167. package/dist/cjs/store.js +19 -0
  168. package/dist/cjs/tee/OrderReportService.d.ts +9 -0
  169. package/dist/cjs/tee/OrderReportService.js +104 -0
  170. package/dist/cjs/tee/QuoteParser.d.ts +82 -0
  171. package/dist/cjs/tee/QuoteParser.js +410 -0
  172. package/dist/cjs/tee/TeeCertificateService.d.ts +20 -0
  173. package/dist/cjs/tee/TeeCertificateService.js +143 -0
  174. package/dist/cjs/tee/TeeSignatureVerifier.d.ts +24 -0
  175. package/dist/cjs/tee/TeeSignatureVerifier.js +118 -0
  176. package/dist/cjs/tee/errors.d.ts +11 -0
  177. package/dist/cjs/tee/errors.js +20 -0
  178. package/dist/cjs/tee/helpers.d.ts +14 -0
  179. package/dist/cjs/tee/helpers.js +115 -0
  180. package/dist/cjs/tee/interface.d.ts +63 -0
  181. package/dist/cjs/tee/interface.js +3 -0
  182. package/dist/cjs/tee/statuses.d.ts +14 -0
  183. package/dist/cjs/tee/statuses.js +20 -0
  184. package/dist/cjs/tee/types.d.ts +126 -0
  185. package/dist/cjs/tee/types.js +34 -0
  186. package/dist/cjs/types/Compressor.d.ts +5 -0
  187. package/dist/cjs/types/Compressor.js +3 -0
  188. package/dist/cjs/types/Consensus.d.ts +52 -0
  189. package/dist/cjs/types/Consensus.js +11 -0
  190. package/dist/cjs/types/DepositInfo.d.ts +6 -0
  191. package/dist/cjs/types/DepositInfo.js +3 -0
  192. package/dist/cjs/types/DistributedSecretStorage.d.ts +68 -0
  193. package/dist/cjs/types/DistributedSecretStorage.js +3 -0
  194. package/dist/cjs/types/EtlModel.d.ts +2 -0
  195. package/dist/cjs/types/EtlModel.js +3 -0
  196. package/dist/cjs/types/Events.d.ts +34 -0
  197. package/dist/cjs/types/Events.js +3 -0
  198. package/dist/cjs/types/HardwareInfo.d.ts +10 -0
  199. package/dist/cjs/types/HardwareInfo.js +3 -0
  200. package/dist/cjs/types/Marks.d.ts +9 -0
  201. package/dist/cjs/types/Marks.js +10 -0
  202. package/dist/cjs/types/Offer.d.ts +76 -0
  203. package/dist/cjs/types/Offer.js +32 -0
  204. package/dist/cjs/types/OfferVersion.d.ts +30 -0
  205. package/dist/cjs/types/OfferVersion.js +9 -0
  206. package/dist/cjs/types/OptionInfo.d.ts +8 -0
  207. package/dist/cjs/types/OptionInfo.js +3 -0
  208. package/dist/cjs/types/Order.d.ts +144 -0
  209. package/dist/cjs/types/Order.js +100 -0
  210. package/dist/cjs/types/OrderUsage.d.ts +28 -0
  211. package/dist/cjs/types/OrderUsage.js +3 -0
  212. package/dist/cjs/types/Origins.d.ts +6 -0
  213. package/dist/cjs/types/Origins.js +3 -0
  214. package/dist/cjs/types/Provider.d.ts +7 -0
  215. package/dist/cjs/types/Provider.js +3 -0
  216. package/dist/cjs/types/ProviderRewards.d.ts +5 -0
  217. package/dist/cjs/types/ProviderRewards.js +3 -0
  218. package/dist/cjs/types/ResourceLoader.d.ts +28 -0
  219. package/dist/cjs/types/ResourceLoader.js +3 -0
  220. package/dist/cjs/types/SlotInfo.d.ts +7 -0
  221. package/dist/cjs/types/SlotInfo.js +3 -0
  222. package/dist/cjs/types/SlotUsage.d.ts +11 -0
  223. package/dist/cjs/types/SlotUsage.js +9 -0
  224. package/dist/cjs/types/Superpro.d.ts +9 -0
  225. package/dist/cjs/types/Superpro.js +14 -0
  226. package/dist/cjs/types/TeeOfferInfo.d.ts +38 -0
  227. package/dist/cjs/types/TeeOfferInfo.js +3 -0
  228. package/dist/cjs/types/TeeOfferOption.d.ts +13 -0
  229. package/dist/cjs/types/TeeOfferOption.js +3 -0
  230. package/dist/cjs/types/TeeOfferSlot.d.ts +8 -0
  231. package/dist/cjs/types/TeeOfferSlot.js +3 -0
  232. package/dist/cjs/types/ValueOfferSlot.d.ts +18 -0
  233. package/dist/cjs/types/ValueOfferSlot.js +3 -0
  234. package/dist/cjs/types/Web3.d.ts +30 -0
  235. package/dist/cjs/types/Web3.js +3 -0
  236. package/dist/cjs/types/blockchainConnector/StorageAccess.d.ts +8 -0
  237. package/dist/cjs/types/blockchainConnector/StorageAccess.js +3 -0
  238. package/dist/cjs/types/index.d.ts +25 -0
  239. package/dist/cjs/types/index.js +42 -0
  240. package/dist/cjs/types/storage/StorageAccess.d.ts +7 -0
  241. package/dist/cjs/types/storage/StorageAccess.js +3 -0
  242. package/dist/cjs/types/storage/StorageFileAccess.d.ts +5 -0
  243. package/dist/cjs/types/storage/StorageFileAccess.js +3 -0
  244. package/dist/cjs/types/storage/StorageObject.d.ts +8 -0
  245. package/dist/cjs/types/storage/StorageObject.js +3 -0
  246. package/dist/cjs/utils/CryptoKeysTransformer.d.ts +42 -0
  247. package/dist/cjs/utils/CryptoKeysTransformer.js +247 -0
  248. package/dist/cjs/utils/Monitoring.d.ts +11 -0
  249. package/dist/cjs/utils/Monitoring.js +51 -0
  250. package/dist/cjs/utils/NonceTracker.d.ts +20 -0
  251. package/dist/cjs/utils/NonceTracker.js +82 -0
  252. package/dist/cjs/utils/PubSub.d.ts +9 -0
  253. package/dist/cjs/utils/PubSub.js +35 -0
  254. package/dist/cjs/utils/TxManager.d.ts +28 -0
  255. package/dist/cjs/utils/TxManager.js +285 -0
  256. package/dist/cjs/utils/cache/index.d.ts +2 -0
  257. package/dist/cjs/utils/cache/index.js +21 -0
  258. package/dist/cjs/utils/cache/memory.d.ts +19 -0
  259. package/dist/cjs/utils/cache/memory.js +66 -0
  260. package/dist/cjs/utils/cache/memory.spec.d.ts +1 -0
  261. package/dist/cjs/utils/cache/memory.spec.js +91 -0
  262. package/dist/cjs/utils/cache/types.d.ts +17 -0
  263. package/dist/cjs/utils/cache/types.js +3 -0
  264. package/dist/cjs/utils/compressors/GzipCompressor.d.ts +8 -0
  265. package/dist/cjs/utils/compressors/GzipCompressor.js +22 -0
  266. package/dist/cjs/utils/compressors/UncompressedCompressor.d.ts +8 -0
  267. package/dist/cjs/utils/compressors/UncompressedCompressor.js +17 -0
  268. package/dist/cjs/utils/compressors/index.d.ts +2 -0
  269. package/dist/cjs/utils/compressors/index.js +19 -0
  270. package/dist/cjs/utils/helper.d.ts +87 -0
  271. package/dist/cjs/utils/helper.js +576 -0
  272. package/dist/cjs/utils/helpers/calculateObjectHash.d.ts +8 -0
  273. package/dist/cjs/utils/helpers/calculateObjectHash.js +25 -0
  274. package/dist/cjs/utils/helpers/getRawRpc.d.ts +2 -0
  275. package/dist/cjs/utils/helpers/getRawRpc.js +19 -0
  276. package/dist/cjs/utils/helpers/getStreamChunks.d.ts +9 -0
  277. package/dist/cjs/utils/helpers/getStreamChunks.js +35 -0
  278. package/dist/cjs/utils/helpers/index.d.ts +5 -0
  279. package/dist/cjs/utils/helpers/index.js +22 -0
  280. package/dist/cjs/utils/helpers/promise.d.ts +2 -0
  281. package/dist/cjs/utils/helpers/promise.js +10 -0
  282. package/dist/cjs/utils/helpers/streamToBuffer.d.ts +4 -0
  283. package/dist/cjs/utils/helpers/streamToBuffer.js +13 -0
  284. package/dist/cjs/utils/helpers/tryWithInterval.d.ts +13 -0
  285. package/dist/cjs/utils/helpers/tryWithInterval.js +39 -0
  286. package/dist/cjs/utils/rent-calculator/index.d.ts +2 -0
  287. package/dist/cjs/utils/rent-calculator/index.js +19 -0
  288. package/dist/cjs/utils/rent-calculator/rent-calculator.d.ts +14 -0
  289. package/dist/cjs/utils/rent-calculator/rent-calculator.js +114 -0
  290. package/dist/cjs/utils/rent-calculator/types.d.ts +14 -0
  291. package/dist/cjs/utils/rent-calculator/types.js +3 -0
  292. package/dist/cjs/utils/resourceLoaders/BaseResourceLoader.d.ts +10 -0
  293. package/dist/cjs/utils/resourceLoaders/BaseResourceLoader.js +14 -0
  294. package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.d.ts +18 -0
  295. package/dist/cjs/utils/resourceLoaders/StorageProviderLoader.js +60 -0
  296. package/dist/cjs/utils/resourceLoaders/UrlResourceLoader.d.ts +9 -0
  297. package/dist/cjs/utils/resourceLoaders/UrlResourceLoader.js +51 -0
  298. package/dist/cjs/utils/resourceLoaders/getResourceLoader.d.ts +5 -0
  299. package/dist/cjs/utils/resourceLoaders/getResourceLoader.js +15 -0
  300. package/dist/cjs/utils/resourceLoaders/index.d.ts +1 -0
  301. package/dist/cjs/utils/resourceLoaders/index.js +18 -0
  302. package/dist/cjs/utils/schema-utils/index.d.ts +2 -0
  303. package/dist/cjs/utils/schema-utils/index.js +9 -0
  304. package/dist/cjs/utils/schema-utils/serializer.d.ts +3 -0
  305. package/dist/cjs/utils/schema-utils/serializer.js +31 -0
  306. package/dist/cjs/utils/schema-utils/validator.d.ts +7 -0
  307. package/dist/cjs/utils/schema-utils/validator.js +49 -0
  308. package/dist/cjs/utils/tcb.d.ts +2 -0
  309. package/dist/cjs/utils/tcb.js +13 -0
  310. package/dist/cjs/utils/tokens/get-tokens-info.d.ts +8 -0
  311. package/dist/cjs/utils/tokens/get-tokens-info.js +32 -0
  312. package/dist/cjs/utils/tokens/index.d.ts +1 -0
  313. package/dist/cjs/utils/tokens/index.js +18 -0
  314. package/dist/cjs/utils/types.d.ts +13 -0
  315. package/dist/cjs/utils/types.js +3 -0
  316. package/dist/mjs/analytics/Analytics.d.ts +17 -0
  317. package/dist/mjs/analytics/Analytics.js +78 -0
  318. package/dist/mjs/analytics/AnalyticsError.d.ts +7 -0
  319. package/dist/mjs/analytics/AnalyticsError.js +8 -0
  320. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.d.ts +19 -0
  321. package/dist/mjs/analytics/eventProviders/BrowserEventProvider.js +32 -0
  322. package/dist/mjs/analytics/eventProviders/EventProvider.d.ts +24 -0
  323. package/dist/mjs/analytics/eventProviders/EventProvider.js +22 -0
  324. package/dist/mjs/analytics/eventProviders/NodeEventProvider.d.ts +22 -0
  325. package/dist/mjs/analytics/eventProviders/NodeEventProvider.js +50 -0
  326. package/dist/mjs/analytics/transports/AxiosTransport.d.ts +4 -0
  327. package/dist/mjs/analytics/transports/AxiosTransport.js +31 -0
  328. package/dist/mjs/analytics/transports/FetchTransport.d.ts +4 -0
  329. package/dist/mjs/analytics/transports/FetchTransport.js +28 -0
  330. package/dist/mjs/analytics/types.d.ts +26 -0
  331. package/dist/mjs/analytics/types.js +2 -0
  332. package/dist/mjs/certificates/binary-splitter.d.ts +27 -0
  333. package/dist/mjs/certificates/binary-splitter.js +275 -0
  334. package/dist/mjs/certificates/crl.d.ts +6 -0
  335. package/dist/mjs/certificates/crl.js +39 -0
  336. package/dist/mjs/certificates/generator.d.ts +38 -0
  337. package/dist/mjs/certificates/generator.js +255 -0
  338. package/dist/mjs/certificates/helper.d.ts +29 -0
  339. package/dist/mjs/certificates/helper.js +186 -0
  340. package/dist/mjs/certificates/index.d.ts +5 -0
  341. package/dist/mjs/certificates/index.js +6 -0
  342. package/dist/mjs/certificates/ocsp.d.ts +14 -0
  343. package/dist/mjs/certificates/ocsp.js +290 -0
  344. package/dist/mjs/certificates/serializer.d.ts +13 -0
  345. package/dist/mjs/certificates/serializer.js +135 -0
  346. package/dist/mjs/certificates/setup-crypto.d.ts +3 -0
  347. package/dist/mjs/certificates/setup-crypto.js +22 -0
  348. package/dist/mjs/certificates/types.d.ts +122 -0
  349. package/dist/mjs/certificates/types.js +7 -0
  350. package/dist/mjs/config.d.ts +3 -0
  351. package/dist/mjs/config.js +4 -0
  352. package/dist/mjs/connectors/BaseConnector.d.ts +52 -0
  353. package/dist/mjs/connectors/BaseConnector.js +54 -0
  354. package/dist/mjs/connectors/BlockchainConnector.d.ts +78 -0
  355. package/dist/mjs/connectors/BlockchainConnector.js +320 -0
  356. package/dist/mjs/connectors/BlockchainEventsListener.d.ts +33 -0
  357. package/dist/mjs/connectors/BlockchainEventsListener.js +254 -0
  358. package/dist/mjs/connectors/index.d.ts +2 -0
  359. package/dist/mjs/connectors/index.js +3 -0
  360. package/dist/mjs/constants.d.ts +48 -0
  361. package/dist/mjs/constants.js +680 -0
  362. package/dist/mjs/contracts/SuperProtocolToken.d.ts +300 -0
  363. package/dist/mjs/contracts/SuperProtocolToken.js +2 -0
  364. package/dist/mjs/contracts/SuperProtocolToken__factory.d.ts +393 -0
  365. package/dist/mjs/contracts/SuperProtocolToken__factory.js +517 -0
  366. package/dist/mjs/contracts/typechain-types/common.d.ts +50 -0
  367. package/dist/mjs/contracts/typechain-types/common.js +2 -0
  368. package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.d.ts +3340 -0
  369. package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/App__factory.js +4331 -0
  370. package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts +1 -0
  371. package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/HardhatDiamondABI.sol/index.js +6 -0
  372. package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/index.d.ts +1 -0
  373. package/dist/mjs/contracts/typechain-types/factories/hardhat-diamond-abi/index.js +6 -0
  374. package/dist/mjs/contracts/typechain-types/factories/index.d.ts +1 -0
  375. package/dist/mjs/contracts/typechain-types/factories/index.js +6 -0
  376. package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/App.d.ts +2299 -0
  377. package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/App.js +2 -0
  378. package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.d.ts +1 -0
  379. package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/HardhatDiamondABI.sol/index.js +2 -0
  380. package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/index.d.ts +2 -0
  381. package/dist/mjs/contracts/typechain-types/hardhat-diamond-abi/index.js +2 -0
  382. package/dist/mjs/contracts/typechain-types/index.d.ts +5 -0
  383. package/dist/mjs/contracts/typechain-types/index.js +7 -0
  384. package/dist/mjs/crypto/Crypto.d.ts +70 -0
  385. package/dist/mjs/crypto/Crypto.js +132 -0
  386. package/dist/mjs/crypto/index.d.ts +4 -0
  387. package/dist/mjs/crypto/index.js +5 -0
  388. package/dist/mjs/crypto/nodejs/AES.d.ts +25 -0
  389. package/dist/mjs/crypto/nodejs/AES.js +77 -0
  390. package/dist/mjs/crypto/nodejs/ARIA.d.ts +23 -0
  391. package/dist/mjs/crypto/nodejs/ARIA.js +72 -0
  392. package/dist/mjs/crypto/nodejs/ECIES.d.ts +10 -0
  393. package/dist/mjs/crypto/nodejs/ECIES.js +82 -0
  394. package/dist/mjs/crypto/nodejs/NativeCrypto.d.ts +46 -0
  395. package/dist/mjs/crypto/nodejs/NativeCrypto.js +152 -0
  396. package/dist/mjs/crypto/nodejs/RSA-Hybrid.d.ts +15 -0
  397. package/dist/mjs/crypto/nodejs/RSA-Hybrid.js +89 -0
  398. package/dist/mjs/crypto/types.d.ts +10 -0
  399. package/dist/mjs/crypto/types.js +2 -0
  400. package/dist/mjs/crypto/utils.d.ts +15 -0
  401. package/dist/mjs/crypto/utils.js +81 -0
  402. package/dist/mjs/crypto/utils.spec.d.ts +1 -0
  403. package/dist/mjs/crypto/utils.spec.js +219 -0
  404. package/dist/mjs/errors/base.error.d.ts +3 -0
  405. package/dist/mjs/errors/base.error.js +15 -0
  406. package/dist/mjs/errors/index.d.ts +3 -0
  407. package/dist/mjs/errors/index.js +4 -0
  408. package/dist/mjs/errors/insufficient-funds.error.d.ts +19 -0
  409. package/dist/mjs/errors/insufficient-funds.error.js +53 -0
  410. package/dist/mjs/errors/not-found.error.d.ts +3 -0
  411. package/dist/mjs/errors/not-found.error.js +4 -0
  412. package/dist/mjs/errors/utils.d.ts +2 -0
  413. package/dist/mjs/errors/utils.js +22 -0
  414. package/dist/mjs/index.d.ts +58 -0
  415. package/dist/mjs/index.js +53 -0
  416. package/dist/mjs/logger.d.ts +7 -0
  417. package/dist/mjs/logger.js +7 -0
  418. package/dist/mjs/models/EtlModel.d.ts +34 -0
  419. package/dist/mjs/models/EtlModel.js +96 -0
  420. package/dist/mjs/models/index.d.ts +1 -0
  421. package/dist/mjs/models/index.js +2 -0
  422. package/dist/mjs/package.json +1 -0
  423. package/dist/mjs/polyfills.d.ts +4 -0
  424. package/dist/mjs/polyfills.js +8 -0
  425. package/dist/mjs/proto/AmdSevSnp.d.ts +194 -0
  426. package/dist/mjs/proto/AmdSevSnp.js +348 -0
  427. package/dist/mjs/proto/Compression.d.ts +43 -0
  428. package/dist/mjs/proto/Compression.js +125 -0
  429. package/dist/mjs/proto/Hash.d.ts +37 -0
  430. package/dist/mjs/proto/Hash.js +98 -0
  431. package/dist/mjs/proto/Nvtrust.d.ts +116 -0
  432. package/dist/mjs/proto/Nvtrust.js +153 -0
  433. package/dist/mjs/proto/OrderReport.d.ts +730 -0
  434. package/dist/mjs/proto/OrderReport.js +460 -0
  435. package/dist/mjs/proto/TRI.d.ts +215 -0
  436. package/dist/mjs/proto/TRI.js +312 -0
  437. package/dist/mjs/providers/storage/ChunksDownloadDecorator.d.ts +36 -0
  438. package/dist/mjs/providers/storage/ChunksDownloadDecorator.js +139 -0
  439. package/dist/mjs/providers/storage/IStorageProvider.d.ts +15 -0
  440. package/dist/mjs/providers/storage/IStorageProvider.js +2 -0
  441. package/dist/mjs/providers/storage/S3StorageProvider.d.ts +26 -0
  442. package/dist/mjs/providers/storage/S3StorageProvider.js +203 -0
  443. package/dist/mjs/providers/storage/StorageAdapter.d.ts +62 -0
  444. package/dist/mjs/providers/storage/StorageAdapter.js +270 -0
  445. package/dist/mjs/providers/storage/StorageContentWriter.d.ts +46 -0
  446. package/dist/mjs/providers/storage/StorageContentWriter.js +161 -0
  447. package/dist/mjs/providers/storage/StorageKeyValueAdapter.d.ts +26 -0
  448. package/dist/mjs/providers/storage/StorageKeyValueAdapter.js +133 -0
  449. package/dist/mjs/providers/storage/StorageMetadataReader.d.ts +20 -0
  450. package/dist/mjs/providers/storage/StorageMetadataReader.js +50 -0
  451. package/dist/mjs/providers/storage/StorjAdapter.d.ts +20 -0
  452. package/dist/mjs/providers/storage/StorjAdapter.js +54 -0
  453. package/dist/mjs/providers/storage/StorjCredentialsManager.d.ts +24 -0
  454. package/dist/mjs/providers/storage/StorjCredentialsManager.js +84 -0
  455. package/dist/mjs/providers/storage/StorjStorageProvider.d.ts +29 -0
  456. package/dist/mjs/providers/storage/StorjStorageProvider.js +140 -0
  457. package/dist/mjs/providers/storage/fs-storage-provider.d.ts +19 -0
  458. package/dist/mjs/providers/storage/fs-storage-provider.js +132 -0
  459. package/dist/mjs/providers/storage/getStorageProvider.d.ts +4 -0
  460. package/dist/mjs/providers/storage/getStorageProvider.js +18 -0
  461. package/dist/mjs/providers/storage/parseStorageCredentials.d.ts +4 -0
  462. package/dist/mjs/providers/storage/parseStorageCredentials.js +17 -0
  463. package/dist/mjs/providers/storage/types.d.ts +29 -0
  464. package/dist/mjs/providers/storage/types.js +2 -0
  465. package/dist/mjs/staticModels/Deposits.d.ts +85 -0
  466. package/dist/mjs/staticModels/Deposits.js +263 -0
  467. package/dist/mjs/staticModels/Diamond.d.ts +6 -0
  468. package/dist/mjs/staticModels/Diamond.js +17 -0
  469. package/dist/mjs/staticModels/ModelPackager.d.ts +18 -0
  470. package/dist/mjs/staticModels/ModelPackager.js +45 -0
  471. package/dist/mjs/staticModels/ProviderRewards.d.ts +5 -0
  472. package/dist/mjs/staticModels/ProviderRewards.js +76 -0
  473. package/dist/mjs/staticModels/StaticModel.d.ts +6 -0
  474. package/dist/mjs/staticModels/StaticModel.js +38 -0
  475. package/dist/mjs/staticModels/Superpro.d.ts +18 -0
  476. package/dist/mjs/staticModels/Superpro.js +45 -0
  477. package/dist/mjs/staticModels/SuperproToken.d.ts +113 -0
  478. package/dist/mjs/staticModels/SuperproToken.js +328 -0
  479. package/dist/mjs/store.d.ts +17 -0
  480. package/dist/mjs/store.js +17 -0
  481. package/dist/mjs/tee/OrderReportService.d.ts +9 -0
  482. package/dist/mjs/tee/OrderReportService.js +97 -0
  483. package/dist/mjs/tee/QuoteParser.d.ts +82 -0
  484. package/dist/mjs/tee/QuoteParser.js +381 -0
  485. package/dist/mjs/tee/TeeCertificateService.d.ts +20 -0
  486. package/dist/mjs/tee/TeeCertificateService.js +139 -0
  487. package/dist/mjs/tee/TeeSignatureVerifier.d.ts +24 -0
  488. package/dist/mjs/tee/TeeSignatureVerifier.js +111 -0
  489. package/dist/mjs/tee/errors.d.ts +11 -0
  490. package/dist/mjs/tee/errors.js +12 -0
  491. package/dist/mjs/tee/helpers.d.ts +14 -0
  492. package/dist/mjs/tee/helpers.js +110 -0
  493. package/dist/mjs/tee/interface.d.ts +63 -0
  494. package/dist/mjs/tee/interface.js +2 -0
  495. package/dist/mjs/tee/statuses.d.ts +14 -0
  496. package/dist/mjs/tee/statuses.js +17 -0
  497. package/dist/mjs/tee/types.d.ts +126 -0
  498. package/dist/mjs/tee/types.js +28 -0
  499. package/dist/mjs/types/Compressor.d.ts +5 -0
  500. package/dist/mjs/types/Compressor.js +2 -0
  501. package/dist/mjs/types/Consensus.d.ts +52 -0
  502. package/dist/mjs/types/Consensus.js +8 -0
  503. package/dist/mjs/types/DepositInfo.d.ts +6 -0
  504. package/dist/mjs/types/DepositInfo.js +2 -0
  505. package/dist/mjs/types/DistributedSecretStorage.d.ts +68 -0
  506. package/dist/mjs/types/DistributedSecretStorage.js +2 -0
  507. package/dist/mjs/types/EtlModel.d.ts +2 -0
  508. package/dist/mjs/types/EtlModel.js +2 -0
  509. package/dist/mjs/types/Events.d.ts +34 -0
  510. package/dist/mjs/types/Events.js +2 -0
  511. package/dist/mjs/types/HardwareInfo.d.ts +10 -0
  512. package/dist/mjs/types/HardwareInfo.js +2 -0
  513. package/dist/mjs/types/Marks.d.ts +9 -0
  514. package/dist/mjs/types/Marks.js +7 -0
  515. package/dist/mjs/types/Offer.d.ts +76 -0
  516. package/dist/mjs/types/Offer.js +29 -0
  517. package/dist/mjs/types/OfferVersion.d.ts +30 -0
  518. package/dist/mjs/types/OfferVersion.js +6 -0
  519. package/dist/mjs/types/OptionInfo.d.ts +8 -0
  520. package/dist/mjs/types/OptionInfo.js +2 -0
  521. package/dist/mjs/types/Order.d.ts +144 -0
  522. package/dist/mjs/types/Order.js +91 -0
  523. package/dist/mjs/types/OrderUsage.d.ts +28 -0
  524. package/dist/mjs/types/OrderUsage.js +2 -0
  525. package/dist/mjs/types/Origins.d.ts +6 -0
  526. package/dist/mjs/types/Origins.js +2 -0
  527. package/dist/mjs/types/Provider.d.ts +7 -0
  528. package/dist/mjs/types/Provider.js +2 -0
  529. package/dist/mjs/types/ProviderRewards.d.ts +5 -0
  530. package/dist/mjs/types/ProviderRewards.js +2 -0
  531. package/dist/mjs/types/ResourceLoader.d.ts +28 -0
  532. package/dist/mjs/types/ResourceLoader.js +2 -0
  533. package/dist/mjs/types/SlotInfo.d.ts +7 -0
  534. package/dist/mjs/types/SlotInfo.js +2 -0
  535. package/dist/mjs/types/SlotUsage.d.ts +11 -0
  536. package/dist/mjs/types/SlotUsage.js +6 -0
  537. package/dist/mjs/types/Superpro.d.ts +9 -0
  538. package/dist/mjs/types/Superpro.js +11 -0
  539. package/dist/mjs/types/TeeOfferInfo.d.ts +38 -0
  540. package/dist/mjs/types/TeeOfferInfo.js +2 -0
  541. package/dist/mjs/types/TeeOfferOption.d.ts +13 -0
  542. package/dist/mjs/types/TeeOfferOption.js +2 -0
  543. package/dist/mjs/types/TeeOfferSlot.d.ts +8 -0
  544. package/dist/mjs/types/TeeOfferSlot.js +2 -0
  545. package/dist/mjs/types/ValueOfferSlot.d.ts +18 -0
  546. package/dist/mjs/types/ValueOfferSlot.js +2 -0
  547. package/dist/mjs/types/Web3.d.ts +30 -0
  548. package/dist/mjs/types/Web3.js +2 -0
  549. package/dist/mjs/types/blockchainConnector/StorageAccess.d.ts +8 -0
  550. package/dist/mjs/types/blockchainConnector/StorageAccess.js +2 -0
  551. package/dist/mjs/types/index.d.ts +25 -0
  552. package/dist/mjs/types/index.js +26 -0
  553. package/dist/mjs/types/storage/StorageAccess.d.ts +7 -0
  554. package/dist/mjs/types/storage/StorageAccess.js +2 -0
  555. package/dist/mjs/types/storage/StorageFileAccess.d.ts +5 -0
  556. package/dist/mjs/types/storage/StorageFileAccess.js +2 -0
  557. package/dist/mjs/types/storage/StorageObject.d.ts +8 -0
  558. package/dist/mjs/types/storage/StorageObject.js +2 -0
  559. package/dist/mjs/utils/CryptoKeysTransformer.d.ts +42 -0
  560. package/dist/mjs/utils/CryptoKeysTransformer.js +240 -0
  561. package/dist/mjs/utils/Monitoring.d.ts +11 -0
  562. package/dist/mjs/utils/Monitoring.js +44 -0
  563. package/dist/mjs/utils/NonceTracker.d.ts +20 -0
  564. package/dist/mjs/utils/NonceTracker.js +77 -0
  565. package/dist/mjs/utils/PubSub.d.ts +9 -0
  566. package/dist/mjs/utils/PubSub.js +32 -0
  567. package/dist/mjs/utils/TxManager.d.ts +28 -0
  568. package/dist/mjs/utils/TxManager.js +278 -0
  569. package/dist/mjs/utils/cache/index.d.ts +2 -0
  570. package/dist/mjs/utils/cache/index.js +3 -0
  571. package/dist/mjs/utils/cache/memory.d.ts +19 -0
  572. package/dist/mjs/utils/cache/memory.js +61 -0
  573. package/dist/mjs/utils/cache/memory.spec.d.ts +1 -0
  574. package/dist/mjs/utils/cache/memory.spec.js +89 -0
  575. package/dist/mjs/utils/cache/types.d.ts +17 -0
  576. package/dist/mjs/utils/cache/types.js +2 -0
  577. package/dist/mjs/utils/compressors/GzipCompressor.d.ts +8 -0
  578. package/dist/mjs/utils/compressors/GzipCompressor.js +15 -0
  579. package/dist/mjs/utils/compressors/UncompressedCompressor.d.ts +8 -0
  580. package/dist/mjs/utils/compressors/UncompressedCompressor.js +13 -0
  581. package/dist/mjs/utils/compressors/index.d.ts +2 -0
  582. package/dist/mjs/utils/compressors/index.js +3 -0
  583. package/dist/mjs/utils/helper.d.ts +87 -0
  584. package/dist/mjs/utils/helper.js +526 -0
  585. package/dist/mjs/utils/helpers/calculateObjectHash.d.ts +8 -0
  586. package/dist/mjs/utils/helpers/calculateObjectHash.js +18 -0
  587. package/dist/mjs/utils/helpers/getRawRpc.d.ts +2 -0
  588. package/dist/mjs/utils/helpers/getRawRpc.js +15 -0
  589. package/dist/mjs/utils/helpers/getStreamChunks.d.ts +9 -0
  590. package/dist/mjs/utils/helpers/getStreamChunks.js +31 -0
  591. package/dist/mjs/utils/helpers/index.d.ts +5 -0
  592. package/dist/mjs/utils/helpers/index.js +6 -0
  593. package/dist/mjs/utils/helpers/promise.d.ts +2 -0
  594. package/dist/mjs/utils/helpers/promise.js +5 -0
  595. package/dist/mjs/utils/helpers/streamToBuffer.d.ts +4 -0
  596. package/dist/mjs/utils/helpers/streamToBuffer.js +9 -0
  597. package/dist/mjs/utils/helpers/tryWithInterval.d.ts +13 -0
  598. package/dist/mjs/utils/helpers/tryWithInterval.js +35 -0
  599. package/dist/mjs/utils/rent-calculator/index.d.ts +2 -0
  600. package/dist/mjs/utils/rent-calculator/index.js +3 -0
  601. package/dist/mjs/utils/rent-calculator/rent-calculator.d.ts +14 -0
  602. package/dist/mjs/utils/rent-calculator/rent-calculator.js +110 -0
  603. package/dist/mjs/utils/rent-calculator/types.d.ts +14 -0
  604. package/dist/mjs/utils/rent-calculator/types.js +2 -0
  605. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.d.ts +10 -0
  606. package/dist/mjs/utils/resourceLoaders/BaseResourceLoader.js +10 -0
  607. package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.d.ts +18 -0
  608. package/dist/mjs/utils/resourceLoaders/StorageProviderLoader.js +53 -0
  609. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.d.ts +9 -0
  610. package/dist/mjs/utils/resourceLoaders/UrlResourceLoader.js +44 -0
  611. package/dist/mjs/utils/resourceLoaders/getResourceLoader.d.ts +5 -0
  612. package/dist/mjs/utils/resourceLoaders/getResourceLoader.js +11 -0
  613. package/dist/mjs/utils/resourceLoaders/index.d.ts +1 -0
  614. package/dist/mjs/utils/resourceLoaders/index.js +2 -0
  615. package/dist/mjs/utils/schema-utils/index.d.ts +2 -0
  616. package/dist/mjs/utils/schema-utils/index.js +3 -0
  617. package/dist/mjs/utils/schema-utils/serializer.d.ts +3 -0
  618. package/dist/mjs/utils/schema-utils/serializer.js +26 -0
  619. package/dist/mjs/utils/schema-utils/validator.d.ts +7 -0
  620. package/dist/mjs/utils/schema-utils/validator.js +45 -0
  621. package/dist/mjs/utils/tcb.d.ts +2 -0
  622. package/dist/mjs/utils/tcb.js +9 -0
  623. package/dist/mjs/utils/tokens/get-tokens-info.d.ts +8 -0
  624. package/dist/mjs/utils/tokens/get-tokens-info.js +25 -0
  625. package/dist/mjs/utils/tokens/index.d.ts +1 -0
  626. package/dist/mjs/utils/tokens/index.js +2 -0
  627. package/dist/mjs/utils/types.d.ts +13 -0
  628. package/dist/mjs/utils/types.js +2 -0
  629. package/package.json +103 -0
@@ -0,0 +1,4335 @@
1
+ "use strict";
2
+ // @ts-nocheck
3
+ /* Autogenerated file. Do not edit manually. */
4
+ /* tslint:disable */
5
+ /* eslint-disable */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.App__factory = void 0;
8
+ const ethers_1 = require("ethers");
9
+ const _abi = [
10
+ {
11
+ anonymous: false,
12
+ inputs: [
13
+ {
14
+ indexed: true,
15
+ internalType: "bytes32",
16
+ name: "mrEnclave",
17
+ type: "bytes32",
18
+ },
19
+ {
20
+ indexed: true,
21
+ internalType: "bool",
22
+ name: "isBlacklisted",
23
+ type: "bool",
24
+ },
25
+ ],
26
+ name: "MrEnclaveBlacklisted",
27
+ type: "event",
28
+ },
29
+ {
30
+ anonymous: false,
31
+ inputs: [
32
+ {
33
+ indexed: true,
34
+ internalType: "bytes32",
35
+ name: "mrSigner",
36
+ type: "bytes32",
37
+ },
38
+ {
39
+ indexed: true,
40
+ internalType: "bool",
41
+ name: "isBlacklisted",
42
+ type: "bool",
43
+ },
44
+ ],
45
+ name: "MrSignerBlacklisted",
46
+ type: "event",
47
+ },
48
+ {
49
+ anonymous: false,
50
+ inputs: [
51
+ {
52
+ indexed: true,
53
+ internalType: "bytes",
54
+ name: "serialNumber",
55
+ type: "bytes",
56
+ },
57
+ {
58
+ indexed: true,
59
+ internalType: "bool",
60
+ name: "isBlacklisted",
61
+ type: "bool",
62
+ },
63
+ ],
64
+ name: "SerialNumberBlacklisted",
65
+ type: "event",
66
+ },
67
+ {
68
+ anonymous: false,
69
+ inputs: [
70
+ {
71
+ indexed: true,
72
+ internalType: "uint256",
73
+ name: "serialNumber",
74
+ type: "uint256",
75
+ },
76
+ ],
77
+ name: "SetRootCert",
78
+ type: "event",
79
+ },
80
+ {
81
+ inputs: [],
82
+ name: "getCertsBlacklist",
83
+ outputs: [
84
+ {
85
+ internalType: "bytes[]",
86
+ name: "bySerialNumber",
87
+ type: "bytes[]",
88
+ },
89
+ {
90
+ internalType: "bytes32[]",
91
+ name: "byMrEnclave",
92
+ type: "bytes32[]",
93
+ },
94
+ {
95
+ internalType: "bytes32[]",
96
+ name: "byMrSigner",
97
+ type: "bytes32[]",
98
+ },
99
+ ],
100
+ stateMutability: "view",
101
+ type: "function",
102
+ },
103
+ {
104
+ inputs: [
105
+ {
106
+ internalType: "uint256",
107
+ name: "rootCertId",
108
+ type: "uint256",
109
+ },
110
+ ],
111
+ name: "getRootCert",
112
+ outputs: [
113
+ {
114
+ components: [
115
+ {
116
+ internalType: "bytes[]",
117
+ name: "nonSerializedParts",
118
+ type: "bytes[]",
119
+ },
120
+ {
121
+ internalType: "bytes",
122
+ name: "expirationDate",
123
+ type: "bytes",
124
+ },
125
+ {
126
+ internalType: "bytes",
127
+ name: "ca",
128
+ type: "bytes",
129
+ },
130
+ {
131
+ internalType: "bytes32",
132
+ name: "userData",
133
+ type: "bytes32",
134
+ },
135
+ {
136
+ internalType: "bytes",
137
+ name: "publicKey",
138
+ type: "bytes",
139
+ },
140
+ {
141
+ internalType: "bytes",
142
+ name: "serialNumber",
143
+ type: "bytes",
144
+ },
145
+ {
146
+ internalType: "bytes32",
147
+ name: "mrEnclave",
148
+ type: "bytes32",
149
+ },
150
+ {
151
+ internalType: "bytes32",
152
+ name: "mrSigner",
153
+ type: "bytes32",
154
+ },
155
+ {
156
+ internalType: "bytes",
157
+ name: "signature",
158
+ type: "bytes",
159
+ },
160
+ ],
161
+ internalType: "struct ChunkedX509Cert",
162
+ name: "",
163
+ type: "tuple",
164
+ },
165
+ ],
166
+ stateMutability: "view",
167
+ type: "function",
168
+ },
169
+ {
170
+ inputs: [
171
+ {
172
+ internalType: "bytes",
173
+ name: "serialNumber",
174
+ type: "bytes",
175
+ },
176
+ {
177
+ internalType: "bytes32",
178
+ name: "mrEnclave",
179
+ type: "bytes32",
180
+ },
181
+ {
182
+ internalType: "bytes32",
183
+ name: "mrSigner",
184
+ type: "bytes32",
185
+ },
186
+ ],
187
+ name: "isCertBlacklisted",
188
+ outputs: [
189
+ {
190
+ internalType: "bool",
191
+ name: "",
192
+ type: "bool",
193
+ },
194
+ ],
195
+ stateMutability: "view",
196
+ type: "function",
197
+ },
198
+ {
199
+ inputs: [
200
+ {
201
+ components: [
202
+ {
203
+ internalType: "bytes",
204
+ name: "item",
205
+ type: "bytes",
206
+ },
207
+ {
208
+ internalType: "bool",
209
+ name: "isBlacklisted",
210
+ type: "bool",
211
+ },
212
+ ],
213
+ internalType: "struct BytesBlacklist[]",
214
+ name: "serialNumberChanges",
215
+ type: "tuple[]",
216
+ },
217
+ {
218
+ components: [
219
+ {
220
+ internalType: "bytes32",
221
+ name: "item",
222
+ type: "bytes32",
223
+ },
224
+ {
225
+ internalType: "bool",
226
+ name: "isBlacklisted",
227
+ type: "bool",
228
+ },
229
+ ],
230
+ internalType: "struct Bytes32Blacklist[]",
231
+ name: "mrEnclaveChanges",
232
+ type: "tuple[]",
233
+ },
234
+ {
235
+ components: [
236
+ {
237
+ internalType: "bytes32",
238
+ name: "item",
239
+ type: "bytes32",
240
+ },
241
+ {
242
+ internalType: "bool",
243
+ name: "isBlacklisted",
244
+ type: "bool",
245
+ },
246
+ ],
247
+ internalType: "struct Bytes32Blacklist[]",
248
+ name: "mrSignerChanges",
249
+ type: "tuple[]",
250
+ },
251
+ ],
252
+ name: "setCertsBlacklist",
253
+ outputs: [],
254
+ stateMutability: "nonpayable",
255
+ type: "function",
256
+ },
257
+ {
258
+ inputs: [
259
+ {
260
+ components: [
261
+ {
262
+ internalType: "bytes[]",
263
+ name: "nonSerializedParts",
264
+ type: "bytes[]",
265
+ },
266
+ {
267
+ internalType: "bytes",
268
+ name: "expirationDate",
269
+ type: "bytes",
270
+ },
271
+ {
272
+ internalType: "bytes",
273
+ name: "ca",
274
+ type: "bytes",
275
+ },
276
+ {
277
+ internalType: "bytes32",
278
+ name: "userData",
279
+ type: "bytes32",
280
+ },
281
+ {
282
+ internalType: "bytes",
283
+ name: "publicKey",
284
+ type: "bytes",
285
+ },
286
+ {
287
+ internalType: "bytes",
288
+ name: "serialNumber",
289
+ type: "bytes",
290
+ },
291
+ {
292
+ internalType: "bytes32",
293
+ name: "mrEnclave",
294
+ type: "bytes32",
295
+ },
296
+ {
297
+ internalType: "bytes32",
298
+ name: "mrSigner",
299
+ type: "bytes32",
300
+ },
301
+ {
302
+ internalType: "bytes",
303
+ name: "signature",
304
+ type: "bytes",
305
+ },
306
+ ],
307
+ internalType: "struct ChunkedX509Cert",
308
+ name: "cert",
309
+ type: "tuple",
310
+ },
311
+ ],
312
+ name: "setRootCert",
313
+ outputs: [],
314
+ stateMutability: "nonpayable",
315
+ type: "function",
316
+ },
317
+ {
318
+ inputs: [],
319
+ name: "totalRootCertificates",
320
+ outputs: [
321
+ {
322
+ internalType: "uint256",
323
+ name: "",
324
+ type: "uint256",
325
+ },
326
+ ],
327
+ stateMutability: "view",
328
+ type: "function",
329
+ },
330
+ {
331
+ inputs: [
332
+ {
333
+ components: [
334
+ {
335
+ internalType: "bytes[]",
336
+ name: "nonSerializedParts",
337
+ type: "bytes[]",
338
+ },
339
+ {
340
+ internalType: "bytes",
341
+ name: "expirationDate",
342
+ type: "bytes",
343
+ },
344
+ {
345
+ internalType: "bytes",
346
+ name: "ca",
347
+ type: "bytes",
348
+ },
349
+ {
350
+ internalType: "bytes32",
351
+ name: "userData",
352
+ type: "bytes32",
353
+ },
354
+ {
355
+ internalType: "bytes",
356
+ name: "publicKey",
357
+ type: "bytes",
358
+ },
359
+ {
360
+ internalType: "bytes",
361
+ name: "serialNumber",
362
+ type: "bytes",
363
+ },
364
+ {
365
+ internalType: "bytes32",
366
+ name: "mrEnclave",
367
+ type: "bytes32",
368
+ },
369
+ {
370
+ internalType: "bytes32",
371
+ name: "mrSigner",
372
+ type: "bytes32",
373
+ },
374
+ {
375
+ internalType: "bytes",
376
+ name: "signature",
377
+ type: "bytes",
378
+ },
379
+ ],
380
+ internalType: "struct ChunkedX509Cert",
381
+ name: "cert",
382
+ type: "tuple",
383
+ },
384
+ {
385
+ internalType: "bytes",
386
+ name: "caPubKey",
387
+ type: "bytes",
388
+ },
389
+ ],
390
+ name: "verifyCert",
391
+ outputs: [
392
+ {
393
+ internalType: "bytes32",
394
+ name: "certHash",
395
+ type: "bytes32",
396
+ },
397
+ ],
398
+ stateMutability: "view",
399
+ type: "function",
400
+ },
401
+ {
402
+ inputs: [
403
+ {
404
+ components: [
405
+ {
406
+ internalType: "bytes[]",
407
+ name: "nonSerializedParts",
408
+ type: "bytes[]",
409
+ },
410
+ {
411
+ internalType: "bytes",
412
+ name: "expirationDate",
413
+ type: "bytes",
414
+ },
415
+ {
416
+ internalType: "bytes",
417
+ name: "ca",
418
+ type: "bytes",
419
+ },
420
+ {
421
+ internalType: "bytes32",
422
+ name: "userData",
423
+ type: "bytes32",
424
+ },
425
+ {
426
+ internalType: "bytes",
427
+ name: "publicKey",
428
+ type: "bytes",
429
+ },
430
+ {
431
+ internalType: "bytes",
432
+ name: "serialNumber",
433
+ type: "bytes",
434
+ },
435
+ {
436
+ internalType: "bytes32",
437
+ name: "mrEnclave",
438
+ type: "bytes32",
439
+ },
440
+ {
441
+ internalType: "bytes32",
442
+ name: "mrSigner",
443
+ type: "bytes32",
444
+ },
445
+ {
446
+ internalType: "bytes",
447
+ name: "signature",
448
+ type: "bytes",
449
+ },
450
+ ],
451
+ internalType: "struct ChunkedX509Cert[]",
452
+ name: "certsChain",
453
+ type: "tuple[]",
454
+ },
455
+ {
456
+ internalType: "uint256",
457
+ name: "rootCertId",
458
+ type: "uint256",
459
+ },
460
+ ],
461
+ name: "verifyCertChain",
462
+ outputs: [
463
+ {
464
+ internalType: "bytes32",
465
+ name: "leafCertHash",
466
+ type: "bytes32",
467
+ },
468
+ ],
469
+ stateMutability: "view",
470
+ type: "function",
471
+ },
472
+ {
473
+ anonymous: false,
474
+ inputs: [
475
+ {
476
+ indexed: true,
477
+ internalType: "bytes32",
478
+ name: "commitHash",
479
+ type: "bytes32",
480
+ },
481
+ {
482
+ indexed: false,
483
+ internalType: "uint256",
484
+ name: "timestamp",
485
+ type: "uint256",
486
+ },
487
+ ],
488
+ name: "HashCommitted",
489
+ type: "event",
490
+ },
491
+ {
492
+ inputs: [
493
+ {
494
+ internalType: "bytes32",
495
+ name: "commitHash",
496
+ type: "bytes32",
497
+ },
498
+ ],
499
+ name: "commit",
500
+ outputs: [],
501
+ stateMutability: "nonpayable",
502
+ type: "function",
503
+ },
504
+ {
505
+ inputs: [
506
+ {
507
+ internalType: "bytes32",
508
+ name: "commitHash",
509
+ type: "bytes32",
510
+ },
511
+ ],
512
+ name: "hashTimestamp",
513
+ outputs: [
514
+ {
515
+ internalType: "uint256",
516
+ name: "",
517
+ type: "uint256",
518
+ },
519
+ ],
520
+ stateMutability: "view",
521
+ type: "function",
522
+ },
523
+ {
524
+ inputs: [
525
+ {
526
+ internalType: "bytes32",
527
+ name: "commitHash",
528
+ type: "bytes32",
529
+ },
530
+ ],
531
+ name: "revealCheck",
532
+ outputs: [],
533
+ stateMutability: "view",
534
+ type: "function",
535
+ },
536
+ {
537
+ inputs: [
538
+ {
539
+ internalType: "address",
540
+ name: "token",
541
+ type: "address",
542
+ },
543
+ ],
544
+ name: "SafeERC20FailedOperation",
545
+ type: "error",
546
+ },
547
+ {
548
+ anonymous: false,
549
+ inputs: [
550
+ {
551
+ indexed: false,
552
+ internalType: "uint256",
553
+ name: "oldPenaltyCoefficient",
554
+ type: "uint256",
555
+ },
556
+ {
557
+ indexed: false,
558
+ internalType: "uint256",
559
+ name: "newPenaltyCoefficient",
560
+ type: "uint256",
561
+ },
562
+ {
563
+ indexed: false,
564
+ internalType: "uint256",
565
+ name: "penaltyAmount",
566
+ type: "uint256",
567
+ },
568
+ ],
569
+ name: "PenaltyPool",
570
+ type: "event",
571
+ },
572
+ {
573
+ anonymous: false,
574
+ inputs: [
575
+ {
576
+ indexed: true,
577
+ internalType: "address",
578
+ name: "delegator",
579
+ type: "address",
580
+ },
581
+ {
582
+ indexed: false,
583
+ internalType: "uint256",
584
+ name: "amount",
585
+ type: "uint256",
586
+ },
587
+ ],
588
+ name: "TokensDelegated",
589
+ type: "event",
590
+ },
591
+ {
592
+ anonymous: false,
593
+ inputs: [
594
+ {
595
+ indexed: true,
596
+ internalType: "address",
597
+ name: "delegator",
598
+ type: "address",
599
+ },
600
+ {
601
+ indexed: false,
602
+ internalType: "uint256",
603
+ name: "amount",
604
+ type: "uint256",
605
+ },
606
+ ],
607
+ name: "TokensUndelegated",
608
+ type: "event",
609
+ },
610
+ {
611
+ inputs: [
612
+ {
613
+ components: [
614
+ {
615
+ internalType: "uint256",
616
+ name: "amount",
617
+ type: "uint256",
618
+ },
619
+ ],
620
+ internalType: "struct DelegationArgs[]",
621
+ name: "args",
622
+ type: "tuple[]",
623
+ },
624
+ ],
625
+ name: "batchUndelegation",
626
+ outputs: [],
627
+ stateMutability: "nonpayable",
628
+ type: "function",
629
+ },
630
+ {
631
+ inputs: [
632
+ {
633
+ components: [
634
+ {
635
+ internalType: "uint256",
636
+ name: "amount",
637
+ type: "uint256",
638
+ },
639
+ ],
640
+ internalType: "struct DelegationArgs",
641
+ name: "args",
642
+ type: "tuple",
643
+ },
644
+ ],
645
+ name: "delegateTokens",
646
+ outputs: [],
647
+ stateMutability: "nonpayable",
648
+ type: "function",
649
+ },
650
+ {
651
+ inputs: [
652
+ {
653
+ internalType: "address",
654
+ name: "delegator",
655
+ type: "address",
656
+ },
657
+ ],
658
+ name: "getDelegatedAmount",
659
+ outputs: [
660
+ {
661
+ internalType: "uint256",
662
+ name: "",
663
+ type: "uint256",
664
+ },
665
+ ],
666
+ stateMutability: "view",
667
+ type: "function",
668
+ },
669
+ {
670
+ inputs: [
671
+ {
672
+ internalType: "address",
673
+ name: "delegator",
674
+ type: "address",
675
+ },
676
+ {
677
+ internalType: "uint256",
678
+ name: "epochIndex",
679
+ type: "uint256",
680
+ },
681
+ ],
682
+ name: "getDelegatorAmounts",
683
+ outputs: [
684
+ {
685
+ components: [
686
+ {
687
+ internalType: "uint256",
688
+ name: "delegated",
689
+ type: "uint256",
690
+ },
691
+ {
692
+ internalType: "uint256",
693
+ name: "queued",
694
+ type: "uint256",
695
+ },
696
+ ],
697
+ internalType: "struct DelegationStorageAccessor.DelegatedAmounts",
698
+ name: "",
699
+ type: "tuple",
700
+ },
701
+ ],
702
+ stateMutability: "view",
703
+ type: "function",
704
+ },
705
+ {
706
+ inputs: [
707
+ {
708
+ internalType: "address",
709
+ name: "delegator",
710
+ type: "address",
711
+ },
712
+ ],
713
+ name: "getDelegatorEpochIndexesCount",
714
+ outputs: [
715
+ {
716
+ internalType: "uint256",
717
+ name: "",
718
+ type: "uint256",
719
+ },
720
+ ],
721
+ stateMutability: "view",
722
+ type: "function",
723
+ },
724
+ {
725
+ inputs: [
726
+ {
727
+ internalType: "address",
728
+ name: "delegator",
729
+ type: "address",
730
+ },
731
+ {
732
+ internalType: "uint256",
733
+ name: "from",
734
+ type: "uint256",
735
+ },
736
+ {
737
+ internalType: "uint256",
738
+ name: "to",
739
+ type: "uint256",
740
+ },
741
+ ],
742
+ name: "getDelegatorEpochIndexesRange",
743
+ outputs: [
744
+ {
745
+ internalType: "uint256[]",
746
+ name: "",
747
+ type: "uint256[]",
748
+ },
749
+ ],
750
+ stateMutability: "view",
751
+ type: "function",
752
+ },
753
+ {
754
+ inputs: [
755
+ {
756
+ internalType: "address",
757
+ name: "delegator",
758
+ type: "address",
759
+ },
760
+ {
761
+ internalType: "uint256",
762
+ name: "epochIndex",
763
+ type: "uint256",
764
+ },
765
+ {
766
+ internalType: "uint256",
767
+ name: "delegatorUpdateIndex",
768
+ type: "uint256",
769
+ },
770
+ ],
771
+ name: "getDelegatorParticipatingRewardTokens",
772
+ outputs: [
773
+ {
774
+ internalType: "uint256",
775
+ name: "",
776
+ type: "uint256",
777
+ },
778
+ ],
779
+ stateMutability: "view",
780
+ type: "function",
781
+ },
782
+ {
783
+ inputs: [
784
+ {
785
+ internalType: "uint256",
786
+ name: "epochIndex",
787
+ type: "uint256",
788
+ },
789
+ ],
790
+ name: "getEpochDelegatedAmounts",
791
+ outputs: [
792
+ {
793
+ components: [
794
+ {
795
+ internalType: "uint256",
796
+ name: "delegated",
797
+ type: "uint256",
798
+ },
799
+ {
800
+ internalType: "uint256",
801
+ name: "queued",
802
+ type: "uint256",
803
+ },
804
+ ],
805
+ internalType: "struct DelegationStorageAccessor.DelegatedAmounts",
806
+ name: "",
807
+ type: "tuple",
808
+ },
809
+ ],
810
+ stateMutability: "view",
811
+ type: "function",
812
+ },
813
+ {
814
+ inputs: [],
815
+ name: "getPoolEpochIndexesCount",
816
+ outputs: [
817
+ {
818
+ internalType: "uint256",
819
+ name: "",
820
+ type: "uint256",
821
+ },
822
+ ],
823
+ stateMutability: "view",
824
+ type: "function",
825
+ },
826
+ {
827
+ inputs: [
828
+ {
829
+ internalType: "uint256",
830
+ name: "from",
831
+ type: "uint256",
832
+ },
833
+ {
834
+ internalType: "uint256",
835
+ name: "to",
836
+ type: "uint256",
837
+ },
838
+ ],
839
+ name: "getPoolEpochIndexesRange",
840
+ outputs: [
841
+ {
842
+ internalType: "uint256[]",
843
+ name: "",
844
+ type: "uint256[]",
845
+ },
846
+ ],
847
+ stateMutability: "view",
848
+ type: "function",
849
+ },
850
+ {
851
+ inputs: [
852
+ {
853
+ internalType: "uint256",
854
+ name: "epochIndex",
855
+ type: "uint256",
856
+ },
857
+ {
858
+ internalType: "uint256",
859
+ name: "poolUpdateIndex",
860
+ type: "uint256",
861
+ },
862
+ ],
863
+ name: "getPoolParticipatingRewardTokens",
864
+ outputs: [
865
+ {
866
+ internalType: "uint256",
867
+ name: "",
868
+ type: "uint256",
869
+ },
870
+ ],
871
+ stateMutability: "view",
872
+ type: "function",
873
+ },
874
+ {
875
+ inputs: [],
876
+ name: "getPoolTotalDelegated",
877
+ outputs: [
878
+ {
879
+ internalType: "uint256",
880
+ name: "",
881
+ type: "uint256",
882
+ },
883
+ ],
884
+ stateMutability: "view",
885
+ type: "function",
886
+ },
887
+ {
888
+ inputs: [
889
+ {
890
+ internalType: "uint256",
891
+ name: "penaltyAmount",
892
+ type: "uint256",
893
+ },
894
+ {
895
+ internalType: "address",
896
+ name: "receiver",
897
+ type: "address",
898
+ },
899
+ ],
900
+ name: "penaltyPool",
901
+ outputs: [],
902
+ stateMutability: "nonpayable",
903
+ type: "function",
904
+ },
905
+ {
906
+ inputs: [
907
+ {
908
+ components: [
909
+ {
910
+ internalType: "uint256",
911
+ name: "amount",
912
+ type: "uint256",
913
+ },
914
+ ],
915
+ internalType: "struct DelegationArgs",
916
+ name: "args",
917
+ type: "tuple",
918
+ },
919
+ ],
920
+ name: "undelegateTokens",
921
+ outputs: [],
922
+ stateMutability: "nonpayable",
923
+ type: "function",
924
+ },
925
+ {
926
+ inputs: [
927
+ {
928
+ internalType: "address",
929
+ name: "token",
930
+ type: "address",
931
+ },
932
+ ],
933
+ name: "SafeERC20FailedOperation",
934
+ type: "error",
935
+ },
936
+ {
937
+ anonymous: false,
938
+ inputs: [
939
+ {
940
+ indexed: true,
941
+ internalType: "address",
942
+ name: "token",
943
+ type: "address",
944
+ },
945
+ {
946
+ indexed: true,
947
+ internalType: "address",
948
+ name: "owner",
949
+ type: "address",
950
+ },
951
+ {
952
+ indexed: false,
953
+ internalType: "uint256",
954
+ name: "amount",
955
+ type: "uint256",
956
+ },
957
+ {
958
+ indexed: false,
959
+ internalType: "uint256",
960
+ name: "totalLocked",
961
+ type: "uint256",
962
+ },
963
+ ],
964
+ name: "DepositPartLocked",
965
+ type: "event",
966
+ },
967
+ {
968
+ anonymous: false,
969
+ inputs: [
970
+ {
971
+ indexed: true,
972
+ internalType: "address",
973
+ name: "token",
974
+ type: "address",
975
+ },
976
+ {
977
+ indexed: true,
978
+ internalType: "address",
979
+ name: "owner",
980
+ type: "address",
981
+ },
982
+ {
983
+ indexed: false,
984
+ internalType: "uint256",
985
+ name: "amount",
986
+ type: "uint256",
987
+ },
988
+ {
989
+ indexed: false,
990
+ internalType: "uint256",
991
+ name: "totalLocked",
992
+ type: "uint256",
993
+ },
994
+ ],
995
+ name: "DepositPartUnlocked",
996
+ type: "event",
997
+ },
998
+ {
999
+ anonymous: false,
1000
+ inputs: [
1001
+ {
1002
+ indexed: true,
1003
+ internalType: "address",
1004
+ name: "token",
1005
+ type: "address",
1006
+ },
1007
+ {
1008
+ indexed: true,
1009
+ internalType: "address",
1010
+ name: "owner",
1011
+ type: "address",
1012
+ },
1013
+ {
1014
+ indexed: false,
1015
+ internalType: "uint256",
1016
+ name: "amount",
1017
+ type: "uint256",
1018
+ },
1019
+ {
1020
+ indexed: false,
1021
+ internalType: "uint256",
1022
+ name: "totalAmount",
1023
+ type: "uint256",
1024
+ },
1025
+ ],
1026
+ name: "DepositReplenished",
1027
+ type: "event",
1028
+ },
1029
+ {
1030
+ anonymous: false,
1031
+ inputs: [
1032
+ {
1033
+ indexed: true,
1034
+ internalType: "address",
1035
+ name: "token",
1036
+ type: "address",
1037
+ },
1038
+ {
1039
+ indexed: true,
1040
+ internalType: "address",
1041
+ name: "owner",
1042
+ type: "address",
1043
+ },
1044
+ {
1045
+ indexed: false,
1046
+ internalType: "uint256",
1047
+ name: "amount",
1048
+ type: "uint256",
1049
+ },
1050
+ {
1051
+ indexed: false,
1052
+ internalType: "uint256",
1053
+ name: "totalAmount",
1054
+ type: "uint256",
1055
+ },
1056
+ ],
1057
+ name: "DepositWithdrawn",
1058
+ type: "event",
1059
+ },
1060
+ {
1061
+ anonymous: false,
1062
+ inputs: [
1063
+ {
1064
+ indexed: true,
1065
+ internalType: "address",
1066
+ name: "owner",
1067
+ type: "address",
1068
+ },
1069
+ {
1070
+ indexed: false,
1071
+ internalType: "uint256",
1072
+ name: "amount",
1073
+ type: "uint256",
1074
+ },
1075
+ ],
1076
+ name: "ProfitWithdrawn",
1077
+ type: "event",
1078
+ },
1079
+ {
1080
+ inputs: [
1081
+ {
1082
+ internalType: "address",
1083
+ name: "tokenAddress",
1084
+ type: "address",
1085
+ },
1086
+ {
1087
+ internalType: "address",
1088
+ name: "depositOwner",
1089
+ type: "address",
1090
+ },
1091
+ {
1092
+ internalType: "uint256",
1093
+ name: "amount",
1094
+ type: "uint256",
1095
+ },
1096
+ ],
1097
+ name: "addProfit",
1098
+ outputs: [],
1099
+ stateMutability: "nonpayable",
1100
+ type: "function",
1101
+ },
1102
+ {
1103
+ inputs: [
1104
+ {
1105
+ internalType: "address",
1106
+ name: "tokenAddress",
1107
+ type: "address",
1108
+ },
1109
+ {
1110
+ internalType: "uint256",
1111
+ name: "profit",
1112
+ type: "uint256",
1113
+ },
1114
+ ],
1115
+ name: "calculateProtocolIncome",
1116
+ outputs: [
1117
+ {
1118
+ internalType: "uint256",
1119
+ name: "",
1120
+ type: "uint256",
1121
+ },
1122
+ ],
1123
+ stateMutability: "view",
1124
+ type: "function",
1125
+ },
1126
+ {
1127
+ inputs: [
1128
+ {
1129
+ internalType: "address",
1130
+ name: "tokenAddress",
1131
+ type: "address",
1132
+ },
1133
+ {
1134
+ internalType: "address",
1135
+ name: "depositOwner",
1136
+ type: "address",
1137
+ },
1138
+ ],
1139
+ name: "getDepositInfo",
1140
+ outputs: [
1141
+ {
1142
+ components: [
1143
+ {
1144
+ internalType: "uint256",
1145
+ name: "amount",
1146
+ type: "uint256",
1147
+ },
1148
+ {
1149
+ internalType: "uint256",
1150
+ name: "totalLocked",
1151
+ type: "uint256",
1152
+ },
1153
+ {
1154
+ internalType: "uint256",
1155
+ name: "profit",
1156
+ type: "uint256",
1157
+ },
1158
+ ],
1159
+ internalType: "struct DepositInfo",
1160
+ name: "",
1161
+ type: "tuple",
1162
+ },
1163
+ ],
1164
+ stateMutability: "view",
1165
+ type: "function",
1166
+ },
1167
+ {
1168
+ inputs: [
1169
+ {
1170
+ internalType: "address",
1171
+ name: "tokenAddress",
1172
+ type: "address",
1173
+ },
1174
+ {
1175
+ internalType: "address",
1176
+ name: "depositOwner",
1177
+ type: "address",
1178
+ },
1179
+ ],
1180
+ name: "getLockedTokensAmount",
1181
+ outputs: [
1182
+ {
1183
+ internalType: "uint256",
1184
+ name: "",
1185
+ type: "uint256",
1186
+ },
1187
+ ],
1188
+ stateMutability: "view",
1189
+ type: "function",
1190
+ },
1191
+ {
1192
+ inputs: [
1193
+ {
1194
+ internalType: "address",
1195
+ name: "tokenAddress",
1196
+ type: "address",
1197
+ },
1198
+ {
1199
+ internalType: "address",
1200
+ name: "beneficiary",
1201
+ type: "address",
1202
+ },
1203
+ {
1204
+ internalType: "uint256",
1205
+ name: "amount",
1206
+ type: "uint256",
1207
+ },
1208
+ ],
1209
+ name: "increaseForByApp",
1210
+ outputs: [],
1211
+ stateMutability: "nonpayable",
1212
+ type: "function",
1213
+ },
1214
+ {
1215
+ inputs: [
1216
+ {
1217
+ internalType: "address",
1218
+ name: "tokenAddress",
1219
+ type: "address",
1220
+ },
1221
+ {
1222
+ internalType: "address",
1223
+ name: "depositOwner",
1224
+ type: "address",
1225
+ },
1226
+ {
1227
+ internalType: "uint256",
1228
+ name: "amount",
1229
+ type: "uint256",
1230
+ },
1231
+ ],
1232
+ name: "lockDeposit",
1233
+ outputs: [],
1234
+ stateMutability: "nonpayable",
1235
+ type: "function",
1236
+ },
1237
+ {
1238
+ inputs: [
1239
+ {
1240
+ internalType: "address",
1241
+ name: "tokenAddress",
1242
+ type: "address",
1243
+ },
1244
+ {
1245
+ internalType: "uint256",
1246
+ name: "amount",
1247
+ type: "uint256",
1248
+ },
1249
+ ],
1250
+ name: "replenish",
1251
+ outputs: [],
1252
+ stateMutability: "nonpayable",
1253
+ type: "function",
1254
+ },
1255
+ {
1256
+ inputs: [
1257
+ {
1258
+ internalType: "address",
1259
+ name: "tokenAddress",
1260
+ type: "address",
1261
+ },
1262
+ {
1263
+ internalType: "address",
1264
+ name: "beneficiary",
1265
+ type: "address",
1266
+ },
1267
+ {
1268
+ internalType: "uint256",
1269
+ name: "amount",
1270
+ type: "uint256",
1271
+ },
1272
+ ],
1273
+ name: "replenishFor",
1274
+ outputs: [],
1275
+ stateMutability: "nonpayable",
1276
+ type: "function",
1277
+ },
1278
+ {
1279
+ inputs: [
1280
+ {
1281
+ internalType: "address",
1282
+ name: "tokenAddress",
1283
+ type: "address",
1284
+ },
1285
+ {
1286
+ internalType: "address",
1287
+ name: "funder",
1288
+ type: "address",
1289
+ },
1290
+ {
1291
+ internalType: "address",
1292
+ name: "beneficiary",
1293
+ type: "address",
1294
+ },
1295
+ {
1296
+ internalType: "uint256",
1297
+ name: "amount",
1298
+ type: "uint256",
1299
+ },
1300
+ ],
1301
+ name: "replenishForByApp",
1302
+ outputs: [],
1303
+ stateMutability: "nonpayable",
1304
+ type: "function",
1305
+ },
1306
+ {
1307
+ inputs: [
1308
+ {
1309
+ internalType: "address",
1310
+ name: "tokenAddress",
1311
+ type: "address",
1312
+ },
1313
+ {
1314
+ internalType: "address",
1315
+ name: "depositOwner",
1316
+ type: "address",
1317
+ },
1318
+ {
1319
+ internalType: "uint256",
1320
+ name: "amount",
1321
+ type: "uint256",
1322
+ },
1323
+ ],
1324
+ name: "unlockDeposit",
1325
+ outputs: [],
1326
+ stateMutability: "nonpayable",
1327
+ type: "function",
1328
+ },
1329
+ {
1330
+ inputs: [
1331
+ {
1332
+ internalType: "address",
1333
+ name: "tokenAddress",
1334
+ type: "address",
1335
+ },
1336
+ {
1337
+ internalType: "uint256",
1338
+ name: "amount",
1339
+ type: "uint256",
1340
+ },
1341
+ ],
1342
+ name: "withdrawDeposit",
1343
+ outputs: [],
1344
+ stateMutability: "nonpayable",
1345
+ type: "function",
1346
+ },
1347
+ {
1348
+ inputs: [
1349
+ {
1350
+ internalType: "address",
1351
+ name: "tokenAddress",
1352
+ type: "address",
1353
+ },
1354
+ ],
1355
+ name: "withdrawProfit",
1356
+ outputs: [],
1357
+ stateMutability: "nonpayable",
1358
+ type: "function",
1359
+ },
1360
+ {
1361
+ inputs: [
1362
+ {
1363
+ internalType: "uint8",
1364
+ name: "bits",
1365
+ type: "uint8",
1366
+ },
1367
+ {
1368
+ internalType: "uint256",
1369
+ name: "value",
1370
+ type: "uint256",
1371
+ },
1372
+ ],
1373
+ name: "SafeCastOverflowedUintDowncast",
1374
+ type: "error",
1375
+ },
1376
+ {
1377
+ inputs: [
1378
+ {
1379
+ internalType: "address",
1380
+ name: "token",
1381
+ type: "address",
1382
+ },
1383
+ ],
1384
+ name: "SafeERC20FailedOperation",
1385
+ type: "error",
1386
+ },
1387
+ {
1388
+ anonymous: false,
1389
+ inputs: [
1390
+ {
1391
+ indexed: true,
1392
+ internalType: "uint256",
1393
+ name: "valueOfferId",
1394
+ type: "uint256",
1395
+ },
1396
+ {
1397
+ indexed: true,
1398
+ internalType: "address",
1399
+ name: "beneficiary",
1400
+ type: "address",
1401
+ },
1402
+ ],
1403
+ name: "SetBeneficiary",
1404
+ type: "event",
1405
+ },
1406
+ {
1407
+ inputs: [
1408
+ {
1409
+ internalType: "address",
1410
+ name: "token",
1411
+ type: "address",
1412
+ },
1413
+ {
1414
+ internalType: "uint256",
1415
+ name: "amount",
1416
+ type: "uint256",
1417
+ },
1418
+ ],
1419
+ name: "addReward",
1420
+ outputs: [],
1421
+ stateMutability: "nonpayable",
1422
+ type: "function",
1423
+ },
1424
+ {
1425
+ inputs: [
1426
+ {
1427
+ internalType: "address",
1428
+ name: "rewardToken",
1429
+ type: "address",
1430
+ },
1431
+ {
1432
+ internalType: "address",
1433
+ name: "recipient",
1434
+ type: "address",
1435
+ },
1436
+ {
1437
+ internalType: "uint256",
1438
+ name: "rewardAmount",
1439
+ type: "uint256",
1440
+ },
1441
+ ],
1442
+ name: "claimTokenToDeposit",
1443
+ outputs: [],
1444
+ stateMutability: "nonpayable",
1445
+ type: "function",
1446
+ },
1447
+ {
1448
+ inputs: [],
1449
+ name: "epochIndex",
1450
+ outputs: [
1451
+ {
1452
+ internalType: "uint256",
1453
+ name: "currentEpochIndex",
1454
+ type: "uint256",
1455
+ },
1456
+ ],
1457
+ stateMutability: "nonpayable",
1458
+ type: "function",
1459
+ },
1460
+ {
1461
+ inputs: [
1462
+ {
1463
+ internalType: "uint256",
1464
+ name: "epochIndexValue",
1465
+ type: "uint256",
1466
+ },
1467
+ ],
1468
+ name: "epochInfo",
1469
+ outputs: [
1470
+ {
1471
+ internalType: "uint256",
1472
+ name: "startTime",
1473
+ type: "uint256",
1474
+ },
1475
+ {
1476
+ internalType: "uint256",
1477
+ name: "endTime",
1478
+ type: "uint256",
1479
+ },
1480
+ ],
1481
+ stateMutability: "view",
1482
+ type: "function",
1483
+ },
1484
+ {
1485
+ inputs: [
1486
+ {
1487
+ internalType: "uint256",
1488
+ name: "epochIndexValue",
1489
+ type: "uint256",
1490
+ },
1491
+ ],
1492
+ name: "getEpoch",
1493
+ outputs: [
1494
+ {
1495
+ components: [
1496
+ {
1497
+ internalType: "uint256",
1498
+ name: "teeReward",
1499
+ type: "uint256",
1500
+ },
1501
+ {
1502
+ internalType: "uint256",
1503
+ name: "epochBenchmarkCost",
1504
+ type: "uint256",
1505
+ },
1506
+ {
1507
+ components: [
1508
+ {
1509
+ internalType: "uint256",
1510
+ name: "ordersCreated",
1511
+ type: "uint256",
1512
+ },
1513
+ {
1514
+ internalType: "uint256",
1515
+ name: "ordersMarkAvg",
1516
+ type: "uint256",
1517
+ },
1518
+ {
1519
+ internalType: "uint256",
1520
+ name: "ordersLength",
1521
+ type: "uint256",
1522
+ },
1523
+ {
1524
+ internalType: "uint256",
1525
+ name: "ordersPrice",
1526
+ type: "uint256",
1527
+ },
1528
+ ],
1529
+ internalType: "struct ValueRewardParams",
1530
+ name: "valueRewardParams",
1531
+ type: "tuple",
1532
+ },
1533
+ {
1534
+ internalType: "uint64",
1535
+ name: "startTime",
1536
+ type: "uint64",
1537
+ },
1538
+ {
1539
+ internalType: "uint64",
1540
+ name: "endTime",
1541
+ type: "uint64",
1542
+ },
1543
+ {
1544
+ internalType: "bool",
1545
+ name: "updateTeeEpochReward",
1546
+ type: "bool",
1547
+ },
1548
+ {
1549
+ internalType: "bool",
1550
+ name: "workloadUpdatesCompleted",
1551
+ type: "bool",
1552
+ },
1553
+ {
1554
+ internalType: "bool",
1555
+ name: "valueUpdatesCompleted",
1556
+ type: "bool",
1557
+ },
1558
+ {
1559
+ internalType: "bool",
1560
+ name: "teeUpdatesCompleted",
1561
+ type: "bool",
1562
+ },
1563
+ {
1564
+ components: [
1565
+ {
1566
+ internalType: "uint128",
1567
+ name: "cpu",
1568
+ type: "uint128",
1569
+ },
1570
+ {
1571
+ internalType: "uint128",
1572
+ name: "ram",
1573
+ type: "uint128",
1574
+ },
1575
+ {
1576
+ internalType: "uint128",
1577
+ name: "gpu",
1578
+ type: "uint128",
1579
+ },
1580
+ {
1581
+ internalType: "uint128",
1582
+ name: "disk",
1583
+ type: "uint128",
1584
+ },
1585
+ {
1586
+ internalType: "uint128",
1587
+ name: "network",
1588
+ type: "uint128",
1589
+ },
1590
+ ],
1591
+ internalType: "struct BenchmarkPrices",
1592
+ name: "benchmarkPrices",
1593
+ type: "tuple",
1594
+ },
1595
+ {
1596
+ internalType: "uint256",
1597
+ name: "totalUsdtRewardAmount",
1598
+ type: "uint256",
1599
+ },
1600
+ {
1601
+ internalType: "uint256",
1602
+ name: "workloadRewards",
1603
+ type: "uint256",
1604
+ },
1605
+ {
1606
+ internalType: "uint256",
1607
+ name: "valueReward",
1608
+ type: "uint256",
1609
+ },
1610
+ {
1611
+ internalType: "bytes32",
1612
+ name: "valueMerkleRoot",
1613
+ type: "bytes32",
1614
+ },
1615
+ {
1616
+ internalType: "bytes32",
1617
+ name: "teeMerkleRoot",
1618
+ type: "bytes32",
1619
+ },
1620
+ ],
1621
+ internalType: "struct Epoch",
1622
+ name: "",
1623
+ type: "tuple",
1624
+ },
1625
+ ],
1626
+ stateMutability: "view",
1627
+ type: "function",
1628
+ },
1629
+ {
1630
+ inputs: [],
1631
+ name: "getLastEpochIndex",
1632
+ outputs: [
1633
+ {
1634
+ internalType: "uint256",
1635
+ name: "",
1636
+ type: "uint256",
1637
+ },
1638
+ ],
1639
+ stateMutability: "view",
1640
+ type: "function",
1641
+ },
1642
+ {
1643
+ inputs: [
1644
+ {
1645
+ internalType: "address",
1646
+ name: "token",
1647
+ type: "address",
1648
+ },
1649
+ ],
1650
+ name: "getRewardAccounting",
1651
+ outputs: [
1652
+ {
1653
+ components: [
1654
+ {
1655
+ internalType: "uint256",
1656
+ name: "debtRewardAmount",
1657
+ type: "uint256",
1658
+ },
1659
+ {
1660
+ internalType: "uint256",
1661
+ name: "claimedAmount",
1662
+ type: "uint256",
1663
+ },
1664
+ {
1665
+ internalType: "uint256",
1666
+ name: "addedAmount",
1667
+ type: "uint256",
1668
+ },
1669
+ ],
1670
+ internalType: "struct EpochRewardsStorageAccessor.RewardAccounting",
1671
+ name: "",
1672
+ type: "tuple",
1673
+ },
1674
+ ],
1675
+ stateMutability: "view",
1676
+ type: "function",
1677
+ },
1678
+ {
1679
+ inputs: [],
1680
+ name: "initializeFirstEpoch",
1681
+ outputs: [],
1682
+ stateMutability: "nonpayable",
1683
+ type: "function",
1684
+ },
1685
+ {
1686
+ inputs: [
1687
+ {
1688
+ internalType: "uint256",
1689
+ name: "epochIndexValue",
1690
+ type: "uint256",
1691
+ },
1692
+ ],
1693
+ name: "updateEpoch",
1694
+ outputs: [],
1695
+ stateMutability: "nonpayable",
1696
+ type: "function",
1697
+ },
1698
+ {
1699
+ inputs: [
1700
+ {
1701
+ internalType: "address",
1702
+ name: "token",
1703
+ type: "address",
1704
+ },
1705
+ ],
1706
+ name: "SafeERC20FailedOperation",
1707
+ type: "error",
1708
+ },
1709
+ {
1710
+ anonymous: false,
1711
+ inputs: [
1712
+ {
1713
+ indexed: false,
1714
+ internalType: "bool",
1715
+ name: "isLocked",
1716
+ type: "bool",
1717
+ },
1718
+ ],
1719
+ name: "StorageLocked",
1720
+ type: "event",
1721
+ },
1722
+ {
1723
+ anonymous: false,
1724
+ inputs: [
1725
+ {
1726
+ indexed: true,
1727
+ internalType: "address",
1728
+ name: "oldToken",
1729
+ type: "address",
1730
+ },
1731
+ {
1732
+ indexed: true,
1733
+ internalType: "address",
1734
+ name: "token",
1735
+ type: "address",
1736
+ },
1737
+ ],
1738
+ name: "TeeRewardTokenChanged",
1739
+ type: "event",
1740
+ },
1741
+ {
1742
+ anonymous: false,
1743
+ inputs: [
1744
+ {
1745
+ indexed: true,
1746
+ internalType: "bool",
1747
+ name: "value",
1748
+ type: "bool",
1749
+ },
1750
+ ],
1751
+ name: "TeeRewardsEnabled",
1752
+ type: "event",
1753
+ },
1754
+ {
1755
+ anonymous: false,
1756
+ inputs: [
1757
+ {
1758
+ indexed: true,
1759
+ internalType: "address",
1760
+ name: "tokenAddress",
1761
+ type: "address",
1762
+ },
1763
+ {
1764
+ indexed: false,
1765
+ internalType: "uint32",
1766
+ name: "protocolCommissionPercent",
1767
+ type: "uint32",
1768
+ },
1769
+ {
1770
+ indexed: true,
1771
+ internalType: "bool",
1772
+ name: "isPrimary",
1773
+ type: "bool",
1774
+ },
1775
+ {
1776
+ indexed: true,
1777
+ internalType: "bool",
1778
+ name: "isNew",
1779
+ type: "bool",
1780
+ },
1781
+ ],
1782
+ name: "TokenInfoUpdated",
1783
+ type: "event",
1784
+ },
1785
+ {
1786
+ anonymous: false,
1787
+ inputs: [
1788
+ {
1789
+ indexed: true,
1790
+ internalType: "address",
1791
+ name: "tokenAddress",
1792
+ type: "address",
1793
+ },
1794
+ ],
1795
+ name: "TokenRemoved",
1796
+ type: "event",
1797
+ },
1798
+ {
1799
+ anonymous: false,
1800
+ inputs: [
1801
+ {
1802
+ indexed: true,
1803
+ internalType: "address",
1804
+ name: "oldToken",
1805
+ type: "address",
1806
+ },
1807
+ {
1808
+ indexed: true,
1809
+ internalType: "address",
1810
+ name: "token",
1811
+ type: "address",
1812
+ },
1813
+ ],
1814
+ name: "UsdtTokenChanged",
1815
+ type: "event",
1816
+ },
1817
+ {
1818
+ anonymous: false,
1819
+ inputs: [
1820
+ {
1821
+ indexed: true,
1822
+ internalType: "bool",
1823
+ name: "value",
1824
+ type: "bool",
1825
+ },
1826
+ ],
1827
+ name: "ValueRewardsEnabled",
1828
+ type: "event",
1829
+ },
1830
+ {
1831
+ anonymous: false,
1832
+ inputs: [
1833
+ {
1834
+ indexed: true,
1835
+ internalType: "bool",
1836
+ name: "value",
1837
+ type: "bool",
1838
+ },
1839
+ ],
1840
+ name: "WorkloadsRewardsEnabled",
1841
+ type: "event",
1842
+ },
1843
+ {
1844
+ inputs: [],
1845
+ name: "getBenchmarkPrices",
1846
+ outputs: [
1847
+ {
1848
+ components: [
1849
+ {
1850
+ internalType: "uint128",
1851
+ name: "cpu",
1852
+ type: "uint128",
1853
+ },
1854
+ {
1855
+ internalType: "uint128",
1856
+ name: "ram",
1857
+ type: "uint128",
1858
+ },
1859
+ {
1860
+ internalType: "uint128",
1861
+ name: "gpu",
1862
+ type: "uint128",
1863
+ },
1864
+ {
1865
+ internalType: "uint128",
1866
+ name: "disk",
1867
+ type: "uint128",
1868
+ },
1869
+ {
1870
+ internalType: "uint128",
1871
+ name: "network",
1872
+ type: "uint128",
1873
+ },
1874
+ ],
1875
+ internalType: "struct BenchmarkPrices",
1876
+ name: "",
1877
+ type: "tuple",
1878
+ },
1879
+ ],
1880
+ stateMutability: "view",
1881
+ type: "function",
1882
+ },
1883
+ {
1884
+ inputs: [
1885
+ {
1886
+ internalType: "enum ParamName",
1887
+ name: "name",
1888
+ type: "uint8",
1889
+ },
1890
+ ],
1891
+ name: "getConfigParam",
1892
+ outputs: [
1893
+ {
1894
+ internalType: "uint256",
1895
+ name: "",
1896
+ type: "uint256",
1897
+ },
1898
+ ],
1899
+ stateMutability: "view",
1900
+ type: "function",
1901
+ },
1902
+ {
1903
+ inputs: [
1904
+ {
1905
+ internalType: "address",
1906
+ name: "tokenAddress",
1907
+ type: "address",
1908
+ },
1909
+ ],
1910
+ name: "getOrderTokenInfo",
1911
+ outputs: [
1912
+ {
1913
+ components: [
1914
+ {
1915
+ internalType: "address",
1916
+ name: "tokenAddress",
1917
+ type: "address",
1918
+ },
1919
+ {
1920
+ internalType: "uint32",
1921
+ name: "protocolCommissionPercent",
1922
+ type: "uint32",
1923
+ },
1924
+ ],
1925
+ internalType: "struct OrderTokenInfo",
1926
+ name: "",
1927
+ type: "tuple",
1928
+ },
1929
+ ],
1930
+ stateMutability: "view",
1931
+ type: "function",
1932
+ },
1933
+ {
1934
+ inputs: [
1935
+ {
1936
+ internalType: "address",
1937
+ name: "tokenAddress",
1938
+ type: "address",
1939
+ },
1940
+ ],
1941
+ name: "getOrderTokenInfoWithoutCheck",
1942
+ outputs: [
1943
+ {
1944
+ components: [
1945
+ {
1946
+ internalType: "address",
1947
+ name: "tokenAddress",
1948
+ type: "address",
1949
+ },
1950
+ {
1951
+ internalType: "uint32",
1952
+ name: "protocolCommissionPercent",
1953
+ type: "uint32",
1954
+ },
1955
+ ],
1956
+ internalType: "struct OrderTokenInfo",
1957
+ name: "",
1958
+ type: "tuple",
1959
+ },
1960
+ ],
1961
+ stateMutability: "view",
1962
+ type: "function",
1963
+ },
1964
+ {
1965
+ inputs: [],
1966
+ name: "getProtocolCommissionDenominator",
1967
+ outputs: [
1968
+ {
1969
+ internalType: "uint256",
1970
+ name: "",
1971
+ type: "uint256",
1972
+ },
1973
+ ],
1974
+ stateMutability: "pure",
1975
+ type: "function",
1976
+ },
1977
+ {
1978
+ inputs: [],
1979
+ name: "getProtocolIncomeDistribution",
1980
+ outputs: [
1981
+ {
1982
+ components: [
1983
+ {
1984
+ internalType: "address",
1985
+ name: "recipient",
1986
+ type: "address",
1987
+ },
1988
+ {
1989
+ internalType: "uint16",
1990
+ name: "percent",
1991
+ type: "uint16",
1992
+ },
1993
+ ],
1994
+ internalType: "struct ProtocolIncomeRecipient[]",
1995
+ name: "",
1996
+ type: "tuple[]",
1997
+ },
1998
+ ],
1999
+ stateMutability: "view",
2000
+ type: "function",
2001
+ },
2002
+ {
2003
+ inputs: [],
2004
+ name: "getProtocolTotalIncomeDistributionRatio",
2005
+ outputs: [
2006
+ {
2007
+ internalType: "uint256",
2008
+ name: "",
2009
+ type: "uint256",
2010
+ },
2011
+ ],
2012
+ stateMutability: "pure",
2013
+ type: "function",
2014
+ },
2015
+ {
2016
+ inputs: [],
2017
+ name: "getRewardTokenAddress",
2018
+ outputs: [
2019
+ {
2020
+ internalType: "address",
2021
+ name: "",
2022
+ type: "address",
2023
+ },
2024
+ ],
2025
+ stateMutability: "view",
2026
+ type: "function",
2027
+ },
2028
+ {
2029
+ inputs: [],
2030
+ name: "getTeeRewardPerEpoch",
2031
+ outputs: [
2032
+ {
2033
+ internalType: "uint256",
2034
+ name: "teeReward",
2035
+ type: "uint256",
2036
+ },
2037
+ ],
2038
+ stateMutability: "view",
2039
+ type: "function",
2040
+ },
2041
+ {
2042
+ inputs: [
2043
+ {
2044
+ internalType: "address",
2045
+ name: "tokenAddress",
2046
+ type: "address",
2047
+ },
2048
+ ],
2049
+ name: "getToken",
2050
+ outputs: [
2051
+ {
2052
+ internalType: "contract IERC20",
2053
+ name: "",
2054
+ type: "address",
2055
+ },
2056
+ ],
2057
+ stateMutability: "view",
2058
+ type: "function",
2059
+ },
2060
+ {
2061
+ inputs: [
2062
+ {
2063
+ internalType: "address",
2064
+ name: "tokenAddress",
2065
+ type: "address",
2066
+ },
2067
+ ],
2068
+ name: "getTokenStorageRequestFee",
2069
+ outputs: [
2070
+ {
2071
+ internalType: "uint256",
2072
+ name: "",
2073
+ type: "uint256",
2074
+ },
2075
+ ],
2076
+ stateMutability: "view",
2077
+ type: "function",
2078
+ },
2079
+ {
2080
+ inputs: [],
2081
+ name: "getTokens",
2082
+ outputs: [
2083
+ {
2084
+ components: [
2085
+ {
2086
+ internalType: "uint256",
2087
+ name: "index",
2088
+ type: "uint256",
2089
+ },
2090
+ {
2091
+ components: [
2092
+ {
2093
+ internalType: "bool",
2094
+ name: "isPrimary",
2095
+ type: "bool",
2096
+ },
2097
+ {
2098
+ internalType: "address",
2099
+ name: "tokenAddress",
2100
+ type: "address",
2101
+ },
2102
+ {
2103
+ internalType: "uint32",
2104
+ name: "protocolCommissionPercent",
2105
+ type: "uint32",
2106
+ },
2107
+ {
2108
+ internalType: "bool",
2109
+ name: "considerInProviderReward",
2110
+ type: "bool",
2111
+ },
2112
+ {
2113
+ internalType: "uint256",
2114
+ name: "storageRequestFee",
2115
+ type: "uint256",
2116
+ },
2117
+ ],
2118
+ internalType: "struct TokenInfo",
2119
+ name: "tokenInfo",
2120
+ type: "tuple",
2121
+ },
2122
+ ],
2123
+ internalType: "struct SuperproStorageAccessor.TokenInfoWithServiceParams[]",
2124
+ name: "result",
2125
+ type: "tuple[]",
2126
+ },
2127
+ ],
2128
+ stateMutability: "view",
2129
+ type: "function",
2130
+ },
2131
+ {
2132
+ inputs: [],
2133
+ name: "getValueRewardPerEpoch",
2134
+ outputs: [
2135
+ {
2136
+ internalType: "uint256",
2137
+ name: "valueReward",
2138
+ type: "uint256",
2139
+ },
2140
+ ],
2141
+ stateMutability: "view",
2142
+ type: "function",
2143
+ },
2144
+ {
2145
+ inputs: [
2146
+ {
2147
+ internalType: "address",
2148
+ name: "tokenAddress",
2149
+ type: "address",
2150
+ },
2151
+ ],
2152
+ name: "isConsideredInProviderReward",
2153
+ outputs: [
2154
+ {
2155
+ internalType: "bool",
2156
+ name: "",
2157
+ type: "bool",
2158
+ },
2159
+ ],
2160
+ stateMutability: "view",
2161
+ type: "function",
2162
+ },
2163
+ {
2164
+ inputs: [
2165
+ {
2166
+ internalType: "address",
2167
+ name: "tokenAddress",
2168
+ type: "address",
2169
+ },
2170
+ ],
2171
+ name: "isPrimaryToken",
2172
+ outputs: [
2173
+ {
2174
+ internalType: "bool",
2175
+ name: "",
2176
+ type: "bool",
2177
+ },
2178
+ ],
2179
+ stateMutability: "view",
2180
+ type: "function",
2181
+ },
2182
+ {
2183
+ inputs: [
2184
+ {
2185
+ internalType: "address",
2186
+ name: "tokenAddress",
2187
+ type: "address",
2188
+ },
2189
+ ],
2190
+ name: "isTokenExists",
2191
+ outputs: [
2192
+ {
2193
+ internalType: "bool",
2194
+ name: "",
2195
+ type: "bool",
2196
+ },
2197
+ ],
2198
+ stateMutability: "view",
2199
+ type: "function",
2200
+ },
2201
+ {
2202
+ inputs: [
2203
+ {
2204
+ internalType: "address[]",
2205
+ name: "tokensAddresses",
2206
+ type: "address[]",
2207
+ },
2208
+ ],
2209
+ name: "removeTokens",
2210
+ outputs: [],
2211
+ stateMutability: "nonpayable",
2212
+ type: "function",
2213
+ },
2214
+ {
2215
+ inputs: [
2216
+ {
2217
+ components: [
2218
+ {
2219
+ internalType: "uint128",
2220
+ name: "cpu",
2221
+ type: "uint128",
2222
+ },
2223
+ {
2224
+ internalType: "uint128",
2225
+ name: "ram",
2226
+ type: "uint128",
2227
+ },
2228
+ {
2229
+ internalType: "uint128",
2230
+ name: "gpu",
2231
+ type: "uint128",
2232
+ },
2233
+ {
2234
+ internalType: "uint128",
2235
+ name: "disk",
2236
+ type: "uint128",
2237
+ },
2238
+ {
2239
+ internalType: "uint128",
2240
+ name: "network",
2241
+ type: "uint128",
2242
+ },
2243
+ ],
2244
+ internalType: "struct BenchmarkPrices",
2245
+ name: "prices",
2246
+ type: "tuple",
2247
+ },
2248
+ ],
2249
+ name: "setBenchmarkPrices",
2250
+ outputs: [],
2251
+ stateMutability: "nonpayable",
2252
+ type: "function",
2253
+ },
2254
+ {
2255
+ inputs: [
2256
+ {
2257
+ internalType: "enum ParamName",
2258
+ name: "name",
2259
+ type: "uint8",
2260
+ },
2261
+ {
2262
+ internalType: "uint256",
2263
+ name: "value",
2264
+ type: "uint256",
2265
+ },
2266
+ ],
2267
+ name: "setConfigParam",
2268
+ outputs: [],
2269
+ stateMutability: "nonpayable",
2270
+ type: "function",
2271
+ },
2272
+ {
2273
+ inputs: [
2274
+ {
2275
+ components: [
2276
+ {
2277
+ internalType: "address",
2278
+ name: "rewardToken",
2279
+ type: "address",
2280
+ },
2281
+ {
2282
+ internalType: "uint256",
2283
+ name: "orderMinimumDeposit",
2284
+ type: "uint256",
2285
+ },
2286
+ {
2287
+ internalType: "uint256",
2288
+ name: "profitWithdrawDelaySeconds",
2289
+ type: "uint256",
2290
+ },
2291
+ {
2292
+ internalType: "uint256",
2293
+ name: "minSecurityDeposit",
2294
+ type: "uint256",
2295
+ },
2296
+ {
2297
+ internalType: "uint256",
2298
+ name: "stopDelaySeconds",
2299
+ type: "uint256",
2300
+ },
2301
+ {
2302
+ internalType: "uint256",
2303
+ name: "teeOfferSecurityDeposit",
2304
+ type: "uint256",
2305
+ },
2306
+ {
2307
+ internalType: "uint256",
2308
+ name: "offerSecurityDeposit",
2309
+ type: "uint256",
2310
+ },
2311
+ {
2312
+ internalType: "uint256",
2313
+ name: "epochLengthSeconds",
2314
+ type: "uint256",
2315
+ },
2316
+ ],
2317
+ internalType: "struct SuperproParams",
2318
+ name: "params",
2319
+ type: "tuple",
2320
+ },
2321
+ ],
2322
+ name: "setConfigParams",
2323
+ outputs: [],
2324
+ stateMutability: "nonpayable",
2325
+ type: "function",
2326
+ },
2327
+ {
2328
+ inputs: [
2329
+ {
2330
+ internalType: "bool",
2331
+ name: "isLocked",
2332
+ type: "bool",
2333
+ },
2334
+ ],
2335
+ name: "setLockData",
2336
+ outputs: [],
2337
+ stateMutability: "nonpayable",
2338
+ type: "function",
2339
+ },
2340
+ {
2341
+ inputs: [
2342
+ {
2343
+ components: [
2344
+ {
2345
+ internalType: "address",
2346
+ name: "recipient",
2347
+ type: "address",
2348
+ },
2349
+ {
2350
+ internalType: "uint16",
2351
+ name: "percent",
2352
+ type: "uint16",
2353
+ },
2354
+ ],
2355
+ internalType: "struct ProtocolIncomeRecipient[]",
2356
+ name: "recipients",
2357
+ type: "tuple[]",
2358
+ },
2359
+ ],
2360
+ name: "setProtocolIncomeDistribution",
2361
+ outputs: [],
2362
+ stateMutability: "nonpayable",
2363
+ type: "function",
2364
+ },
2365
+ {
2366
+ inputs: [
2367
+ {
2368
+ internalType: "address",
2369
+ name: "token",
2370
+ type: "address",
2371
+ },
2372
+ ],
2373
+ name: "setTeeRewardToken",
2374
+ outputs: [],
2375
+ stateMutability: "nonpayable",
2376
+ type: "function",
2377
+ },
2378
+ {
2379
+ inputs: [
2380
+ {
2381
+ components: [
2382
+ {
2383
+ internalType: "bool",
2384
+ name: "isPrimary",
2385
+ type: "bool",
2386
+ },
2387
+ {
2388
+ internalType: "address",
2389
+ name: "tokenAddress",
2390
+ type: "address",
2391
+ },
2392
+ {
2393
+ internalType: "uint32",
2394
+ name: "protocolCommissionPercent",
2395
+ type: "uint32",
2396
+ },
2397
+ {
2398
+ internalType: "bool",
2399
+ name: "considerInProviderReward",
2400
+ type: "bool",
2401
+ },
2402
+ {
2403
+ internalType: "uint256",
2404
+ name: "storageRequestFee",
2405
+ type: "uint256",
2406
+ },
2407
+ ],
2408
+ internalType: "struct TokenInfo[]",
2409
+ name: "tokens",
2410
+ type: "tuple[]",
2411
+ },
2412
+ ],
2413
+ name: "setTokenInfos",
2414
+ outputs: [],
2415
+ stateMutability: "nonpayable",
2416
+ type: "function",
2417
+ },
2418
+ {
2419
+ inputs: [
2420
+ {
2421
+ internalType: "address",
2422
+ name: "token",
2423
+ type: "address",
2424
+ },
2425
+ ],
2426
+ name: "setUsdt",
2427
+ outputs: [],
2428
+ stateMutability: "nonpayable",
2429
+ type: "function",
2430
+ },
2431
+ {
2432
+ inputs: [
2433
+ {
2434
+ internalType: "bool",
2435
+ name: "value",
2436
+ type: "bool",
2437
+ },
2438
+ ],
2439
+ name: "setupTeeRewards",
2440
+ outputs: [],
2441
+ stateMutability: "nonpayable",
2442
+ type: "function",
2443
+ },
2444
+ {
2445
+ inputs: [
2446
+ {
2447
+ internalType: "bool",
2448
+ name: "value",
2449
+ type: "bool",
2450
+ },
2451
+ ],
2452
+ name: "setupValueRewards",
2453
+ outputs: [],
2454
+ stateMutability: "nonpayable",
2455
+ type: "function",
2456
+ },
2457
+ {
2458
+ inputs: [
2459
+ {
2460
+ internalType: "bool",
2461
+ name: "value",
2462
+ type: "bool",
2463
+ },
2464
+ ],
2465
+ name: "setupWorkloadsRewards",
2466
+ outputs: [],
2467
+ stateMutability: "nonpayable",
2468
+ type: "function",
2469
+ },
2470
+ {
2471
+ inputs: [],
2472
+ name: "usdt",
2473
+ outputs: [
2474
+ {
2475
+ internalType: "address",
2476
+ name: "",
2477
+ type: "address",
2478
+ },
2479
+ ],
2480
+ stateMutability: "view",
2481
+ type: "function",
2482
+ },
2483
+ {
2484
+ inputs: [],
2485
+ name: "workloadsRewardsEnabled",
2486
+ outputs: [
2487
+ {
2488
+ internalType: "bool",
2489
+ name: "",
2490
+ type: "bool",
2491
+ },
2492
+ ],
2493
+ stateMutability: "view",
2494
+ type: "function",
2495
+ },
2496
+ {
2497
+ anonymous: false,
2498
+ inputs: [
2499
+ {
2500
+ indexed: true,
2501
+ internalType: "address",
2502
+ name: "swarmCandidate",
2503
+ type: "address",
2504
+ },
2505
+ {
2506
+ indexed: true,
2507
+ internalType: "uint256",
2508
+ name: "candidateIndex",
2509
+ type: "uint256",
2510
+ },
2511
+ ],
2512
+ name: "AddSwarmCandidate",
2513
+ type: "event",
2514
+ },
2515
+ {
2516
+ anonymous: false,
2517
+ inputs: [
2518
+ {
2519
+ indexed: true,
2520
+ internalType: "address",
2521
+ name: "revokedSwarmAddress",
2522
+ type: "address",
2523
+ },
2524
+ ],
2525
+ name: "RevokeSwarmAddress",
2526
+ type: "event",
2527
+ },
2528
+ {
2529
+ anonymous: false,
2530
+ inputs: [
2531
+ {
2532
+ indexed: true,
2533
+ internalType: "address",
2534
+ name: "previousSwarmAddr",
2535
+ type: "address",
2536
+ },
2537
+ {
2538
+ indexed: true,
2539
+ internalType: "address",
2540
+ name: "newSwarmAddr",
2541
+ type: "address",
2542
+ },
2543
+ {
2544
+ indexed: true,
2545
+ internalType: "uint256",
2546
+ name: "usedIndex",
2547
+ type: "uint256",
2548
+ },
2549
+ ],
2550
+ name: "SwarmAccessTransferred",
2551
+ type: "event",
2552
+ },
2553
+ {
2554
+ inputs: [
2555
+ {
2556
+ components: [
2557
+ {
2558
+ components: [
2559
+ {
2560
+ internalType: "bytes[]",
2561
+ name: "nonSerializedParts",
2562
+ type: "bytes[]",
2563
+ },
2564
+ {
2565
+ internalType: "bytes",
2566
+ name: "expirationDate",
2567
+ type: "bytes",
2568
+ },
2569
+ {
2570
+ internalType: "bytes",
2571
+ name: "ca",
2572
+ type: "bytes",
2573
+ },
2574
+ {
2575
+ internalType: "bytes32",
2576
+ name: "userData",
2577
+ type: "bytes32",
2578
+ },
2579
+ {
2580
+ internalType: "bytes",
2581
+ name: "publicKey",
2582
+ type: "bytes",
2583
+ },
2584
+ {
2585
+ internalType: "bytes",
2586
+ name: "serialNumber",
2587
+ type: "bytes",
2588
+ },
2589
+ {
2590
+ internalType: "bytes32",
2591
+ name: "mrEnclave",
2592
+ type: "bytes32",
2593
+ },
2594
+ {
2595
+ internalType: "bytes32",
2596
+ name: "mrSigner",
2597
+ type: "bytes32",
2598
+ },
2599
+ {
2600
+ internalType: "bytes",
2601
+ name: "signature",
2602
+ type: "bytes",
2603
+ },
2604
+ ],
2605
+ internalType: "struct ChunkedX509Cert[]",
2606
+ name: "certsChain",
2607
+ type: "tuple[]",
2608
+ },
2609
+ {
2610
+ internalType: "uint256",
2611
+ name: "rootCertId",
2612
+ type: "uint256",
2613
+ },
2614
+ ],
2615
+ internalType: "struct SwarmCandidatesData",
2616
+ name: "swarmCandidatesData",
2617
+ type: "tuple",
2618
+ },
2619
+ {
2620
+ internalType: "bytes",
2621
+ name: "signature",
2622
+ type: "bytes",
2623
+ },
2624
+ ],
2625
+ name: "addSwarmCandidate",
2626
+ outputs: [],
2627
+ stateMutability: "nonpayable",
2628
+ type: "function",
2629
+ },
2630
+ {
2631
+ inputs: [],
2632
+ name: "getSwarmAddress",
2633
+ outputs: [
2634
+ {
2635
+ internalType: "address",
2636
+ name: "",
2637
+ type: "address",
2638
+ },
2639
+ ],
2640
+ stateMutability: "view",
2641
+ type: "function",
2642
+ },
2643
+ {
2644
+ inputs: [
2645
+ {
2646
+ internalType: "uint256",
2647
+ name: "from",
2648
+ type: "uint256",
2649
+ },
2650
+ {
2651
+ internalType: "uint256",
2652
+ name: "to",
2653
+ type: "uint256",
2654
+ },
2655
+ ],
2656
+ name: "getSwarmCandidateDataRange",
2657
+ outputs: [
2658
+ {
2659
+ components: [
2660
+ {
2661
+ components: [
2662
+ {
2663
+ components: [
2664
+ {
2665
+ internalType: "bytes[]",
2666
+ name: "nonSerializedParts",
2667
+ type: "bytes[]",
2668
+ },
2669
+ {
2670
+ internalType: "bytes",
2671
+ name: "expirationDate",
2672
+ type: "bytes",
2673
+ },
2674
+ {
2675
+ internalType: "bytes",
2676
+ name: "ca",
2677
+ type: "bytes",
2678
+ },
2679
+ {
2680
+ internalType: "bytes32",
2681
+ name: "userData",
2682
+ type: "bytes32",
2683
+ },
2684
+ {
2685
+ internalType: "bytes",
2686
+ name: "publicKey",
2687
+ type: "bytes",
2688
+ },
2689
+ {
2690
+ internalType: "bytes",
2691
+ name: "serialNumber",
2692
+ type: "bytes",
2693
+ },
2694
+ {
2695
+ internalType: "bytes32",
2696
+ name: "mrEnclave",
2697
+ type: "bytes32",
2698
+ },
2699
+ {
2700
+ internalType: "bytes32",
2701
+ name: "mrSigner",
2702
+ type: "bytes32",
2703
+ },
2704
+ {
2705
+ internalType: "bytes",
2706
+ name: "signature",
2707
+ type: "bytes",
2708
+ },
2709
+ ],
2710
+ internalType: "struct ChunkedX509Cert[]",
2711
+ name: "certsChain",
2712
+ type: "tuple[]",
2713
+ },
2714
+ {
2715
+ internalType: "uint256",
2716
+ name: "rootCertId",
2717
+ type: "uint256",
2718
+ },
2719
+ ],
2720
+ internalType: "struct SwarmCandidatesData",
2721
+ name: "data",
2722
+ type: "tuple",
2723
+ },
2724
+ {
2725
+ internalType: "address",
2726
+ name: "swarmCandidate",
2727
+ type: "address",
2728
+ },
2729
+ {
2730
+ internalType: "uint256",
2731
+ name: "swarmCandidateIndex",
2732
+ type: "uint256",
2733
+ },
2734
+ ],
2735
+ internalType: "struct SwarmAccessControl.SwarmCandidatesDataWithAddress[]",
2736
+ name: "",
2737
+ type: "tuple[]",
2738
+ },
2739
+ ],
2740
+ stateMutability: "view",
2741
+ type: "function",
2742
+ },
2743
+ {
2744
+ inputs: [],
2745
+ name: "getSwarmCandidatesCount",
2746
+ outputs: [
2747
+ {
2748
+ internalType: "uint256",
2749
+ name: "",
2750
+ type: "uint256",
2751
+ },
2752
+ ],
2753
+ stateMutability: "view",
2754
+ type: "function",
2755
+ },
2756
+ {
2757
+ inputs: [],
2758
+ name: "revokeSwarmAddress",
2759
+ outputs: [],
2760
+ stateMutability: "nonpayable",
2761
+ type: "function",
2762
+ },
2763
+ {
2764
+ inputs: [
2765
+ {
2766
+ internalType: "uint256",
2767
+ name: "swarmCandidateIndex",
2768
+ type: "uint256",
2769
+ },
2770
+ ],
2771
+ name: "setSwarmAddress",
2772
+ outputs: [],
2773
+ stateMutability: "nonpayable",
2774
+ type: "function",
2775
+ },
2776
+ {
2777
+ anonymous: false,
2778
+ inputs: [
2779
+ {
2780
+ indexed: true,
2781
+ internalType: "uint256",
2782
+ name: "epochIndex",
2783
+ type: "uint256",
2784
+ },
2785
+ {
2786
+ indexed: true,
2787
+ internalType: "address",
2788
+ name: "beneficiary",
2789
+ type: "address",
2790
+ },
2791
+ {
2792
+ indexed: false,
2793
+ internalType: "uint256",
2794
+ name: "rewardAmount",
2795
+ type: "uint256",
2796
+ },
2797
+ {
2798
+ indexed: true,
2799
+ internalType: "address",
2800
+ name: "claimer",
2801
+ type: "address",
2802
+ },
2803
+ ],
2804
+ name: "TeeRewardsClaimed",
2805
+ type: "event",
2806
+ },
2807
+ {
2808
+ anonymous: false,
2809
+ inputs: [
2810
+ {
2811
+ indexed: true,
2812
+ internalType: "uint256",
2813
+ name: "epochIndex",
2814
+ type: "uint256",
2815
+ },
2816
+ {
2817
+ indexed: true,
2818
+ internalType: "bytes32",
2819
+ name: "merkleRoot",
2820
+ type: "bytes32",
2821
+ },
2822
+ ],
2823
+ name: "UpdateTeeProviderRewards",
2824
+ type: "event",
2825
+ },
2826
+ {
2827
+ inputs: [
2828
+ {
2829
+ internalType: "address",
2830
+ name: "beneficiary",
2831
+ type: "address",
2832
+ },
2833
+ {
2834
+ components: [
2835
+ {
2836
+ internalType: "uint256",
2837
+ name: "epochIndex",
2838
+ type: "uint256",
2839
+ },
2840
+ {
2841
+ components: [
2842
+ {
2843
+ internalType: "uint64",
2844
+ name: "cpuSize",
2845
+ type: "uint64",
2846
+ },
2847
+ {
2848
+ internalType: "uint64",
2849
+ name: "ramSize",
2850
+ type: "uint64",
2851
+ },
2852
+ {
2853
+ internalType: "uint64",
2854
+ name: "gpuSize",
2855
+ type: "uint64",
2856
+ },
2857
+ {
2858
+ internalType: "uint64",
2859
+ name: "diskSize",
2860
+ type: "uint64",
2861
+ },
2862
+ {
2863
+ internalType: "uint64",
2864
+ name: "networkSize",
2865
+ type: "uint64",
2866
+ },
2867
+ {
2868
+ internalType: "uint32",
2869
+ name: "cpuMark",
2870
+ type: "uint32",
2871
+ },
2872
+ {
2873
+ internalType: "uint32",
2874
+ name: "ramMark",
2875
+ type: "uint32",
2876
+ },
2877
+ {
2878
+ internalType: "uint32",
2879
+ name: "gpuMark",
2880
+ type: "uint32",
2881
+ },
2882
+ {
2883
+ internalType: "uint32",
2884
+ name: "diskMark",
2885
+ type: "uint32",
2886
+ },
2887
+ {
2888
+ internalType: "uint32",
2889
+ name: "networkMark",
2890
+ type: "uint32",
2891
+ },
2892
+ ],
2893
+ internalType: "struct Benchmark",
2894
+ name: "offerParams",
2895
+ type: "tuple",
2896
+ },
2897
+ {
2898
+ internalType: "bytes32",
2899
+ name: "swarmNonce",
2900
+ type: "bytes32",
2901
+ },
2902
+ {
2903
+ internalType: "bytes32[]",
2904
+ name: "merkleProofs",
2905
+ type: "bytes32[]",
2906
+ },
2907
+ ],
2908
+ internalType: "struct ClaimTeeRewardArgs[]",
2909
+ name: "args",
2910
+ type: "tuple[]",
2911
+ },
2912
+ ],
2913
+ name: "batchClaimTeeRewards",
2914
+ outputs: [],
2915
+ stateMutability: "nonpayable",
2916
+ type: "function",
2917
+ },
2918
+ {
2919
+ inputs: [
2920
+ {
2921
+ components: [
2922
+ {
2923
+ internalType: "uint128",
2924
+ name: "cpuMultiplier",
2925
+ type: "uint128",
2926
+ },
2927
+ {
2928
+ internalType: "uint128",
2929
+ name: "ramMultiplier",
2930
+ type: "uint128",
2931
+ },
2932
+ {
2933
+ internalType: "uint128",
2934
+ name: "gpuMultiplier",
2935
+ type: "uint128",
2936
+ },
2937
+ {
2938
+ internalType: "uint128",
2939
+ name: "diskMultiplier",
2940
+ type: "uint128",
2941
+ },
2942
+ {
2943
+ internalType: "uint128",
2944
+ name: "networkMultiplier",
2945
+ type: "uint128",
2946
+ },
2947
+ ],
2948
+ internalType: "struct BenchmarkPriceMultipliers",
2949
+ name: "inputEpochParams",
2950
+ type: "tuple",
2951
+ },
2952
+ {
2953
+ components: [
2954
+ {
2955
+ internalType: "uint64",
2956
+ name: "cpuSize",
2957
+ type: "uint64",
2958
+ },
2959
+ {
2960
+ internalType: "uint64",
2961
+ name: "ramSize",
2962
+ type: "uint64",
2963
+ },
2964
+ {
2965
+ internalType: "uint64",
2966
+ name: "gpuSize",
2967
+ type: "uint64",
2968
+ },
2969
+ {
2970
+ internalType: "uint64",
2971
+ name: "diskSize",
2972
+ type: "uint64",
2973
+ },
2974
+ {
2975
+ internalType: "uint64",
2976
+ name: "networkSize",
2977
+ type: "uint64",
2978
+ },
2979
+ {
2980
+ internalType: "uint32",
2981
+ name: "cpuMark",
2982
+ type: "uint32",
2983
+ },
2984
+ {
2985
+ internalType: "uint32",
2986
+ name: "ramMark",
2987
+ type: "uint32",
2988
+ },
2989
+ {
2990
+ internalType: "uint32",
2991
+ name: "gpuMark",
2992
+ type: "uint32",
2993
+ },
2994
+ {
2995
+ internalType: "uint32",
2996
+ name: "diskMark",
2997
+ type: "uint32",
2998
+ },
2999
+ {
3000
+ internalType: "uint32",
3001
+ name: "networkMark",
3002
+ type: "uint32",
3003
+ },
3004
+ ],
3005
+ internalType: "struct Benchmark[]",
3006
+ name: "benchmarks",
3007
+ type: "tuple[]",
3008
+ },
3009
+ ],
3010
+ name: "calculateTeeEpochParams",
3011
+ outputs: [
3012
+ {
3013
+ components: [
3014
+ {
3015
+ internalType: "uint128",
3016
+ name: "cpuMultiplier",
3017
+ type: "uint128",
3018
+ },
3019
+ {
3020
+ internalType: "uint128",
3021
+ name: "ramMultiplier",
3022
+ type: "uint128",
3023
+ },
3024
+ {
3025
+ internalType: "uint128",
3026
+ name: "gpuMultiplier",
3027
+ type: "uint128",
3028
+ },
3029
+ {
3030
+ internalType: "uint128",
3031
+ name: "diskMultiplier",
3032
+ type: "uint128",
3033
+ },
3034
+ {
3035
+ internalType: "uint128",
3036
+ name: "networkMultiplier",
3037
+ type: "uint128",
3038
+ },
3039
+ ],
3040
+ internalType: "struct BenchmarkPriceMultipliers",
3041
+ name: "outputEpochParams",
3042
+ type: "tuple",
3043
+ },
3044
+ ],
3045
+ stateMutability: "pure",
3046
+ type: "function",
3047
+ },
3048
+ {
3049
+ inputs: [
3050
+ {
3051
+ internalType: "address",
3052
+ name: "beneficiary",
3053
+ type: "address",
3054
+ },
3055
+ {
3056
+ components: [
3057
+ {
3058
+ internalType: "uint256",
3059
+ name: "epochIndex",
3060
+ type: "uint256",
3061
+ },
3062
+ {
3063
+ components: [
3064
+ {
3065
+ internalType: "uint64",
3066
+ name: "cpuSize",
3067
+ type: "uint64",
3068
+ },
3069
+ {
3070
+ internalType: "uint64",
3071
+ name: "ramSize",
3072
+ type: "uint64",
3073
+ },
3074
+ {
3075
+ internalType: "uint64",
3076
+ name: "gpuSize",
3077
+ type: "uint64",
3078
+ },
3079
+ {
3080
+ internalType: "uint64",
3081
+ name: "diskSize",
3082
+ type: "uint64",
3083
+ },
3084
+ {
3085
+ internalType: "uint64",
3086
+ name: "networkSize",
3087
+ type: "uint64",
3088
+ },
3089
+ {
3090
+ internalType: "uint32",
3091
+ name: "cpuMark",
3092
+ type: "uint32",
3093
+ },
3094
+ {
3095
+ internalType: "uint32",
3096
+ name: "ramMark",
3097
+ type: "uint32",
3098
+ },
3099
+ {
3100
+ internalType: "uint32",
3101
+ name: "gpuMark",
3102
+ type: "uint32",
3103
+ },
3104
+ {
3105
+ internalType: "uint32",
3106
+ name: "diskMark",
3107
+ type: "uint32",
3108
+ },
3109
+ {
3110
+ internalType: "uint32",
3111
+ name: "networkMark",
3112
+ type: "uint32",
3113
+ },
3114
+ ],
3115
+ internalType: "struct Benchmark",
3116
+ name: "offerParams",
3117
+ type: "tuple",
3118
+ },
3119
+ {
3120
+ internalType: "bytes32",
3121
+ name: "swarmNonce",
3122
+ type: "bytes32",
3123
+ },
3124
+ {
3125
+ internalType: "bytes32[]",
3126
+ name: "merkleProofs",
3127
+ type: "bytes32[]",
3128
+ },
3129
+ ],
3130
+ internalType: "struct ClaimTeeRewardArgs",
3131
+ name: "args",
3132
+ type: "tuple",
3133
+ },
3134
+ ],
3135
+ name: "claimTeeRewards",
3136
+ outputs: [],
3137
+ stateMutability: "nonpayable",
3138
+ type: "function",
3139
+ },
3140
+ {
3141
+ inputs: [
3142
+ {
3143
+ components: [
3144
+ {
3145
+ internalType: "uint256",
3146
+ name: "epochIndex",
3147
+ type: "uint256",
3148
+ },
3149
+ {
3150
+ components: [
3151
+ {
3152
+ internalType: "uint64",
3153
+ name: "cpuSize",
3154
+ type: "uint64",
3155
+ },
3156
+ {
3157
+ internalType: "uint64",
3158
+ name: "ramSize",
3159
+ type: "uint64",
3160
+ },
3161
+ {
3162
+ internalType: "uint64",
3163
+ name: "gpuSize",
3164
+ type: "uint64",
3165
+ },
3166
+ {
3167
+ internalType: "uint64",
3168
+ name: "diskSize",
3169
+ type: "uint64",
3170
+ },
3171
+ {
3172
+ internalType: "uint64",
3173
+ name: "networkSize",
3174
+ type: "uint64",
3175
+ },
3176
+ {
3177
+ internalType: "uint32",
3178
+ name: "cpuMark",
3179
+ type: "uint32",
3180
+ },
3181
+ {
3182
+ internalType: "uint32",
3183
+ name: "ramMark",
3184
+ type: "uint32",
3185
+ },
3186
+ {
3187
+ internalType: "uint32",
3188
+ name: "gpuMark",
3189
+ type: "uint32",
3190
+ },
3191
+ {
3192
+ internalType: "uint32",
3193
+ name: "diskMark",
3194
+ type: "uint32",
3195
+ },
3196
+ {
3197
+ internalType: "uint32",
3198
+ name: "networkMark",
3199
+ type: "uint32",
3200
+ },
3201
+ ],
3202
+ internalType: "struct Benchmark",
3203
+ name: "offerParams",
3204
+ type: "tuple",
3205
+ },
3206
+ {
3207
+ internalType: "bytes32",
3208
+ name: "swarmNonce",
3209
+ type: "bytes32",
3210
+ },
3211
+ {
3212
+ internalType: "bytes32[]",
3213
+ name: "merkleProofs",
3214
+ type: "bytes32[]",
3215
+ },
3216
+ ],
3217
+ internalType: "struct ClaimTeeRewardArgs",
3218
+ name: "args",
3219
+ type: "tuple",
3220
+ },
3221
+ ],
3222
+ name: "getTeeReward",
3223
+ outputs: [
3224
+ {
3225
+ internalType: "uint256",
3226
+ name: "reward",
3227
+ type: "uint256",
3228
+ },
3229
+ {
3230
+ internalType: "bytes32",
3231
+ name: "merkleLeaf",
3232
+ type: "bytes32",
3233
+ },
3234
+ ],
3235
+ stateMutability: "view",
3236
+ type: "function",
3237
+ },
3238
+ {
3239
+ inputs: [
3240
+ {
3241
+ internalType: "uint256",
3242
+ name: "epochIndex",
3243
+ type: "uint256",
3244
+ },
3245
+ {
3246
+ components: [
3247
+ {
3248
+ internalType: "uint64",
3249
+ name: "cpuSize",
3250
+ type: "uint64",
3251
+ },
3252
+ {
3253
+ internalType: "uint64",
3254
+ name: "ramSize",
3255
+ type: "uint64",
3256
+ },
3257
+ {
3258
+ internalType: "uint64",
3259
+ name: "gpuSize",
3260
+ type: "uint64",
3261
+ },
3262
+ {
3263
+ internalType: "uint64",
3264
+ name: "diskSize",
3265
+ type: "uint64",
3266
+ },
3267
+ {
3268
+ internalType: "uint64",
3269
+ name: "networkSize",
3270
+ type: "uint64",
3271
+ },
3272
+ {
3273
+ internalType: "uint32",
3274
+ name: "cpuMark",
3275
+ type: "uint32",
3276
+ },
3277
+ {
3278
+ internalType: "uint32",
3279
+ name: "ramMark",
3280
+ type: "uint32",
3281
+ },
3282
+ {
3283
+ internalType: "uint32",
3284
+ name: "gpuMark",
3285
+ type: "uint32",
3286
+ },
3287
+ {
3288
+ internalType: "uint32",
3289
+ name: "diskMark",
3290
+ type: "uint32",
3291
+ },
3292
+ {
3293
+ internalType: "uint32",
3294
+ name: "networkMark",
3295
+ type: "uint32",
3296
+ },
3297
+ ],
3298
+ internalType: "struct Benchmark",
3299
+ name: "offerParams",
3300
+ type: "tuple",
3301
+ },
3302
+ ],
3303
+ name: "getTeeRewardWithoutProof",
3304
+ outputs: [
3305
+ {
3306
+ internalType: "uint256",
3307
+ name: "reward",
3308
+ type: "uint256",
3309
+ },
3310
+ ],
3311
+ stateMutability: "view",
3312
+ type: "function",
3313
+ },
3314
+ {
3315
+ inputs: [
3316
+ {
3317
+ internalType: "uint256",
3318
+ name: "epochIndex",
3319
+ type: "uint256",
3320
+ },
3321
+ {
3322
+ internalType: "bytes32",
3323
+ name: "merkleLeaf",
3324
+ type: "bytes32",
3325
+ },
3326
+ ],
3327
+ name: "isTeeRewardsClaimAvailable",
3328
+ outputs: [
3329
+ {
3330
+ internalType: "bool",
3331
+ name: "",
3332
+ type: "bool",
3333
+ },
3334
+ ],
3335
+ stateMutability: "view",
3336
+ type: "function",
3337
+ },
3338
+ {
3339
+ inputs: [
3340
+ {
3341
+ internalType: "uint256",
3342
+ name: "epochIndex",
3343
+ type: "uint256",
3344
+ },
3345
+ {
3346
+ components: [
3347
+ {
3348
+ internalType: "uint128",
3349
+ name: "cpuMultiplier",
3350
+ type: "uint128",
3351
+ },
3352
+ {
3353
+ internalType: "uint128",
3354
+ name: "ramMultiplier",
3355
+ type: "uint128",
3356
+ },
3357
+ {
3358
+ internalType: "uint128",
3359
+ name: "gpuMultiplier",
3360
+ type: "uint128",
3361
+ },
3362
+ {
3363
+ internalType: "uint128",
3364
+ name: "diskMultiplier",
3365
+ type: "uint128",
3366
+ },
3367
+ {
3368
+ internalType: "uint128",
3369
+ name: "networkMultiplier",
3370
+ type: "uint128",
3371
+ },
3372
+ ],
3373
+ internalType: "struct BenchmarkPriceMultipliers",
3374
+ name: "epochParams",
3375
+ type: "tuple",
3376
+ },
3377
+ {
3378
+ internalType: "bytes32",
3379
+ name: "merkleRoot",
3380
+ type: "bytes32",
3381
+ },
3382
+ ],
3383
+ name: "updateTeeProviderRewards",
3384
+ outputs: [],
3385
+ stateMutability: "nonpayable",
3386
+ type: "function",
3387
+ },
3388
+ {
3389
+ anonymous: false,
3390
+ inputs: [
3391
+ {
3392
+ indexed: true,
3393
+ internalType: "uint256",
3394
+ name: "epochIndex",
3395
+ type: "uint256",
3396
+ },
3397
+ {
3398
+ indexed: true,
3399
+ internalType: "bytes32",
3400
+ name: "merkleRoot",
3401
+ type: "bytes32",
3402
+ },
3403
+ ],
3404
+ name: "UpdateValueProviderRewards",
3405
+ type: "event",
3406
+ },
3407
+ {
3408
+ anonymous: false,
3409
+ inputs: [
3410
+ {
3411
+ indexed: true,
3412
+ internalType: "uint256",
3413
+ name: "epochIndex",
3414
+ type: "uint256",
3415
+ },
3416
+ {
3417
+ indexed: true,
3418
+ internalType: "address",
3419
+ name: "beneficiary",
3420
+ type: "address",
3421
+ },
3422
+ {
3423
+ indexed: false,
3424
+ internalType: "uint256",
3425
+ name: "rewardAmount",
3426
+ type: "uint256",
3427
+ },
3428
+ {
3429
+ indexed: true,
3430
+ internalType: "address",
3431
+ name: "claimer",
3432
+ type: "address",
3433
+ },
3434
+ ],
3435
+ name: "ValueRewardsClaimed",
3436
+ type: "event",
3437
+ },
3438
+ {
3439
+ inputs: [
3440
+ {
3441
+ internalType: "address",
3442
+ name: "beneficiary",
3443
+ type: "address",
3444
+ },
3445
+ {
3446
+ components: [
3447
+ {
3448
+ internalType: "uint256",
3449
+ name: "epochIndex",
3450
+ type: "uint256",
3451
+ },
3452
+ {
3453
+ components: [
3454
+ {
3455
+ internalType: "uint256",
3456
+ name: "ordersCreated",
3457
+ type: "uint256",
3458
+ },
3459
+ {
3460
+ internalType: "uint256",
3461
+ name: "ordersMarkAvg",
3462
+ type: "uint256",
3463
+ },
3464
+ {
3465
+ internalType: "uint256",
3466
+ name: "ordersLength",
3467
+ type: "uint256",
3468
+ },
3469
+ {
3470
+ internalType: "uint256",
3471
+ name: "ordersPrice",
3472
+ type: "uint256",
3473
+ },
3474
+ ],
3475
+ internalType: "struct ValueRewardParams",
3476
+ name: "offerParams",
3477
+ type: "tuple",
3478
+ },
3479
+ {
3480
+ internalType: "bytes32",
3481
+ name: "swarmNonce",
3482
+ type: "bytes32",
3483
+ },
3484
+ {
3485
+ internalType: "bytes32[]",
3486
+ name: "merkleProofs",
3487
+ type: "bytes32[]",
3488
+ },
3489
+ ],
3490
+ internalType: "struct ClaimValueRewardArgs[]",
3491
+ name: "args",
3492
+ type: "tuple[]",
3493
+ },
3494
+ ],
3495
+ name: "batchClaimValueRewards",
3496
+ outputs: [],
3497
+ stateMutability: "nonpayable",
3498
+ type: "function",
3499
+ },
3500
+ {
3501
+ inputs: [
3502
+ {
3503
+ internalType: "address",
3504
+ name: "beneficiary",
3505
+ type: "address",
3506
+ },
3507
+ {
3508
+ components: [
3509
+ {
3510
+ internalType: "uint256",
3511
+ name: "epochIndex",
3512
+ type: "uint256",
3513
+ },
3514
+ {
3515
+ components: [
3516
+ {
3517
+ internalType: "uint256",
3518
+ name: "ordersCreated",
3519
+ type: "uint256",
3520
+ },
3521
+ {
3522
+ internalType: "uint256",
3523
+ name: "ordersMarkAvg",
3524
+ type: "uint256",
3525
+ },
3526
+ {
3527
+ internalType: "uint256",
3528
+ name: "ordersLength",
3529
+ type: "uint256",
3530
+ },
3531
+ {
3532
+ internalType: "uint256",
3533
+ name: "ordersPrice",
3534
+ type: "uint256",
3535
+ },
3536
+ ],
3537
+ internalType: "struct ValueRewardParams",
3538
+ name: "offerParams",
3539
+ type: "tuple",
3540
+ },
3541
+ {
3542
+ internalType: "bytes32",
3543
+ name: "swarmNonce",
3544
+ type: "bytes32",
3545
+ },
3546
+ {
3547
+ internalType: "bytes32[]",
3548
+ name: "merkleProofs",
3549
+ type: "bytes32[]",
3550
+ },
3551
+ ],
3552
+ internalType: "struct ClaimValueRewardArgs",
3553
+ name: "args",
3554
+ type: "tuple",
3555
+ },
3556
+ ],
3557
+ name: "claimValueRewards",
3558
+ outputs: [],
3559
+ stateMutability: "nonpayable",
3560
+ type: "function",
3561
+ },
3562
+ {
3563
+ inputs: [
3564
+ {
3565
+ components: [
3566
+ {
3567
+ internalType: "uint256",
3568
+ name: "epochIndex",
3569
+ type: "uint256",
3570
+ },
3571
+ {
3572
+ components: [
3573
+ {
3574
+ internalType: "uint256",
3575
+ name: "ordersCreated",
3576
+ type: "uint256",
3577
+ },
3578
+ {
3579
+ internalType: "uint256",
3580
+ name: "ordersMarkAvg",
3581
+ type: "uint256",
3582
+ },
3583
+ {
3584
+ internalType: "uint256",
3585
+ name: "ordersLength",
3586
+ type: "uint256",
3587
+ },
3588
+ {
3589
+ internalType: "uint256",
3590
+ name: "ordersPrice",
3591
+ type: "uint256",
3592
+ },
3593
+ ],
3594
+ internalType: "struct ValueRewardParams",
3595
+ name: "offerParams",
3596
+ type: "tuple",
3597
+ },
3598
+ {
3599
+ internalType: "bytes32",
3600
+ name: "swarmNonce",
3601
+ type: "bytes32",
3602
+ },
3603
+ {
3604
+ internalType: "bytes32[]",
3605
+ name: "merkleProofs",
3606
+ type: "bytes32[]",
3607
+ },
3608
+ ],
3609
+ internalType: "struct ClaimValueRewardArgs",
3610
+ name: "args",
3611
+ type: "tuple",
3612
+ },
3613
+ ],
3614
+ name: "getValueReward",
3615
+ outputs: [
3616
+ {
3617
+ internalType: "uint256",
3618
+ name: "reward",
3619
+ type: "uint256",
3620
+ },
3621
+ {
3622
+ internalType: "bytes32",
3623
+ name: "merkleLeaf",
3624
+ type: "bytes32",
3625
+ },
3626
+ ],
3627
+ stateMutability: "view",
3628
+ type: "function",
3629
+ },
3630
+ {
3631
+ inputs: [
3632
+ {
3633
+ internalType: "uint256",
3634
+ name: "epochIndex",
3635
+ type: "uint256",
3636
+ },
3637
+ {
3638
+ components: [
3639
+ {
3640
+ internalType: "uint256",
3641
+ name: "ordersCreated",
3642
+ type: "uint256",
3643
+ },
3644
+ {
3645
+ internalType: "uint256",
3646
+ name: "ordersMarkAvg",
3647
+ type: "uint256",
3648
+ },
3649
+ {
3650
+ internalType: "uint256",
3651
+ name: "ordersLength",
3652
+ type: "uint256",
3653
+ },
3654
+ {
3655
+ internalType: "uint256",
3656
+ name: "ordersPrice",
3657
+ type: "uint256",
3658
+ },
3659
+ ],
3660
+ internalType: "struct ValueRewardParams",
3661
+ name: "offerParams",
3662
+ type: "tuple",
3663
+ },
3664
+ ],
3665
+ name: "getValueRewardWithoutProof",
3666
+ outputs: [
3667
+ {
3668
+ internalType: "uint256",
3669
+ name: "reward",
3670
+ type: "uint256",
3671
+ },
3672
+ ],
3673
+ stateMutability: "view",
3674
+ type: "function",
3675
+ },
3676
+ {
3677
+ inputs: [
3678
+ {
3679
+ internalType: "uint256",
3680
+ name: "epochIndex",
3681
+ type: "uint256",
3682
+ },
3683
+ {
3684
+ internalType: "bytes32",
3685
+ name: "merkleLeaf",
3686
+ type: "bytes32",
3687
+ },
3688
+ ],
3689
+ name: "isValueRewardsClaimAvailable",
3690
+ outputs: [
3691
+ {
3692
+ internalType: "bool",
3693
+ name: "",
3694
+ type: "bool",
3695
+ },
3696
+ ],
3697
+ stateMutability: "view",
3698
+ type: "function",
3699
+ },
3700
+ {
3701
+ inputs: [
3702
+ {
3703
+ internalType: "uint256",
3704
+ name: "epochIndex",
3705
+ type: "uint256",
3706
+ },
3707
+ {
3708
+ components: [
3709
+ {
3710
+ internalType: "uint256",
3711
+ name: "ordersCreated",
3712
+ type: "uint256",
3713
+ },
3714
+ {
3715
+ internalType: "uint256",
3716
+ name: "ordersMarkAvg",
3717
+ type: "uint256",
3718
+ },
3719
+ {
3720
+ internalType: "uint256",
3721
+ name: "ordersLength",
3722
+ type: "uint256",
3723
+ },
3724
+ {
3725
+ internalType: "uint256",
3726
+ name: "ordersPrice",
3727
+ type: "uint256",
3728
+ },
3729
+ ],
3730
+ internalType: "struct ValueRewardParams",
3731
+ name: "epochParams",
3732
+ type: "tuple",
3733
+ },
3734
+ {
3735
+ internalType: "bytes32",
3736
+ name: "merkleRoot",
3737
+ type: "bytes32",
3738
+ },
3739
+ ],
3740
+ name: "updateValueProviderRewards",
3741
+ outputs: [],
3742
+ stateMutability: "nonpayable",
3743
+ type: "function",
3744
+ },
3745
+ {
3746
+ anonymous: false,
3747
+ inputs: [
3748
+ {
3749
+ indexed: true,
3750
+ internalType: "uint256",
3751
+ name: "epochIndex",
3752
+ type: "uint256",
3753
+ },
3754
+ {
3755
+ indexed: false,
3756
+ internalType: "uint256",
3757
+ name: "totalUsdtRewardAmount",
3758
+ type: "uint256",
3759
+ },
3760
+ ],
3761
+ name: "UpdateWorkloadsRewards",
3762
+ type: "event",
3763
+ },
3764
+ {
3765
+ anonymous: false,
3766
+ inputs: [
3767
+ {
3768
+ indexed: true,
3769
+ internalType: "address",
3770
+ name: "delegator",
3771
+ type: "address",
3772
+ },
3773
+ {
3774
+ indexed: true,
3775
+ internalType: "uint256",
3776
+ name: "epochIndex",
3777
+ type: "uint256",
3778
+ },
3779
+ {
3780
+ indexed: false,
3781
+ internalType: "uint256",
3782
+ name: "usdtReward",
3783
+ type: "uint256",
3784
+ },
3785
+ {
3786
+ indexed: false,
3787
+ internalType: "uint256",
3788
+ name: "teeReward",
3789
+ type: "uint256",
3790
+ },
3791
+ ],
3792
+ name: "WorkloadsRewardsClaimed",
3793
+ type: "event",
3794
+ },
3795
+ {
3796
+ inputs: [
3797
+ {
3798
+ internalType: "uint256",
3799
+ name: "epochIndex",
3800
+ type: "uint256",
3801
+ },
3802
+ {
3803
+ internalType: "uint256",
3804
+ name: "delegatorUpdateIndex",
3805
+ type: "uint256",
3806
+ },
3807
+ {
3808
+ internalType: "uint256",
3809
+ name: "poolUpdateIndex",
3810
+ type: "uint256",
3811
+ },
3812
+ ],
3813
+ name: "claimWorkloadsRewards",
3814
+ outputs: [],
3815
+ stateMutability: "nonpayable",
3816
+ type: "function",
3817
+ },
3818
+ {
3819
+ inputs: [
3820
+ {
3821
+ internalType: "uint256",
3822
+ name: "epochIndex",
3823
+ type: "uint256",
3824
+ },
3825
+ {
3826
+ internalType: "uint256",
3827
+ name: "offerId",
3828
+ type: "uint256",
3829
+ },
3830
+ ],
3831
+ name: "getWorkloadUsdtReward",
3832
+ outputs: [
3833
+ {
3834
+ internalType: "uint256",
3835
+ name: "",
3836
+ type: "uint256",
3837
+ },
3838
+ ],
3839
+ stateMutability: "view",
3840
+ type: "function",
3841
+ },
3842
+ {
3843
+ inputs: [
3844
+ {
3845
+ internalType: "address",
3846
+ name: "delegator",
3847
+ type: "address",
3848
+ },
3849
+ {
3850
+ internalType: "uint256",
3851
+ name: "epochIndex",
3852
+ type: "uint256",
3853
+ },
3854
+ {
3855
+ internalType: "uint256",
3856
+ name: "delegatorUpdateIndex",
3857
+ type: "uint256",
3858
+ },
3859
+ {
3860
+ internalType: "uint256",
3861
+ name: "poolUpdateIndex",
3862
+ type: "uint256",
3863
+ },
3864
+ ],
3865
+ name: "getWorkloadsRewards",
3866
+ outputs: [
3867
+ {
3868
+ internalType: "uint256",
3869
+ name: "usdtReward",
3870
+ type: "uint256",
3871
+ },
3872
+ {
3873
+ internalType: "uint256",
3874
+ name: "teeReward",
3875
+ type: "uint256",
3876
+ },
3877
+ ],
3878
+ stateMutability: "view",
3879
+ type: "function",
3880
+ },
3881
+ {
3882
+ inputs: [
3883
+ {
3884
+ internalType: "address",
3885
+ name: "delegator",
3886
+ type: "address",
3887
+ },
3888
+ {
3889
+ internalType: "uint256",
3890
+ name: "epochIndex",
3891
+ type: "uint256",
3892
+ },
3893
+ ],
3894
+ name: "isWorkloadsRewardsClaimAvailable",
3895
+ outputs: [
3896
+ {
3897
+ internalType: "bool",
3898
+ name: "",
3899
+ type: "bool",
3900
+ },
3901
+ ],
3902
+ stateMutability: "view",
3903
+ type: "function",
3904
+ },
3905
+ {
3906
+ inputs: [
3907
+ {
3908
+ internalType: "uint256",
3909
+ name: "epochIndex",
3910
+ type: "uint256",
3911
+ },
3912
+ {
3913
+ internalType: "uint256",
3914
+ name: "totalUsdtRewardAmount",
3915
+ type: "uint256",
3916
+ },
3917
+ ],
3918
+ name: "updateWorkloadsRewards",
3919
+ outputs: [],
3920
+ stateMutability: "nonpayable",
3921
+ type: "function",
3922
+ },
3923
+ {
3924
+ anonymous: false,
3925
+ inputs: [
3926
+ {
3927
+ components: [
3928
+ {
3929
+ internalType: "address",
3930
+ name: "facetAddress",
3931
+ type: "address",
3932
+ },
3933
+ {
3934
+ internalType: "enum IDiamondCut.FacetCutAction",
3935
+ name: "action",
3936
+ type: "uint8",
3937
+ },
3938
+ {
3939
+ internalType: "bytes4[]",
3940
+ name: "functionSelectors",
3941
+ type: "bytes4[]",
3942
+ },
3943
+ ],
3944
+ indexed: false,
3945
+ internalType: "struct IDiamondCut.FacetCut[]",
3946
+ name: "_diamondCut",
3947
+ type: "tuple[]",
3948
+ },
3949
+ {
3950
+ indexed: false,
3951
+ internalType: "address",
3952
+ name: "_init",
3953
+ type: "address",
3954
+ },
3955
+ {
3956
+ indexed: false,
3957
+ internalType: "bytes",
3958
+ name: "_calldata",
3959
+ type: "bytes",
3960
+ },
3961
+ ],
3962
+ name: "DiamondCut",
3963
+ type: "event",
3964
+ },
3965
+ {
3966
+ anonymous: false,
3967
+ inputs: [
3968
+ {
3969
+ indexed: true,
3970
+ internalType: "address",
3971
+ name: "previousOwner",
3972
+ type: "address",
3973
+ },
3974
+ {
3975
+ indexed: true,
3976
+ internalType: "address",
3977
+ name: "newOwner",
3978
+ type: "address",
3979
+ },
3980
+ ],
3981
+ name: "OwnershipTransferred",
3982
+ type: "event",
3983
+ },
3984
+ {
3985
+ inputs: [],
3986
+ name: "deployer",
3987
+ outputs: [
3988
+ {
3989
+ internalType: "address",
3990
+ name: "",
3991
+ type: "address",
3992
+ },
3993
+ ],
3994
+ stateMutability: "view",
3995
+ type: "function",
3996
+ },
3997
+ {
3998
+ inputs: [],
3999
+ name: "deploymentBlockNumber",
4000
+ outputs: [
4001
+ {
4002
+ internalType: "uint64",
4003
+ name: "",
4004
+ type: "uint64",
4005
+ },
4006
+ ],
4007
+ stateMutability: "view",
4008
+ type: "function",
4009
+ },
4010
+ {
4011
+ anonymous: false,
4012
+ inputs: [
4013
+ {
4014
+ components: [
4015
+ {
4016
+ internalType: "address",
4017
+ name: "facetAddress",
4018
+ type: "address",
4019
+ },
4020
+ {
4021
+ internalType: "enum IDiamondCut.FacetCutAction",
4022
+ name: "action",
4023
+ type: "uint8",
4024
+ },
4025
+ {
4026
+ internalType: "bytes4[]",
4027
+ name: "functionSelectors",
4028
+ type: "bytes4[]",
4029
+ },
4030
+ ],
4031
+ indexed: false,
4032
+ internalType: "struct IDiamondCut.FacetCut[]",
4033
+ name: "_diamondCut",
4034
+ type: "tuple[]",
4035
+ },
4036
+ {
4037
+ indexed: false,
4038
+ internalType: "address",
4039
+ name: "_init",
4040
+ type: "address",
4041
+ },
4042
+ {
4043
+ indexed: false,
4044
+ internalType: "bytes",
4045
+ name: "_calldata",
4046
+ type: "bytes",
4047
+ },
4048
+ ],
4049
+ name: "DiamondCut",
4050
+ type: "event",
4051
+ },
4052
+ {
4053
+ anonymous: false,
4054
+ inputs: [
4055
+ {
4056
+ components: [
4057
+ {
4058
+ internalType: "address",
4059
+ name: "facetAddress",
4060
+ type: "address",
4061
+ },
4062
+ {
4063
+ internalType: "enum IDiamondCut.FacetCutAction",
4064
+ name: "action",
4065
+ type: "uint8",
4066
+ },
4067
+ {
4068
+ internalType: "bytes4[]",
4069
+ name: "functionSelectors",
4070
+ type: "bytes4[]",
4071
+ },
4072
+ ],
4073
+ indexed: false,
4074
+ internalType: "struct IDiamondCut.FacetCut[]",
4075
+ name: "_diamondCut",
4076
+ type: "tuple[]",
4077
+ },
4078
+ {
4079
+ indexed: false,
4080
+ internalType: "address",
4081
+ name: "_init",
4082
+ type: "address",
4083
+ },
4084
+ {
4085
+ indexed: false,
4086
+ internalType: "bytes",
4087
+ name: "_calldata",
4088
+ type: "bytes",
4089
+ },
4090
+ ],
4091
+ name: "DiamondCut",
4092
+ type: "event",
4093
+ },
4094
+ {
4095
+ inputs: [
4096
+ {
4097
+ components: [
4098
+ {
4099
+ internalType: "address",
4100
+ name: "facetAddress",
4101
+ type: "address",
4102
+ },
4103
+ {
4104
+ internalType: "enum IDiamondCut.FacetCutAction",
4105
+ name: "action",
4106
+ type: "uint8",
4107
+ },
4108
+ {
4109
+ internalType: "bytes4[]",
4110
+ name: "functionSelectors",
4111
+ type: "bytes4[]",
4112
+ },
4113
+ ],
4114
+ internalType: "struct IDiamondCut.FacetCut[]",
4115
+ name: "_diamondCut",
4116
+ type: "tuple[]",
4117
+ },
4118
+ {
4119
+ internalType: "bytes32",
4120
+ name: "version",
4121
+ type: "bytes32",
4122
+ },
4123
+ {
4124
+ internalType: "address",
4125
+ name: "_init",
4126
+ type: "address",
4127
+ },
4128
+ {
4129
+ internalType: "bytes",
4130
+ name: "_calldata",
4131
+ type: "bytes",
4132
+ },
4133
+ ],
4134
+ name: "diamondCut",
4135
+ outputs: [],
4136
+ stateMutability: "nonpayable",
4137
+ type: "function",
4138
+ },
4139
+ {
4140
+ inputs: [
4141
+ {
4142
+ internalType: "bytes4",
4143
+ name: "_functionSelector",
4144
+ type: "bytes4",
4145
+ },
4146
+ ],
4147
+ name: "facetAddress",
4148
+ outputs: [
4149
+ {
4150
+ internalType: "address",
4151
+ name: "facetAddress_",
4152
+ type: "address",
4153
+ },
4154
+ ],
4155
+ stateMutability: "view",
4156
+ type: "function",
4157
+ },
4158
+ {
4159
+ inputs: [],
4160
+ name: "facetAddresses",
4161
+ outputs: [
4162
+ {
4163
+ internalType: "address[]",
4164
+ name: "",
4165
+ type: "address[]",
4166
+ },
4167
+ ],
4168
+ stateMutability: "view",
4169
+ type: "function",
4170
+ },
4171
+ {
4172
+ inputs: [
4173
+ {
4174
+ internalType: "address",
4175
+ name: "_facet",
4176
+ type: "address",
4177
+ },
4178
+ ],
4179
+ name: "facetFunctionSelectors",
4180
+ outputs: [
4181
+ {
4182
+ internalType: "bytes4[]",
4183
+ name: "",
4184
+ type: "bytes4[]",
4185
+ },
4186
+ ],
4187
+ stateMutability: "view",
4188
+ type: "function",
4189
+ },
4190
+ {
4191
+ inputs: [],
4192
+ name: "facets",
4193
+ outputs: [
4194
+ {
4195
+ components: [
4196
+ {
4197
+ internalType: "address",
4198
+ name: "facetAddress",
4199
+ type: "address",
4200
+ },
4201
+ {
4202
+ internalType: "bytes4[]",
4203
+ name: "functionSelectors",
4204
+ type: "bytes4[]",
4205
+ },
4206
+ ],
4207
+ internalType: "struct IDiamondLoupe.Facet[]",
4208
+ name: "facets_",
4209
+ type: "tuple[]",
4210
+ },
4211
+ ],
4212
+ stateMutability: "view",
4213
+ type: "function",
4214
+ },
4215
+ {
4216
+ inputs: [],
4217
+ name: "getVersion",
4218
+ outputs: [
4219
+ {
4220
+ internalType: "bytes32",
4221
+ name: "",
4222
+ type: "bytes32",
4223
+ },
4224
+ ],
4225
+ stateMutability: "view",
4226
+ type: "function",
4227
+ },
4228
+ {
4229
+ inputs: [],
4230
+ name: "getVersionHistory",
4231
+ outputs: [
4232
+ {
4233
+ internalType: "bytes32[]",
4234
+ name: "",
4235
+ type: "bytes32[]",
4236
+ },
4237
+ ],
4238
+ stateMutability: "view",
4239
+ type: "function",
4240
+ },
4241
+ {
4242
+ inputs: [
4243
+ {
4244
+ internalType: "bytes4",
4245
+ name: "_interfaceId",
4246
+ type: "bytes4",
4247
+ },
4248
+ ],
4249
+ name: "supportsInterface",
4250
+ outputs: [
4251
+ {
4252
+ internalType: "bool",
4253
+ name: "",
4254
+ type: "bool",
4255
+ },
4256
+ ],
4257
+ stateMutability: "view",
4258
+ type: "function",
4259
+ },
4260
+ {
4261
+ anonymous: false,
4262
+ inputs: [
4263
+ {
4264
+ indexed: true,
4265
+ internalType: "address",
4266
+ name: "previousOwner",
4267
+ type: "address",
4268
+ },
4269
+ {
4270
+ indexed: true,
4271
+ internalType: "address",
4272
+ name: "newOwner",
4273
+ type: "address",
4274
+ },
4275
+ ],
4276
+ name: "OwnershipTransferred",
4277
+ type: "event",
4278
+ },
4279
+ {
4280
+ anonymous: false,
4281
+ inputs: [
4282
+ {
4283
+ indexed: true,
4284
+ internalType: "address",
4285
+ name: "previousOwner",
4286
+ type: "address",
4287
+ },
4288
+ {
4289
+ indexed: true,
4290
+ internalType: "address",
4291
+ name: "newOwner",
4292
+ type: "address",
4293
+ },
4294
+ ],
4295
+ name: "OwnershipTransferred",
4296
+ type: "event",
4297
+ },
4298
+ {
4299
+ inputs: [],
4300
+ name: "owner",
4301
+ outputs: [
4302
+ {
4303
+ internalType: "address",
4304
+ name: "owner_",
4305
+ type: "address",
4306
+ },
4307
+ ],
4308
+ stateMutability: "view",
4309
+ type: "function",
4310
+ },
4311
+ {
4312
+ inputs: [
4313
+ {
4314
+ internalType: "address",
4315
+ name: "_newOwner",
4316
+ type: "address",
4317
+ },
4318
+ ],
4319
+ name: "transferOwnership",
4320
+ outputs: [],
4321
+ stateMutability: "nonpayable",
4322
+ type: "function",
4323
+ },
4324
+ ];
4325
+ class App__factory {
4326
+ static abi = _abi;
4327
+ static createInterface() {
4328
+ return new ethers_1.Interface(_abi);
4329
+ }
4330
+ static connect(address, runner) {
4331
+ return new ethers_1.Contract(address, _abi, runner);
4332
+ }
4333
+ }
4334
+ exports.App__factory = App__factory;
4335
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwX19mYWN0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vc3JjL2NvbnRyYWN0cy90eXBlY2hhaW4tdHlwZXMvZmFjdG9yaWVzL2hhcmRoYXQtZGlhbW9uZC1hYmkvSGFyZGhhdERpYW1vbmRBQkkuc29sL0FwcF9fZmFjdG9yeS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsY0FBYztBQUNkLCtDQUErQztBQUMvQyxvQkFBb0I7QUFDcEIsb0JBQW9COzs7QUFFcEIsbUNBQWtFO0FBTWxFLE1BQU0sSUFBSSxHQUFHO0lBQ1g7UUFDRSxTQUFTLEVBQUUsS0FBSztRQUNoQixNQUFNLEVBQUU7WUFDTjtnQkFDRSxPQUFPLEVBQUUsSUFBSTtnQkFDYixZQUFZLEVBQUUsU0FBUztnQkFDdkIsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLElBQUksRUFBRSxTQUFTO2FBQ2hCO1lBQ0Q7Z0JBQ0UsT0FBTyxFQUFFLElBQUk7Z0JBQ2IsWUFBWSxFQUFFLE1BQU07Z0JBQ3BCLElBQUksRUFBRSxlQUFlO2dCQUNyQixJQUFJLEVBQUUsTUFBTTthQUNiO1NBQ0Y7UUFDRCxJQUFJLEVBQUUsc0JBQXNCO1FBQzVCLElBQUksRUFBRSxPQUFPO0tBQ2Q7SUFDRDtRQUNFLFNBQVMsRUFBRSxLQUFLO1FBQ2hCLE1BQU0sRUFBRTtZQUNOO2dCQUNFLE9BQU8sRUFBRSxJQUFJO2dCQUNiLFlBQVksRUFBRSxTQUFTO2dCQUN2QixJQUFJLEVBQUUsVUFBVTtnQkFDaEIsSUFBSSxFQUFFLFNBQVM7YUFDaEI7WUFDRDtnQkFDRSxPQUFPLEVBQUUsSUFBSTtnQkFDYixZQUFZLEVBQUUsTUFBTTtnQkFDcEIsSUFBSSxFQUFFLGVBQWU7Z0JBQ3JCLElBQUksRUFBRSxNQUFNO2FBQ2I7U0FDRjtRQUNELElBQUksRUFBRSxxQkFBcUI7UUFDM0IsSUFBSSxFQUFFLE9BQU87S0FDZDtJQUNEO1FBQ0UsU0FBUyxFQUFFLEtBQUs7UUFDaEIs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