@etherisc/gif-next 0.0.2-8d47fa1-080 → 0.0.2-8d681eb-812

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 (810) hide show
  1. package/README.md +305 -21
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1652 -0
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1279 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  17. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1333 -0
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  23. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1209 -0
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +930 -0
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1633 -0
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +896 -0
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  37. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +829 -0
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  39. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +1100 -0
  40. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
  41. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
  42. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
  43. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
  44. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
  45. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
  46. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
  47. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
  48. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
  49. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -0
  50. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
  51. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
  54. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  55. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  56. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  57. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
  60. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  61. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  63. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
  64. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  65. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  66. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  67. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
  68. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  69. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +502 -1599
  70. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  71. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +915 -0
  72. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  73. package/artifacts/contracts/instance/Instance.sol/Instance.json +627 -1971
  74. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  75. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2338 -0
  76. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  77. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
  78. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  79. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +2698 -0
  80. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  81. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1161 -0
  82. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  84. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  85. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3728 -0
  86. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  87. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  88. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  89. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  90. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  91. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  92. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  93. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  94. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
  96. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  97. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +192 -0
  98. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  99. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  100. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  101. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  102. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  103. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  104. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  105. package/artifacts/contracts/instance/module/{distribution/IDistribution.sol → IDistribution.sol}/IDistribution.json +1 -1
  106. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  107. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  108. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  109. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  110. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  111. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  112. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  113. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
  114. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  115. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
  116. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  117. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  118. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  119. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
  120. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  121. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +733 -0
  122. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  123. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +854 -0
  124. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  125. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  126. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  127. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -0
  128. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  129. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
  130. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  131. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
  132. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  133. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
  134. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
  136. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  137. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +880 -0
  138. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  139. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
  140. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  141. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1230 -0
  142. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  143. package/artifacts/contracts/pool/Pool.sol/Pool.json +1006 -0
  144. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  145. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  146. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  147. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
  148. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
  150. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  151. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
  152. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  153. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -0
  154. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  155. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
  156. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  157. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
  158. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  159. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
  160. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  161. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
  162. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  163. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +295 -330
  164. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  165. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
  166. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  167. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
  168. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  169. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +623 -0
  170. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  171. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -0
  172. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  173. package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → product/IRiskService.sol/IRiskService.json} +246 -146
  174. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  175. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
  176. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  177. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +349 -0
  178. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  179. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
  180. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  181. package/artifacts/contracts/product/PricingService.sol/PricingService.json +911 -0
  182. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  183. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
  184. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  185. package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
  186. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  187. package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
  188. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  189. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
  190. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  191. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +103 -2
  192. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  193. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +810 -171
  194. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  195. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +561 -186
  196. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/IInstanceLinked.sol/IInstanceLinked.json → registry/IRelease.sol/IRelease.json} +6 -6
  198. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
  200. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/Registry.sol/Registry.json +1016 -148
  202. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  203. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2127 -0
  204. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  205. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  206. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  207. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +625 -217
  208. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  209. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +735 -0
  210. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  211. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2140 -0
  212. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  213. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
  214. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  215. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1393 -0
  216. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  217. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
  218. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  219. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  220. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  221. package/artifacts/contracts/shared/Component.sol/Component.json +686 -0
  222. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1556 -0
  224. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  225. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
  226. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  227. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +253 -161
  228. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
  229. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +616 -0
  230. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  231. package/artifacts/contracts/shared/{IOwnable.sol/IOwnable.json → ContractLib.sol/IInstanceAdminHelper.json} +5 -5
  232. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  233. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  234. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  235. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  236. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  237. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +611 -0
  238. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  239. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
  240. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  241. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -0
  242. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  243. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +122 -172
  244. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  245. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
  246. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  247. package/artifacts/contracts/{instance/module/component/ComponentModule.sol/ComponentModule.json → shared/INftOwnable.sol/INftOwnable.json} +82 -52
  248. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  249. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +175 -0
  250. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +213 -8
  252. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  253. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  254. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  255. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → shared/IService.sol/IService.json} +189 -179
  256. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  257. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  258. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  259. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +776 -0
  260. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  261. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
  262. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  263. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
  264. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  265. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  266. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  267. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +209 -0
  268. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  269. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +198 -0
  270. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  271. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +226 -8
  272. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  273. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  274. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  275. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/Service.sol/Service.json} +196 -199
  276. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  277. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +723 -0
  278. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  279. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  280. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  281. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
  282. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  283. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1491 -0
  284. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  285. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
  286. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  287. package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
  288. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  289. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  290. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  291. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
  292. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  293. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
  294. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  295. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
  296. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  297. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
  298. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  299. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
  300. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  301. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
  302. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  303. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -0
  304. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  305. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  306. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
  308. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  309. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  310. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
  312. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  314. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  315. package/artifacts/contracts/type/Fee.sol/FeeLib.json +373 -0
  316. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  317. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  318. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  319. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  320. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -0
  322. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  323. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  324. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  325. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +241 -0
  326. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  327. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  328. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  329. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  330. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  331. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  332. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  333. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +204 -0
  334. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  335. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -0
  336. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  337. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  338. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  339. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -0
  340. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  341. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  342. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  343. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
  344. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  345. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  346. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  347. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  348. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  349. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +572 -0
  350. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  351. package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
  352. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  353. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -0
  354. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  355. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  356. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  357. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
  358. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  359. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  360. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  361. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  362. package/contracts/accounting/AccountingService.sol +262 -0
  363. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  364. package/contracts/accounting/IAccountingService.sol +45 -0
  365. package/contracts/authorization/AccessAdmin.sol +789 -0
  366. package/contracts/authorization/AccessAdminLib.sol +387 -0
  367. package/contracts/authorization/AccessManagerCloneable.sol +158 -0
  368. package/contracts/authorization/Authorization.sol +174 -0
  369. package/contracts/authorization/IAccess.sol +67 -0
  370. package/contracts/authorization/IAccessAdmin.sol +137 -0
  371. package/contracts/authorization/IAuthorization.sol +27 -0
  372. package/contracts/authorization/IServiceAuthorization.sol +78 -0
  373. package/contracts/authorization/ServiceAuthorization.sol +320 -0
  374. package/contracts/distribution/BasicDistribution.sol +141 -0
  375. package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
  376. package/contracts/distribution/Distribution.sol +245 -0
  377. package/contracts/distribution/DistributionService.sol +438 -0
  378. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  379. package/contracts/distribution/IDistributionComponent.sol +45 -0
  380. package/contracts/distribution/IDistributionService.sol +109 -0
  381. package/contracts/examples/fire/DamageLevel.sol +59 -0
  382. package/contracts/examples/fire/FirePool.sol +86 -0
  383. package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
  384. package/contracts/examples/fire/FireProduct.sol +433 -0
  385. package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
  386. package/contracts/examples/fire/FireUSD.sol +26 -0
  387. package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
  388. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  389. package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
  390. package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
  391. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  392. package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
  393. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  394. package/contracts/instance/BundleSet.sol +130 -0
  395. package/contracts/instance/IInstance.sol +132 -47
  396. package/contracts/instance/IInstanceService.sol +105 -0
  397. package/contracts/instance/Instance.sol +328 -72
  398. package/contracts/instance/InstanceAdmin.sol +355 -0
  399. package/contracts/instance/InstanceAuthorizationV3.sol +262 -0
  400. package/contracts/instance/InstanceReader.sol +705 -0
  401. package/contracts/instance/InstanceService.sol +514 -0
  402. package/contracts/instance/InstanceServiceManager.sol +39 -0
  403. package/contracts/instance/InstanceStore.sol +298 -0
  404. package/contracts/instance/RiskSet.sol +118 -0
  405. package/contracts/instance/base/BalanceStore.sol +123 -0
  406. package/contracts/instance/base/Cloneable.sol +28 -0
  407. package/contracts/instance/base/ObjectCounter.sol +20 -0
  408. package/contracts/instance/base/ObjectLifecycle.sol +113 -0
  409. package/contracts/instance/base/ObjectSet.sol +77 -0
  410. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  411. package/contracts/instance/module/IBundle.sol +21 -0
  412. package/contracts/instance/module/IComponents.sol +62 -0
  413. package/contracts/instance/module/IDistribution.sol +54 -0
  414. package/contracts/instance/module/IPolicy.sol +105 -0
  415. package/contracts/instance/module/IRisk.sol +16 -0
  416. package/contracts/{test/TestToken.sol → mock/Dip.sol} +6 -6
  417. package/contracts/oracle/BasicOracle.sol +45 -0
  418. package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
  419. package/contracts/oracle/IOracle.sol +41 -0
  420. package/contracts/oracle/IOracleComponent.sol +33 -0
  421. package/contracts/oracle/IOracleService.sol +66 -0
  422. package/contracts/oracle/Oracle.sol +154 -0
  423. package/contracts/oracle/OracleService.sol +310 -0
  424. package/contracts/oracle/OracleServiceManager.sol +39 -0
  425. package/contracts/pool/BasicPool.sol +173 -0
  426. package/contracts/pool/BasicPoolAuthorization.sol +82 -0
  427. package/contracts/pool/BundleService.sol +395 -0
  428. package/contracts/pool/BundleServiceManager.sol +39 -0
  429. package/contracts/pool/IBundleService.sol +115 -0
  430. package/contracts/pool/IPoolComponent.sol +62 -0
  431. package/contracts/pool/IPoolService.sol +165 -0
  432. package/contracts/pool/Pool.sol +343 -0
  433. package/contracts/pool/PoolLib.sol +260 -0
  434. package/contracts/pool/PoolService.sol +733 -0
  435. package/contracts/pool/PoolServiceManager.sol +39 -0
  436. package/contracts/product/ApplicationService.sol +274 -0
  437. package/contracts/product/ApplicationServiceManager.sol +38 -0
  438. package/contracts/product/BasicProduct.sol +49 -0
  439. package/contracts/product/BasicProductAuthorization.sol +61 -0
  440. package/contracts/product/ClaimService.sol +630 -0
  441. package/contracts/product/ClaimServiceManager.sol +38 -0
  442. package/contracts/product/IApplicationService.sol +69 -0
  443. package/contracts/product/IClaimService.sol +135 -0
  444. package/contracts/product/IPolicyService.sol +95 -0
  445. package/contracts/product/IPricingService.sol +40 -0
  446. package/contracts/product/IProductComponent.sol +62 -0
  447. package/contracts/product/IRiskService.sol +33 -0
  448. package/contracts/product/PolicyService.sol +664 -0
  449. package/contracts/product/PolicyServiceLib.sol +86 -0
  450. package/contracts/product/PolicyServiceManager.sol +39 -0
  451. package/contracts/product/PricingService.sol +309 -0
  452. package/contracts/product/PricingServiceManager.sol +39 -0
  453. package/contracts/product/Product.sol +467 -0
  454. package/contracts/product/RiskService.sol +154 -0
  455. package/contracts/product/RiskServiceManager.sol +39 -0
  456. package/contracts/registry/ChainNft.sol +99 -37
  457. package/contracts/registry/IRegistry.sol +135 -40
  458. package/contracts/registry/IRegistryService.sol +49 -16
  459. package/contracts/registry/IRelease.sol +29 -0
  460. package/contracts/registry/ITransferInterceptor.sol +1 -1
  461. package/contracts/registry/Registry.sol +569 -344
  462. package/contracts/registry/RegistryAdmin.sol +188 -0
  463. package/contracts/registry/RegistryAuthorization.sol +277 -0
  464. package/contracts/registry/RegistryService.sol +147 -289
  465. package/contracts/registry/RegistryServiceManager.sol +53 -0
  466. package/contracts/registry/ReleaseAdmin.sol +195 -0
  467. package/contracts/registry/ReleaseLifecycle.sol +32 -0
  468. package/contracts/registry/ReleaseRegistry.sol +520 -0
  469. package/contracts/registry/ServiceAuthorizationV3.sol +341 -0
  470. package/contracts/registry/TokenRegistry.sol +314 -0
  471. package/contracts/shared/Component.sol +210 -0
  472. package/contracts/shared/ComponentService.sol +708 -0
  473. package/contracts/shared/ComponentServiceManager.sol +38 -0
  474. package/contracts/shared/ComponentVerifyingService.sol +128 -0
  475. package/contracts/shared/ContractLib.sol +292 -0
  476. package/contracts/shared/IComponent.sol +58 -0
  477. package/contracts/shared/IComponentService.sol +112 -0
  478. package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
  479. package/contracts/shared/IKeyValueStore.sol +54 -0
  480. package/contracts/{instance/base → shared}/ILifecycle.sol +6 -5
  481. package/contracts/shared/INftOwnable.sol +25 -0
  482. package/contracts/shared/IPolicyHolder.sol +35 -0
  483. package/contracts/shared/IRegisterable.sol +24 -9
  484. package/contracts/shared/IRegistryLinked.sol +11 -0
  485. package/contracts/shared/IService.sol +23 -0
  486. package/contracts/shared/InitializableERC165.sol +35 -0
  487. package/contracts/shared/InstanceLinkedComponent.sol +195 -0
  488. package/contracts/shared/KeyValueStore.sol +131 -0
  489. package/contracts/shared/Lifecycle.sol +88 -0
  490. package/contracts/shared/NftIdSet.sol +65 -0
  491. package/contracts/shared/NftOwnable.sol +127 -0
  492. package/contracts/shared/PolicyHolder.sol +62 -0
  493. package/contracts/shared/Registerable.sol +51 -62
  494. package/contracts/shared/RegistryLinked.sol +38 -0
  495. package/contracts/shared/Service.sol +67 -0
  496. package/contracts/shared/TokenHandler.sol +342 -0
  497. package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
  498. package/contracts/staking/IStaking.sol +179 -0
  499. package/contracts/staking/IStakingService.sol +172 -0
  500. package/contracts/staking/Staking.sol +546 -0
  501. package/contracts/staking/StakingLib.sol +281 -0
  502. package/contracts/staking/StakingLifecycle.sol +23 -0
  503. package/contracts/staking/StakingManager.sol +52 -0
  504. package/contracts/staking/StakingReader.sol +180 -0
  505. package/contracts/staking/StakingService.sol +464 -0
  506. package/contracts/staking/StakingServiceManager.sol +45 -0
  507. package/contracts/staking/StakingStore.sol +606 -0
  508. package/contracts/staking/TargetManagerLib.sol +211 -0
  509. package/contracts/{types → type}/AddressSet.sol +1 -1
  510. package/contracts/type/Amount.sol +150 -0
  511. package/contracts/{types → type}/Blocknumber.sol +27 -3
  512. package/contracts/type/ClaimId.sol +80 -0
  513. package/contracts/type/DistributorType.sol +55 -0
  514. package/contracts/type/Fee.sol +66 -0
  515. package/contracts/{types → type}/Key32.sol +10 -5
  516. package/contracts/type/Key32Set.sol +62 -0
  517. package/contracts/{types → type}/NftId.sol +28 -15
  518. package/contracts/type/NftIdSet.sol +62 -0
  519. package/contracts/type/ObjectType.sol +307 -0
  520. package/contracts/type/PayoutId.sol +82 -0
  521. package/contracts/type/Referral.sol +90 -0
  522. package/contracts/type/RequestId.sol +75 -0
  523. package/contracts/type/RiskId.sol +75 -0
  524. package/contracts/type/RoleId.sol +180 -0
  525. package/contracts/type/Seconds.sol +101 -0
  526. package/contracts/type/Selector.sol +107 -0
  527. package/contracts/{types → type}/StateId.sol +53 -5
  528. package/contracts/type/String.sol +53 -0
  529. package/contracts/{types → type}/Timestamp.sol +37 -19
  530. package/contracts/{types → type}/UFixed.sol +72 -19
  531. package/contracts/{types → type}/Version.sol +61 -6
  532. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  533. package/contracts/upgradeability/ProxyManager.sol +234 -0
  534. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +2 -4
  535. package/contracts/upgradeability/Versionable.sol +62 -0
  536. package/package.json +13 -8
  537. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  538. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -213
  539. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  540. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -445
  541. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  542. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -177
  543. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  544. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -343
  545. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  546. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -474
  547. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  548. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -373
  549. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  550. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -602
  551. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  552. package/artifacts/contracts/components/Product.sol/Product.json +0 -502
  553. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  554. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  555. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  556. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  557. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  558. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  559. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  560. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  561. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  562. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  563. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  564. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  565. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  566. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  567. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  568. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  569. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  570. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  571. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  572. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  573. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  574. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  575. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  576. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  577. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  578. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  579. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  580. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  581. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  582. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  583. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  584. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  585. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  586. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  587. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  588. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  589. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  590. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  591. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  592. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  593. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  594. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -344
  595. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  596. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  597. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  598. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  599. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  600. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  601. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  602. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  603. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  604. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  605. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  606. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  607. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  608. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -297
  609. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  610. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  611. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -297
  612. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  613. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  614. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  615. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  616. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -117
  617. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.dbg.json +0 -4
  618. package/artifacts/contracts/instance/module/distribution/DistributionModule.sol/DistributionModule.json +0 -10
  619. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistribution.dbg.json +0 -4
  620. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.dbg.json +0 -4
  621. package/artifacts/contracts/instance/module/distribution/IDistribution.sol/IDistributionModule.json +0 -10
  622. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  623. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  624. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -284
  625. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  626. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -284
  627. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  628. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  629. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  630. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -164
  631. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  632. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -164
  633. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  634. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  635. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -113
  636. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  637. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -131
  638. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  639. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  640. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  641. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -638
  642. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  643. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  644. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  645. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -638
  646. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  647. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -690
  648. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  649. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -526
  650. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  651. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  652. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -369
  653. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  654. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -484
  655. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  656. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  657. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -649
  658. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  659. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -964
  660. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  661. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -457
  662. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  663. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.dbg.json +0 -4
  664. package/artifacts/contracts/registry/RegistryInstaller.sol/RegistryInstaller.json +0 -344
  665. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  666. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  667. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  668. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  669. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  670. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  671. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -310
  672. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  673. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  674. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  675. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  676. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.dbg.json +0 -4
  677. package/artifacts/contracts/test/TestDistribution.sol/TestDistribution.json +0 -445
  678. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  679. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  680. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  681. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -602
  682. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  683. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -632
  684. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  685. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -191
  686. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  687. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  688. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  689. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -472
  690. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  691. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  692. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  693. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  694. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  695. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -270
  696. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  697. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  698. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  699. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  700. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  701. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  702. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  703. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  704. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  705. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  706. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  707. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  708. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  709. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  710. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  711. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  712. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  713. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  714. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.dbg.json +0 -4
  715. package/artifacts/contracts/types/ReferralId.sol/ReferralIdLib.json +0 -99
  716. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  717. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  718. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  719. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  720. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  721. package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
  722. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  723. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  724. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  725. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  726. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  727. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  728. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  729. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  730. package/contracts/components/BaseComponent.sol +0 -79
  731. package/contracts/components/Distribution.sol +0 -155
  732. package/contracts/components/IBaseComponent.sol +0 -19
  733. package/contracts/components/IDistributionComponent.sol +0 -47
  734. package/contracts/components/IPoolComponent.sol +0 -65
  735. package/contracts/components/IProductComponent.sol +0 -39
  736. package/contracts/components/Pool.sol +0 -246
  737. package/contracts/components/Product.sol +0 -299
  738. package/contracts/experiment/errors/Require.sol +0 -38
  739. package/contracts/experiment/errors/Revert.sol +0 -44
  740. package/contracts/experiment/inheritance/A.sol +0 -53
  741. package/contracts/experiment/inheritance/B.sol +0 -28
  742. package/contracts/experiment/inheritance/C.sol +0 -34
  743. package/contracts/experiment/inheritance/IA.sol +0 -13
  744. package/contracts/experiment/inheritance/IB.sol +0 -10
  745. package/contracts/experiment/inheritance/IC.sol +0 -12
  746. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  747. package/contracts/experiment/statemachine/ISM.sol +0 -25
  748. package/contracts/experiment/statemachine/SM.sol +0 -57
  749. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  750. package/contracts/experiment/types/TypeA.sol +0 -47
  751. package/contracts/experiment/types/TypeB.sol +0 -29
  752. package/contracts/instance/IInstanceLinked.sol +0 -8
  753. package/contracts/instance/base/ComponentServiceBase.sol +0 -49
  754. package/contracts/instance/base/IInstanceBase.sol +0 -23
  755. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  756. package/contracts/instance/base/IService.sol +0 -15
  757. package/contracts/instance/base/InstanceBase.sol +0 -89
  758. package/contracts/instance/base/KeyValueStore.sol +0 -161
  759. package/contracts/instance/base/Lifecycle.sol +0 -100
  760. package/contracts/instance/base/ModuleBase.sol +0 -57
  761. package/contracts/instance/base/ServiceBase.sol +0 -43
  762. package/contracts/instance/module/access/Access.sol +0 -149
  763. package/contracts/instance/module/access/IAccess.sol +0 -53
  764. package/contracts/instance/module/bundle/BundleModule.sol +0 -134
  765. package/contracts/instance/module/bundle/IBundle.sol +0 -53
  766. package/contracts/instance/module/component/ComponentModule.sol +0 -71
  767. package/contracts/instance/module/component/IComponent.sol +0 -28
  768. package/contracts/instance/module/distribution/DistributionModule.sol +0 -17
  769. package/contracts/instance/module/distribution/IDistribution.sol +0 -10
  770. package/contracts/instance/module/policy/IPolicy.sol +0 -63
  771. package/contracts/instance/module/policy/PolicyModule.sol +0 -91
  772. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  773. package/contracts/instance/module/pool/PoolModule.sol +0 -95
  774. package/contracts/instance/module/risk/IRisk.sol +0 -26
  775. package/contracts/instance/module/risk/RiskModule.sol +0 -62
  776. package/contracts/instance/module/treasury/ITreasury.sol +0 -84
  777. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  778. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -131
  779. package/contracts/instance/service/ComponentOwnerService.sol +0 -272
  780. package/contracts/instance/service/DistributionService.sol +0 -54
  781. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  782. package/contracts/instance/service/IDistributionService.sol +0 -12
  783. package/contracts/instance/service/IPoolService.sol +0 -37
  784. package/contracts/instance/service/IProductService.sol +0 -107
  785. package/contracts/instance/service/PoolService.sol +0 -149
  786. package/contracts/instance/service/ProductService.sol +0 -509
  787. package/contracts/registry/IChainNft.sol +0 -22
  788. package/contracts/registry/IRegistryLinked.sol +0 -8
  789. package/contracts/registry/RegistryInstaller.sol +0 -100
  790. package/contracts/shared/ERC165.sol +0 -21
  791. package/contracts/shared/IOwnable.sol +0 -6
  792. package/contracts/shared/ProxyManager.sol +0 -115
  793. package/contracts/shared/Versionable.sol +0 -147
  794. package/contracts/test/TestDistribution.sol +0 -22
  795. package/contracts/test/TestFee.sol +0 -25
  796. package/contracts/test/TestPool.sol +0 -27
  797. package/contracts/test/TestProduct.sol +0 -74
  798. package/contracts/test/TestRegisterable.sol +0 -18
  799. package/contracts/test/TestRoleId.sol +0 -14
  800. package/contracts/test/TestService.sol +0 -26
  801. package/contracts/test/TestVersion.sol +0 -44
  802. package/contracts/test/TestVersionable.sol +0 -17
  803. package/contracts/test/Usdc.sol +0 -26
  804. package/contracts/types/ChainId.sol +0 -38
  805. package/contracts/types/Fee.sol +0 -56
  806. package/contracts/types/NftIdSet.sol +0 -60
  807. package/contracts/types/ObjectType.sol +0 -131
  808. package/contracts/types/ReferralId.sol +0 -48
  809. package/contracts/types/RiskId.sol +0 -43
  810. package/contracts/types/RoleId.sol +0 -38
@@ -0,0 +1,130 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {LibNftIdSet} from "../type/NftIdSet.sol";
5
+ import {NftId, NftIdLib} from "../type/NftId.sol";
6
+ import {Key32} from "../type/Key32.sol";
7
+ import {BUNDLE} from "../type/ObjectType.sol";
8
+
9
+ import {ObjectSet} from "./base/ObjectSet.sol";
10
+ import {ObjectSetHelperLib} from "./base/ObjectSetHelperLib.sol";
11
+
12
+ contract BundleSet is
13
+ ObjectSet
14
+ {
15
+ using LibNftIdSet for LibNftIdSet.Set;
16
+
17
+ event LogBundleSetPolicyLinked(NftId bundleNftId, NftId policyNftId);
18
+ event LogBundleSetPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
19
+
20
+ event LogBundleSetBundleAdded(NftId poolNftId, NftId bundleNftId);
21
+ event LogBundleSetBundleUnlocked(NftId poolNftId, NftId bundleNftId);
22
+ event LogBundleSetBundleLocked(NftId poolNftId, NftId bundleNftId);
23
+ event LogBundleSetBundleClosed(NftId poolNftId, NftId bundleNftId);
24
+
25
+ error ErrorBundleSetPolicyAlreadyActivated(NftId policyNftId);
26
+ error ErrorBundleSetBundleLocked(NftId bundleNftId, NftId policyNftId);
27
+ error ErrorBundleSetPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
28
+ error ErrorBundleSetPolicyNotCloseable(NftId policyNftId);
29
+ error ErrorBundleSetBundleUnknown(NftId bundleNftId);
30
+ error ErrorBundleSetBundleNotRegistered(NftId bundleNftId);
31
+
32
+ mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
33
+
34
+ /// @dev links a policy to its bundle
35
+ function linkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
36
+
37
+ // ensure bundle is unlocked (in active set) and registered with this instance
38
+ if (!_isActive(poolNftId, _toBundleKey32(bundleNftId))) {
39
+ revert ErrorBundleSetBundleLocked(bundleNftId, policyNftId);
40
+ }
41
+
42
+ _activePolicies[bundleNftId].add(policyNftId);
43
+ emit LogBundleSetPolicyLinked(bundleNftId, policyNftId);
44
+ }
45
+
46
+
47
+ /// @dev unlinks a policy from its bundle
48
+ function unlinkPolicy(NftId poolNftId, NftId bundleNftId, NftId policyNftId) external restricted() {
49
+
50
+ // ensure bundle is registered with this instance
51
+ if (!_contains(poolNftId, _toBundleKey32(bundleNftId))) {
52
+ revert ErrorBundleSetBundleUnknown(bundleNftId);
53
+ }
54
+
55
+ _activePolicies[bundleNftId].remove(policyNftId);
56
+ emit LogBundleSetPolicyUnlinked(bundleNftId, policyNftId);
57
+ }
58
+
59
+
60
+ /// @dev add a new bundle to a pool registerd with this instance
61
+ // the corresponding pool is fetched via instance reader
62
+ function add(NftId bundleNftId) external restricted() {
63
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
64
+
65
+ // ensure pool is registered with instance
66
+ if(poolNftId.eqz()) {
67
+ revert ErrorBundleSetBundleNotRegistered(bundleNftId);
68
+ }
69
+
70
+ _add(poolNftId, _toBundleKey32(bundleNftId));
71
+ emit LogBundleSetBundleAdded(poolNftId, bundleNftId);
72
+ }
73
+
74
+
75
+ /// @dev unlocked (active) bundles are available to collateralize new policies
76
+ function unlock(NftId bundleNftId) external restricted() {
77
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
78
+ _activate(poolNftId, _toBundleKey32(bundleNftId));
79
+ emit LogBundleSetBundleUnlocked(poolNftId, bundleNftId);
80
+ }
81
+
82
+ /// @dev locked (deactivated) bundles may not collateralize any new policies
83
+ function lock(NftId bundleNftId) external restricted() {
84
+ NftId poolNftId = ObjectSetHelperLib.getPoolNftId(_instanceAddress, bundleNftId);
85
+ _deactivate(poolNftId, _toBundleKey32(bundleNftId));
86
+ emit LogBundleSetBundleLocked(poolNftId, bundleNftId);
87
+ }
88
+
89
+
90
+ function checkBundle(NftId productNftId, NftId bundleId)
91
+ public
92
+ view
93
+ returns (bool exists, bool active)
94
+ {
95
+ Key32 bundleKey32 = bundleId.toKey32(BUNDLE());
96
+ exists = _contains(productNftId, bundleKey32);
97
+
98
+ if (exists) {
99
+ active = _isActive(productNftId, bundleKey32);
100
+ }
101
+ }
102
+
103
+ function bundles(NftId poolNftId) external view returns(uint256) {
104
+ return _objects(poolNftId);
105
+ }
106
+
107
+ function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
108
+ return NftIdLib.toNftId(_getObject(poolNftId, idx).toKeyId());
109
+ }
110
+
111
+ function activeBundles(NftId poolNftId) external view returns(uint256) {
112
+ return _activeObjs(poolNftId);
113
+ }
114
+
115
+ function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId) {
116
+ return NftIdLib.toNftId(_getActiveObject(poolNftId, idx).toKeyId());
117
+ }
118
+
119
+ function activePolicies(NftId bundleNftId) external view returns(uint256) {
120
+ return _activePolicies[bundleNftId].size();
121
+ }
122
+
123
+ function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
124
+ return _activePolicies[bundleNftId].getElementAt(idx);
125
+ }
126
+
127
+ function _toBundleKey32(NftId nftId) private pure returns (Key32) {
128
+ return nftId.toKey32(BUNDLE());
129
+ }
130
+ }
@@ -1,54 +1,139 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {IERC165} from "@openzeppelin5/contracts/utils/introspection/IERC165.sol";
5
-
6
- import {IVersionable} from "../shared/IVersionable.sol";
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {BundleSet} from "./BundleSet.sol";
6
+ import {RiskSet} from "./RiskSet.sol";
7
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
8
+ import {InstanceReader} from "./InstanceReader.sol";
9
+ import {InstanceStore} from "./InstanceStore.sol";
7
10
  import {IRegisterable} from "../shared/IRegisterable.sol";
8
- import {IOwnable} from "../shared/IOwnable.sol";
9
- import {RoleId} from "../types/RoleId.sol";
10
-
11
- import {IAccessModule} from "./module/access/IAccess.sol";
12
- import {IBundleModule} from "./module/bundle/IBundle.sol";
13
- import {IDistributionModule} from "./module/distribution/IDistribution.sol";
14
- import {IComponentModule} from "./module/component/IComponent.sol";
15
- import {IPolicyModule} from "./module/policy/IPolicy.sol";
16
- import {IPoolModule} from "./module/pool/IPoolModule.sol";
17
- import {IRiskModule} from "./module/risk/IRisk.sol";
18
- import {ITreasuryModule} from "./module/treasury/ITreasury.sol";
19
-
20
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
21
- import {IRegistry} from "../registry/IRegistryLinked.sol";
22
-
23
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
24
- import {IDistributionService} from "./service/IDistributionService.sol";
25
- import {IProductService} from "./service/IProductService.sol";
26
- import {IPoolService} from "./service/IPoolService.sol";
27
- import {IInstanceBase} from "./base/IInstanceBase.sol";
28
-
29
- // solhint-disable-next-line no-empty-blocks
30
- interface IInstance is
31
- IERC165,
32
- IVersionable,
33
- IRegisterable,
34
- IAccessModule,
35
- IPolicyModule,
36
- IPoolModule,
37
- IRiskModule,
38
- IBundleModule,
39
- IComponentModule,
40
- ITreasuryModule,
41
- IDistributionModule,
42
- IInstanceBase
11
+ import {NftId} from "../type/NftId.sol";
12
+ import {RoleId} from "../type/RoleId.sol";
13
+ import {Seconds} from "../type/Seconds.sol";
14
+ import {UFixed} from "../type/UFixed.sol";
15
+
16
+
17
+ interface IInstance is
18
+ IRegisterable
43
19
  {
44
- function getRegistry() external view override (IPolicyModule, IRegisterable) returns (IRegistry registry);
45
- function getOwner() external view override (IOwnable, IAccessModule) returns(address owner);
20
+ // role handling
21
+ event LogInstanceCustomRoleCreated(RoleId roleId, string roleName, RoleId adminRoleId, uint32 maxMemberCount);
22
+ event LogInstanceCustomRoleActiveSet(RoleId roleId, bool active, address caller);
23
+ event LogInstanceCustomRoleGranted(RoleId roleId, address account, address caller);
24
+ event LogInstanceCustomRoleRevoked(RoleId roleId, address account, address caller);
25
+
26
+ // target handling
27
+ event LogInstanceCustomTargetCreated(address target, RoleId targetRoleId, string name);
28
+ event LogInstanceTargetLocked(address target, bool locked);
29
+ event LogInstanceCustomTargetFunctionRoleSet(address target, bytes4[] selectors, RoleId roleId);
30
+
31
+ // modifier is onlyRoleAdmin
32
+ error ErrorInstanceNotCustomRole(RoleId roleId);
33
+ error ErrorInstanceNotRoleAdmin(RoleId roleId, address account);
34
+
35
+ error ErrorInstanceInstanceAdminZero();
36
+ error ErrorInstanceInstanceAdminAlreadySet(address instanceAdmin);
37
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
38
+
39
+ error ErrorInstanceBundleSetAlreadySet(address instanceBundleSet);
40
+ error ErrorInstanceBundleSetInstanceMismatch(address instance);
41
+ error ErrorInstanceBundleSetAuthorityMismatch(address instanceAuthority);
42
+
43
+ error ErrorInstanceRiskSetAlreadySet(address instanceRiskSet);
44
+ error ErrorInstanceRiskSetInstanceMismatch(address instance);
45
+ error ErrorInstanceRiskSetAuthorityMismatch(address instanceAuthority);
46
+
47
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
48
+
49
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
50
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
51
+
52
+ struct InstanceInfo {
53
+ uint64 requestsCount;
54
+ }
55
+
56
+ ///--- instance ---------------------------------------------------------//
57
+
58
+ /// @dev Locks/unlocks the complete instance, including all its components.
59
+ function setInstanceLocked(bool locked) external;
60
+
61
+ /// @dev Upgrades the instance reader to the specified target.
62
+ function upgradeInstanceReader() external;
63
+
64
+ /// @dev Sets the instance reader for the instance.
65
+ /// Permissioned: only the instance service may call this function.
66
+ function setInstanceReader(InstanceReader instanceReader) external;
67
+
68
+ ///--- staking ----------------------------------------------------------//
69
+
70
+ /// @dev Sets the duration for locking new stakes on this instance..
71
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
72
+
73
+ /// @dev Sets the staking reward rate [apr] for this instance.
74
+ function setStakingRewardRate(UFixed rewardRate) external;
75
+
76
+ /// @dev Sets the maximum staked amount for this instance.
77
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
78
+
79
+ /// @dev Refills the staking reward reserves for the specified target.
80
+ function refillStakingRewardReserves(Amount dipAmount) external;
81
+
82
+ /// @dev Defunds the staking reward reserves for the specified target.
83
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
84
+
85
+ ///--- product/component ------------------------------------------------//
86
+
87
+ /// @dev Locks/unlocks the specified target.
88
+ function setTargetLocked(address target, bool locked) external;
89
+
90
+ /// @dev Register a product with the instance.
91
+ function registerProduct(address product, address token) external returns (NftId productNftId);
92
+
93
+ ///--- authz ------------------------------------------------------------//
94
+
95
+ /// @dev Creates a new custom role for the calling instance.
96
+ /// Custom roles are intended to be used for access control of custom components and its helper contracts.
97
+ /// Custom roles are not intended to be used as target roles for custom contracts.
98
+ function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
99
+
100
+ /// @dev Activates/deactivates the specified role.
101
+ /// Only instance owner or account with role admin role can call this function.
102
+ function setRoleActive(RoleId roleId, bool active) external;
103
+
104
+ /// @dev Grants the specified role to the account.
105
+ /// Only active roles can be granted.
106
+ /// Only instance owner or account with role admin role can call this function.
107
+ function grantRole(RoleId roleId, address account) external;
108
+
109
+ /// @dev Revokes the specified role from the account.
110
+ /// Only instance owner or account with role admin role can call this function.
111
+ function revokeRole(RoleId roleId, address account) external;
112
+
113
+ /// @dev Creates a new custom target.
114
+ /// Custom targets are intended to be used for access control helper contracts of components.
115
+ /// Custom targets are not intended to be used for components.
116
+ function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
117
+
118
+ function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
119
+
120
+ //--- getters -----------------------------------------------------------//
121
+
122
+ /// @dev returns the overall locking state of the instance (including all components)
123
+ function isInstanceLocked() external view returns (bool isLocked);
46
124
 
47
- function getKeyValueStore() external view override (IInstanceBase) returns (IKeyValueStore keyValueStore);
125
+ /// @dev returns the locking state of the specified target
126
+ function isTargetLocked(address target) external view returns (bool isLocked);
48
127
 
49
- function getComponentOwnerService() external view override (IInstanceBase, IComponentModule, IPoolModule, ITreasuryModule) returns(IComponentOwnerService);
50
- function getDistributionService() external view override returns(IDistributionService);
51
- function getProductService() external view override (IInstanceBase, IBundleModule, IPolicyModule) returns(IProductService);
52
- function getPoolService() external view override (IInstanceBase, IBundleModule, IPoolModule) returns(IPoolService);
128
+ // get products
129
+ function products() external view returns (uint256 productCount);
130
+ function getProductNftId(uint256 idx) external view returns (NftId productNftId);
53
131
 
54
- }
132
+ // get supporting contracts
133
+ function getInstanceReader() external view returns (InstanceReader);
134
+ function getBundleSet() external view returns (BundleSet);
135
+ function getRiskSet() external view returns (RiskSet);
136
+ function getInstanceAdmin() external view returns (InstanceAdmin);
137
+ function getInstanceStore() external view returns (InstanceStore);
138
+ function isTokenRegistryDisabled() external view returns (bool);
139
+ }
@@ -0,0 +1,105 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {IInstance} from "./IInstance.sol";
6
+ import {IService} from "../shared/IService.sol";
7
+ import {NftId} from "../type/NftId.sol";
8
+ import {ObjectType} from "../type/ObjectType.sol";
9
+ import {RoleId} from "../type/RoleId.sol";
10
+ import {Seconds} from "../type/Seconds.sol";
11
+ import {UFixed} from "../type/UFixed.sol";
12
+ import {VersionPart} from "../type/Version.sol";
13
+
14
+ interface IInstanceService is IService {
15
+
16
+ // onlyInstance
17
+ error ErrorInstanceServiceNotRegistered(address instance);
18
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
19
+ error ErrorInstanceServiceInstanceVersionMismatch(NftId instanceNftId, VersionPart expectedRelease, VersionPart instanceRelease);
20
+
21
+ error ErrorInstanceServiceComponentNotInstanceLinked(address component);
22
+
23
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
24
+ error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
25
+ error ErrorInstanceServiceMasterBundleSetAlreadySet();
26
+ error ErrorInstanceServiceMasterRiskSetAlreadySet();
27
+ error ErrorInstanceServiceInstanceAddressZero();
28
+
29
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
30
+ error ErrorInstanceServiceInstanceReaderAddressZero();
31
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
32
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
33
+
34
+ error ErrorInstanceServiceAccessManagerZero();
35
+ error ErrorInstanceServiceInstanceAdminZero();
36
+ error ErrorInstanceServiceInstanceReaderZero();
37
+ error ErrorInstanceServiceBundleSetZero();
38
+ error ErrorInstanceServiceRiskSetZero();
39
+ error ErrorInstanceServiceInstanceStoreZero();
40
+
41
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
42
+ error ErrorInstanceServiceBundleSetAuthorityMismatch();
43
+ error ErrorInstanceServiceRiskSetAuthorityMismatch();
44
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
45
+ error ErrorInstanceServiceBundleSetInstanceMismatch();
46
+ error ErrorInstanceServiceRiskSetInstanceMismatch();
47
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
48
+
49
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
50
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
51
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
52
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
53
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
54
+
55
+ event LogInstanceCloned(NftId instanceNftId, address instance);
56
+
57
+ /// @dev Creates a new custom role for the calling instance.
58
+ function createRole(string memory roleName, RoleId adminRoleId, uint32 maxMemberCount) external returns (RoleId roleId);
59
+
60
+ /// @dev Sets the specified custom role as active or inactive for the calling instance.
61
+ function setRoleActive(RoleId roleId, bool active) external;
62
+
63
+ /// @dev Grants the specified custom role to the specified account for the calling instance.
64
+ function grantRole(RoleId roleId, address account) external;
65
+
66
+ /// @dev Revokes the specified custom role from the specified account for the calling instance.
67
+ function revokeRole(RoleId roleId, address account) external;
68
+
69
+ /// @dev Creates a new custom target for the calling instance.
70
+ /// All custom trargets are created with a corresponding contract role.
71
+ function createTarget(address target, string memory name) external returns (RoleId contractRoleId);
72
+
73
+ /// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
74
+ function setTargetLocked(address target, bool locked) external;
75
+
76
+ /// @dev Locks the complete instance, including all its components.
77
+ function setInstanceLocked(bool locked) external;
78
+
79
+ /// @dev Creates a new instance.
80
+ /// The caller becomes the owner of the new instance.
81
+ /// Creation of a new instance is achieved by this service through the creation and registration
82
+ /// of a new clone of the master instance and then setting up the initial wiring and authorization
83
+ /// of the necessary components.
84
+ /// @param allowAnyToken specifies whether the new instance is allowed to use any token or
85
+ /// only tokens that are registered in the `TokenRegistry`. Use of tokens **not** registered in the
86
+ /// `TokenRegistry` may result in problems with token handline and is therefor not recommended. The
87
+ /// use of such instances **is not supported** by Etherisc.
88
+ function createInstance(bool allowAnyToken)
89
+ external
90
+ returns (
91
+ IInstance instance,
92
+ NftId instanceNftId
93
+ );
94
+
95
+ function upgradeInstanceReader() external;
96
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external;
97
+
98
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
99
+ function setStakingRewardRate(UFixed rewardRate) external;
100
+ function setStakingMaxAmount(Amount maxStakedAmount) external;
101
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
102
+
103
+ /// @dev Defunds the staking reward reserves for the specified target.
104
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
105
+ }