@etherisc/gif-next 0.0.2-f08d150-296 → 0.0.2-f1fe735-758

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 (678) hide show
  1. package/README.md +267 -24
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +709 -0
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +285 -1486
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +769 -0
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +489 -1720
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1701 -0
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1220 -0
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +758 -0
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3597 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  40. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  41. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
  42. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  43. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  44. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  45. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  46. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  47. package/artifacts/contracts/instance/module/{access/IAccess.sol/IAccess.json → IComponents.sol/IComponents.json} +2 -2
  48. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  49. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  50. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  51. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  52. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  53. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  54. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  55. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  56. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  57. package/artifacts/contracts/{instance/base/ModuleBase.sol/ModuleBase.json → oracle/IOracle.sol/IOracle.json} +2 -2
  58. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
  60. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  62. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  63. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  64. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  65. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  66. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  68. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  69. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  70. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  72. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  73. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  74. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  75. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
  76. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  77. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  78. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  79. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  80. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  81. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  82. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  83. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  84. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  85. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  86. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  88. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  90. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  92. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +256 -221
  94. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  95. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  96. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  97. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  98. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  99. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  100. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  101. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
  102. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  103. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
  104. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  105. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  106. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  108. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  109. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  110. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  112. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  113. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  114. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  115. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  116. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  118. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  120. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  122. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  123. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  124. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  126. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  127. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  128. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  129. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  130. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  131. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
  132. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  133. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  134. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  135. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  136. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  137. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  138. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  139. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1177 -0
  140. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  141. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  142. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  143. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +206 -0
  144. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  145. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  146. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  147. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
  148. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  149. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  150. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  151. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  152. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  153. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  154. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  155. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  156. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  158. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  159. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  160. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
  162. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  163. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
  164. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  165. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  166. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  168. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  169. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
  170. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  172. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  173. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  174. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  175. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  176. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  177. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  178. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  179. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  180. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  181. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +104 -141
  182. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  183. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  184. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  185. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  186. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  187. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  188. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  189. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  190. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  191. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  192. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  193. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +163 -143
  194. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  196. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  197. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  198. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  199. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  200. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  201. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  202. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  203. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  204. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  205. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  206. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  207. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  208. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  209. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  210. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  211. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  212. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  213. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  214. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  215. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  216. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  217. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  218. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  219. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  220. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  221. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  222. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  224. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  225. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  226. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  227. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  228. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  229. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  230. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  232. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  233. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  234. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  236. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  237. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  238. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  240. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  242. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  244. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  245. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  246. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  247. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  248. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  250. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  252. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  254. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  256. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  258. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  260. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  262. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  263. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  264. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
  266. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  268. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  270. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  272. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  274. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
  276. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  278. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  280. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  282. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  284. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  286. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  288. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  290. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  291. package/artifacts/contracts/{types/UFixed.sol/UFixedMathLib.json → type/UFixed.sol/UFixedLib.json} +4 -4
  292. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  294. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  296. package/contracts/distribution/Distribution.sol +261 -0
  297. package/contracts/distribution/DistributionService.sol +297 -0
  298. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  299. package/contracts/distribution/IDistributionComponent.sol +66 -0
  300. package/contracts/distribution/IDistributionService.sol +81 -0
  301. package/contracts/instance/BundleManager.sol +126 -0
  302. package/contracts/instance/IInstance.sol +79 -44
  303. package/contracts/instance/IInstanceService.sol +97 -0
  304. package/contracts/instance/Instance.sol +247 -52
  305. package/contracts/instance/InstanceAdmin.sol +331 -0
  306. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  307. package/contracts/instance/InstanceReader.sol +392 -0
  308. package/contracts/instance/InstanceService.sol +439 -0
  309. package/contracts/instance/InstanceServiceManager.sol +44 -0
  310. package/contracts/instance/InstanceStore.sol +272 -0
  311. package/contracts/instance/base/BalanceStore.sol +123 -0
  312. package/contracts/instance/base/Cloneable.sol +28 -0
  313. package/contracts/instance/base/ObjectCounter.sol +21 -0
  314. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  315. package/contracts/instance/base/ObjectManager.sol +80 -0
  316. package/contracts/instance/module/IAccess.sol +46 -0
  317. package/contracts/instance/module/IBundle.sol +20 -0
  318. package/contracts/instance/module/IComponents.sol +52 -0
  319. package/contracts/instance/module/IDistribution.sol +42 -0
  320. package/contracts/instance/module/IPolicy.sol +84 -0
  321. package/contracts/instance/module/IRisk.sol +11 -0
  322. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  323. package/contracts/oracle/IOracle.sol +20 -0
  324. package/contracts/oracle/IOracleComponent.sol +32 -0
  325. package/contracts/oracle/IOracleService.sol +65 -0
  326. package/contracts/oracle/Oracle.sol +145 -0
  327. package/contracts/oracle/OracleService.sol +278 -0
  328. package/contracts/oracle/OracleServiceManager.sol +42 -0
  329. package/contracts/pool/BundleService.sol +296 -0
  330. package/contracts/pool/BundleServiceManager.sol +42 -0
  331. package/contracts/pool/IBundleService.sol +106 -0
  332. package/contracts/pool/IPoolComponent.sol +112 -0
  333. package/contracts/pool/IPoolService.sol +150 -0
  334. package/contracts/pool/Pool.sol +299 -0
  335. package/contracts/pool/PoolService.sol +452 -0
  336. package/contracts/pool/PoolServiceManager.sol +42 -0
  337. package/contracts/product/ApplicationService.sol +254 -0
  338. package/contracts/product/ApplicationServiceManager.sol +38 -0
  339. package/contracts/product/ClaimService.sol +442 -0
  340. package/contracts/product/ClaimServiceManager.sol +38 -0
  341. package/contracts/product/IApplicationService.sol +62 -0
  342. package/contracts/product/IClaimService.sol +99 -0
  343. package/contracts/product/IPolicyService.sol +78 -0
  344. package/contracts/product/IPricingService.sol +39 -0
  345. package/contracts/product/IProductComponent.sol +42 -0
  346. package/contracts/product/IProductService.sol +33 -0
  347. package/contracts/product/PolicyService.sol +475 -0
  348. package/contracts/product/PolicyServiceManager.sol +42 -0
  349. package/contracts/product/PricingService.sol +300 -0
  350. package/contracts/product/PricingServiceManager.sol +42 -0
  351. package/contracts/product/Product.sol +377 -0
  352. package/contracts/product/ProductService.sol +124 -0
  353. package/contracts/product/ProductServiceManager.sol +42 -0
  354. package/contracts/registry/ChainNft.sol +95 -37
  355. package/contracts/registry/IRegistry.sol +95 -28
  356. package/contracts/registry/IRegistryService.sol +69 -0
  357. package/contracts/registry/IServiceAuthorization.sol +38 -0
  358. package/contracts/registry/ITransferInterceptor.sol +7 -0
  359. package/contracts/registry/Registry.sol +482 -281
  360. package/contracts/registry/RegistryAdmin.sol +335 -0
  361. package/contracts/registry/RegistryService.sol +266 -0
  362. package/contracts/registry/RegistryServiceManager.sol +53 -0
  363. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  364. package/contracts/registry/ReleaseManager.sol +503 -0
  365. package/contracts/registry/ServiceAuthorization.sol +90 -0
  366. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  367. package/contracts/registry/TokenRegistry.sol +315 -0
  368. package/contracts/shared/AccessAdmin.sol +759 -0
  369. package/contracts/shared/AccessManagerCustom.sol +741 -0
  370. package/contracts/shared/AccessManagerExtended.sol +481 -0
  371. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  372. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  373. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  374. package/contracts/shared/Component.sol +281 -0
  375. package/contracts/shared/ComponentService.sol +620 -0
  376. package/contracts/shared/ComponentServiceManager.sol +35 -0
  377. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  378. package/contracts/shared/ERC165.sol +15 -9
  379. package/contracts/shared/IAccessAdmin.sol +168 -0
  380. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  381. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  382. package/contracts/shared/IComponent.sol +70 -0
  383. package/contracts/shared/IComponentService.sol +102 -0
  384. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  385. package/contracts/shared/IKeyValueStore.sol +54 -0
  386. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -5
  387. package/contracts/shared/INftOwnable.sol +23 -0
  388. package/contracts/shared/IPolicyHolder.sol +45 -0
  389. package/contracts/shared/IRegisterable.sol +10 -19
  390. package/contracts/shared/IRegistryLinked.sol +11 -0
  391. package/contracts/shared/IService.sol +25 -0
  392. package/contracts/shared/IVersionable.sol +38 -37
  393. package/contracts/shared/InitializableCustom.sol +177 -0
  394. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  395. package/contracts/shared/KeyValueStore.sol +131 -0
  396. package/contracts/shared/Lifecycle.sol +77 -0
  397. package/contracts/shared/NftIdSetManager.sol +65 -0
  398. package/contracts/shared/NftOwnable.sol +107 -0
  399. package/contracts/shared/PolicyHolder.sol +102 -0
  400. package/contracts/shared/ProxyManager.sol +199 -0
  401. package/contracts/shared/Registerable.sol +54 -65
  402. package/contracts/shared/RegistryLinked.sol +43 -0
  403. package/contracts/shared/Service.sol +83 -0
  404. package/contracts/shared/TokenHandler.sol +58 -0
  405. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  406. package/contracts/shared/Versionable.sol +38 -68
  407. package/contracts/staking/IStaking.sol +168 -0
  408. package/contracts/staking/IStakingService.sol +153 -0
  409. package/contracts/staking/StakeManagerLib.sol +231 -0
  410. package/contracts/staking/Staking.sol +513 -0
  411. package/contracts/staking/StakingLifecycle.sol +23 -0
  412. package/contracts/staking/StakingManager.sol +54 -0
  413. package/contracts/staking/StakingReader.sol +187 -0
  414. package/contracts/staking/StakingService.sol +411 -0
  415. package/contracts/staking/StakingServiceManager.sol +44 -0
  416. package/contracts/staking/StakingStore.sol +615 -0
  417. package/contracts/staking/TargetManagerLib.sol +207 -0
  418. package/contracts/{types → type}/AddressSet.sol +1 -1
  419. package/contracts/type/Amount.sol +128 -0
  420. package/contracts/{types → type}/Blocknumber.sol +21 -3
  421. package/contracts/type/ClaimId.sol +75 -0
  422. package/contracts/type/DistributorType.sol +55 -0
  423. package/contracts/type/Fee.sol +66 -0
  424. package/contracts/{types → type}/Key32.sol +8 -3
  425. package/contracts/{types → type}/NftId.sol +21 -15
  426. package/contracts/type/NftIdSet.sol +62 -0
  427. package/contracts/type/ObjectType.sol +241 -0
  428. package/contracts/type/PayoutId.sol +82 -0
  429. package/contracts/type/Referral.sol +89 -0
  430. package/contracts/type/RequestId.sol +75 -0
  431. package/contracts/type/RiskId.sol +43 -0
  432. package/contracts/type/RoleId.sol +201 -0
  433. package/contracts/type/Seconds.sol +81 -0
  434. package/contracts/type/Selector.sol +102 -0
  435. package/contracts/{types → type}/StateId.sol +39 -5
  436. package/contracts/type/String.sol +53 -0
  437. package/contracts/{types → type}/Timestamp.sol +27 -14
  438. package/contracts/{types → type}/UFixed.sol +129 -12
  439. package/contracts/{types → type}/Version.sol +15 -2
  440. package/package.json +11 -7
  441. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  442. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  443. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  444. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  445. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  446. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  447. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  448. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  449. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
  450. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  451. package/artifacts/contracts/components/Product.sol/Product.json +0 -305
  452. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  454. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  455. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  456. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  457. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  458. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  459. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  460. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  461. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  462. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  463. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  464. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  465. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  466. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  467. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  468. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  469. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  470. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  471. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  472. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  473. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  474. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  475. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  476. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  477. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  478. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  479. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  480. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  481. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  482. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  483. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  484. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  485. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  486. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  487. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  488. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  489. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  490. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
  491. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  492. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  493. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  495. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  496. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  497. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -692
  498. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  499. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  500. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  501. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  502. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  503. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  504. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  505. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  506. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  507. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  508. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  509. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
  510. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  511. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  512. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
  513. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  514. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  515. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  516. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  517. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  518. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  519. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  520. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
  521. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  522. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  523. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  524. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
  525. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  526. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  527. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
  528. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  529. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
  530. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  531. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  532. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  533. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
  534. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  535. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
  536. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  537. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  538. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  539. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  540. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  541. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  542. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  543. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  544. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
  545. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  547. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  548. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
  549. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  551. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  554. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  556. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  557. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  558. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  559. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  560. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  561. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  562. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  563. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  564. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  565. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  566. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  567. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
  568. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  569. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
  570. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  571. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  572. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  573. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  574. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  575. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  576. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  577. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  578. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  579. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  580. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  581. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  582. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  583. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  584. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  585. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  586. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  587. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  588. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  589. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  590. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  591. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  592. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  593. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  594. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  595. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  596. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  597. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  598. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  599. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  600. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  601. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  602. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  603. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  604. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  605. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  606. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  607. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  608. package/contracts/components/BaseComponent.sol +0 -88
  609. package/contracts/components/IBaseComponent.sol +0 -19
  610. package/contracts/components/IPoolComponent.sol +0 -57
  611. package/contracts/components/IProductComponent.sol +0 -19
  612. package/contracts/components/Pool.sol +0 -174
  613. package/contracts/components/Product.sol +0 -117
  614. package/contracts/experiment/errors/Require.sol +0 -38
  615. package/contracts/experiment/errors/Revert.sol +0 -44
  616. package/contracts/experiment/inheritance/A.sol +0 -53
  617. package/contracts/experiment/inheritance/B.sol +0 -28
  618. package/contracts/experiment/inheritance/C.sol +0 -34
  619. package/contracts/experiment/inheritance/IA.sol +0 -13
  620. package/contracts/experiment/inheritance/IB.sol +0 -10
  621. package/contracts/experiment/inheritance/IC.sol +0 -12
  622. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  623. package/contracts/experiment/statemachine/ISM.sol +0 -25
  624. package/contracts/experiment/statemachine/README.md +0 -112
  625. package/contracts/experiment/statemachine/SM.sol +0 -57
  626. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  627. package/contracts/experiment/types/TypeA.sol +0 -47
  628. package/contracts/experiment/types/TypeB.sol +0 -29
  629. package/contracts/instance/IInstanceLinked.sol +0 -8
  630. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  631. package/contracts/instance/base/IInstanceBase.sol +0 -14
  632. package/contracts/instance/base/IKeyValueStore.sol +0 -49
  633. package/contracts/instance/base/IService.sol +0 -15
  634. package/contracts/instance/base/InstanceBase.sol +0 -80
  635. package/contracts/instance/base/KeyValueStore.sol +0 -156
  636. package/contracts/instance/base/Lifecycle.sol +0 -95
  637. package/contracts/instance/base/ModuleBase.sol +0 -52
  638. package/contracts/instance/base/ServiceBase.sol +0 -37
  639. package/contracts/instance/module/access/Access.sol +0 -149
  640. package/contracts/instance/module/access/IAccess.sol +0 -53
  641. package/contracts/instance/module/bundle/BundleModule.sol +0 -136
  642. package/contracts/instance/module/bundle/IBundle.sol +0 -58
  643. package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
  644. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  645. package/contracts/instance/module/component/ComponentModule.sol +0 -95
  646. package/contracts/instance/module/component/IComponent.sol +0 -53
  647. package/contracts/instance/module/policy/IPolicy.sol +0 -60
  648. package/contracts/instance/module/policy/PolicyModule.sol +0 -76
  649. package/contracts/instance/module/pool/IPoolModule.sol +0 -41
  650. package/contracts/instance/module/pool/PoolModule.sol +0 -87
  651. package/contracts/instance/module/risk/IRisk.sol +0 -10
  652. package/contracts/instance/module/risk/RiskModule.sol +0 -8
  653. package/contracts/instance/module/treasury/ITreasury.sol +0 -103
  654. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  655. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
  656. package/contracts/instance/service/ComponentOwnerService.sol +0 -170
  657. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  658. package/contracts/instance/service/IPoolService.sol +0 -30
  659. package/contracts/instance/service/IProductService.sol +0 -58
  660. package/contracts/instance/service/PoolService.sol +0 -123
  661. package/contracts/instance/service/ProductService.sol +0 -354
  662. package/contracts/registry/IChainNft.sol +0 -21
  663. package/contracts/registry/IRegistryLinked.sol +0 -8
  664. package/contracts/shared/IOwnable.sol +0 -6
  665. package/contracts/test/TestFee.sol +0 -25
  666. package/contracts/test/TestPool.sol +0 -22
  667. package/contracts/test/TestProduct.sol +0 -44
  668. package/contracts/test/TestRegisterable.sol +0 -19
  669. package/contracts/test/TestRoleId.sol +0 -14
  670. package/contracts/test/TestService.sol +0 -32
  671. package/contracts/test/TestToken.sol +0 -26
  672. package/contracts/test/TestVersion.sol +0 -44
  673. package/contracts/test/TestVersionable.sol +0 -17
  674. package/contracts/types/ChainId.sol +0 -38
  675. package/contracts/types/Fee.sol +0 -51
  676. package/contracts/types/NftIdSet.sol +0 -60
  677. package/contracts/types/ObjectType.sol +0 -115
  678. package/contracts/types/RoleId.sol +0 -38
@@ -1,52 +1,87 @@
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 "@openzeppelin/contracts/utils/introspection/IERC165.sol";
4
+ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
5
5
 
6
- import {IVersionable} from "../shared/IVersionable.sol";
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {ClaimId} from "../type/ClaimId.sol";
8
+ import {DistributorType} from "../type/DistributorType.sol";
9
+ import {PayoutId} from "../type/PayoutId.sol";
10
+ import {NftId} from "../type/NftId.sol";
11
+ import {StateId} from "../type/StateId.sol";
12
+ import {ReferralId} from "../type/Referral.sol";
13
+ import {RiskId} from "../type/RiskId.sol";
14
+ import {VersionPart} from "../type/Version.sol";
15
+ import {Key32} from "../type/Key32.sol";
16
+ import {RoleId} from "../type/RoleId.sol";
17
+ import {Seconds} from "../type/Seconds.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
19
+
20
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
7
21
  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 {ICompensationModule} from "./module/compensation/ICompensation.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, IRegistryLinked} from "../registry/IRegistryLinked.sol";
22
-
23
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
24
- import {IProductService} from "./service/IProductService.sol";
25
- import {IPoolService} from "./service/IPoolService.sol";
26
- import {IInstanceBase} from "./base/IInstanceBase.sol";
27
-
28
- // solhint-disable-next-line no-empty-blocks
29
- interface IInstance is
30
- IERC165,
31
- IVersionable,
32
- IRegisterable,
33
- IAccessModule,
34
- IPolicyModule,
35
- IPoolModule,
36
- IBundleModule,
37
- IComponentModule,
38
- ITreasuryModule,
39
- ICompensationModule,
40
- IInstanceBase
22
+
23
+ import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
24
+
25
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
26
+ import {BundleManager} from "./BundleManager.sol";
27
+ import {InstanceReader} from "./InstanceReader.sol";
28
+ import {InstanceStore} from "./InstanceStore.sol";
29
+
30
+ import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
31
+
32
+ import {IAccess} from "./module/IAccess.sol";
33
+
34
+ import {IBundleService} from "../pool/IBundleService.sol";
35
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
36
+ import {IPolicyService} from "../product/IPolicyService.sol";
37
+ import {IPoolService} from "../pool/IPoolService.sol";
38
+ import {IProductService} from "../product/IProductService.sol";
39
+ import {IPolicyService} from "../product/IPolicyService.sol";
40
+ import {IBundleService} from "../pool/IBundleService.sol";
41
+
42
+
43
+ interface IInstance is
44
+ IRegisterable,
45
+ ITransferInterceptor,
46
+ IAccessManaged
41
47
  {
42
- function getRegistry() external view override (IBundleModule, IComponentModule, IPolicyModule, IRegisterable) returns (IRegistry registry);
43
- function getOwner() external view override (IOwnable, IAccessModule) returns(address owner);
48
+ error ErrorInstanceInstanceAdminZero();
49
+ error ErrorInstanceInstanceAdminAlreadySet(address InstanceAdmin);
50
+ error ErrorInstanceInstanceAdminAuthorityMismatch(address instanceAuthority);
51
+
52
+ error ErrorInstanceBundleManagerAlreadySet(address instanceBundleManager);
53
+ error ErrorInstanceBundleManagerInstanceMismatch(address instance);
54
+ error ErrorInstanceBundleManagerAuthorityMismatch(address instanceAuthority);
55
+
56
+ error ErrorInstanceInstanceReaderInstanceMismatch(address instanceAuthority);
57
+
58
+ error ErrorInstanceInstanceStoreAlreadySet(address instanceStore);
59
+ error ErrorInstanceInstanceStoreAuthorityMismatch(address instanceAuthority);
60
+
61
+ struct InstanceInfo {
62
+ uint64 requestsCount;
63
+ }
64
+
65
+ function createRole(string memory roleName, string memory adminName) external returns (RoleId roleId, RoleId admin);
66
+ function grantRole(RoleId roleId, address account) external;
67
+ function revokeRole(RoleId roleId, address account) external;
68
+
69
+ function createTarget(address target, string memory name) external;
70
+ function setTargetFunctionRole(string memory targetName, bytes4[] calldata selectors, RoleId roleId) external;
71
+ function setTargetLocked(address target, bool locked) external;
44
72
 
45
- function hasRole(RoleId role, address member) external view override (IAccessModule, IComponentModule) returns (bool hasRole);
73
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
74
+ function setStakingRewardRate(UFixed rewardRate) external;
75
+ function refillStakingRewardReserves(Amount dipAmount) external;
46
76
 
47
- function getKeyValueStore() external view override (IBundleModule, IInstanceBase) returns (IKeyValueStore keyValueStore);
48
- function getComponentOwnerService() external view override (IInstanceBase, IComponentModule) returns(IComponentOwnerService);
49
- function getProductService() external view override (IInstanceBase, IBundleModule, IPolicyModule) returns(IProductService);
50
- function getPoolService() external view override (IInstanceBase, IBundleModule, IPoolModule) returns(IPoolService);
77
+ /// @dev defunds the staking reward reserves for the specified target
78
+ /// permissioned: only the target owner may call this function
79
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
51
80
 
52
- }
81
+ function getMajorVersion() external pure returns (VersionPart majorVersion);
82
+ function getInstanceReader() external view returns (InstanceReader);
83
+ function getBundleManager() external view returns (BundleManager);
84
+ function getInstanceAdmin() external view returns (InstanceAdmin);
85
+ function getInstanceStore() external view returns (InstanceStore);
86
+ function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable);
87
+ }
@@ -0,0 +1,97 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {Amount} from "../type/Amount.sol";
5
+ import {BundleManager} from "./BundleManager.sol";
6
+ import {Instance} from "./Instance.sol";
7
+ import {IService} from "../shared/IService.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {ObjectType} from "../type/ObjectType.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+ import {Seconds} from "../type/Seconds.sol";
12
+ import {UFixed} from "../type/UFixed.sol";
13
+ import {VersionPart} from "../type/Version.sol";
14
+
15
+ interface IInstanceService is IService {
16
+
17
+ // onlyInstance
18
+ error ErrorInstanceServiceNotRegistered(address instance);
19
+ error ErrorInstanceServiceNotInstance(address instance, ObjectType objectType);
20
+ error ErrorInstanceServiceInstanceVersionMismatch(address instance, VersionPart instanceVersion);
21
+
22
+ error ErrorInstanceServiceComponentNotInstanceLinked(address component);
23
+
24
+ error ErrorInstanceServiceMasterInstanceAlreadySet();
25
+ error ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet();
26
+ error ErrorInstanceServiceMasterInstanceAdminAlreadySet();
27
+ error ErrorInstanceServiceMasterBundleManagerAlreadySet();
28
+ error ErrorInstanceServiceInstanceAddressZero();
29
+
30
+ error ErrorInstanceServiceMasterInstanceReaderNotSet();
31
+ error ErrorInstanceServiceInstanceReaderAddressZero();
32
+ error ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader();
33
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch();
34
+
35
+ error ErrorInstanceServiceInstanceAdminZero();
36
+ error ErrorInstanceServiceInstanceReaderZero();
37
+ error ErrorInstanceServiceBundleManagerZero();
38
+ error ErrorInstanceServiceInstanceStoreZero();
39
+
40
+ error ErrorInstanceServiceInstanceAuthorityMismatch();
41
+ error ErrorInstanceServiceBundleManagerAuthorityMismatch();
42
+ error ErrorInstanceServiceInstanceReaderInstanceMismatch2();
43
+ error ErrorInstanceServiceBundleMangerInstanceMismatch();
44
+ error ErrorInstanceServiceInstanceStoreAuthorityMismatch();
45
+
46
+ error ErrorInstanceServiceRequestUnauhorized(address caller);
47
+ error ErrorInstanceServiceNotInstanceNftId(NftId nftId);
48
+ error ErrorInstanceServiceComponentNotRegistered(address componentAddress);
49
+ error ErrorInstanceServiceInstanceComponentMismatch(NftId instanceNftId, NftId componentNftId);
50
+ error ErrorInstanceServiceInvalidComponentType(address componentAddress, ObjectType expectedType, ObjectType componentType);
51
+
52
+ event LogInstanceCloned(
53
+ address clonedOzAccessManager,
54
+ address clonedInstanceAccessManager,
55
+ address clonedInstance,
56
+ address clonedInstanceStore,
57
+ address clonedBundleManager,
58
+ address clonedInstanceReader,
59
+ NftId clonedInstanceNftId
60
+ );
61
+
62
+ function createInstanceClone()
63
+ external
64
+ returns (
65
+ // TODO check if Instance can be changed to IInstance
66
+ Instance clonedInstance,
67
+ NftId instanceNftId
68
+ );
69
+
70
+
71
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod) external;
72
+ function setStakingRewardRate(UFixed rewardRate) external;
73
+ function refillStakingRewardReserves(address rewardProvider, Amount dipAmount) external;
74
+
75
+ /// @dev defunds the staking reward reserves for the specified target
76
+ /// permissioned: only the target owner may call this function
77
+ function withdrawStakingRewardReserves(Amount dipAmount) external returns (Amount newBalance);
78
+
79
+
80
+ function createComponentTarget(
81
+ NftId instanceNftId,
82
+ address targetAddress,
83
+ string memory targetName,
84
+ bytes4[][] memory selectors,
85
+ RoleId[] memory roles
86
+ ) external;
87
+
88
+ function createGifTarget(
89
+ NftId instanceNftId,
90
+ address targetAddress,
91
+ string memory targetName,
92
+ bytes4[][] memory selectors,
93
+ RoleId[] memory roles
94
+ ) external;
95
+
96
+ function setComponentLocked(bool locked) external;
97
+ }
@@ -1,68 +1,263 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
5
- import {RoleId} from "../types/RoleId.sol";
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
5
 
7
- import {InstanceBase} from "./base/InstanceBase.sol";
8
- import {AccessModule} from "./module/access/Access.sol";
9
- import {CompensationModule} from "./module/compensation/CompensationModule.sol";
10
- import {ComponentModule} from "./module/component/ComponentModule.sol";
11
- import {PolicyModule} from "./module/policy/PolicyModule.sol";
12
- import {PoolModule} from "./module/pool/PoolModule.sol";
13
- import {RiskModule} from "./module/risk/RiskModule.sol";
14
- import {BundleModule} from "./module/bundle/BundleModule.sol";
15
- import {TreasuryModule} from "./module/treasury/TreasuryModule.sol";
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {Key32} from "../type/Key32.sol";
8
+ import {NftId} from "../type/NftId.sol";
9
+ import {RiskId} from "../type/RiskId.sol";
10
+ import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../type/ObjectType.sol";
11
+ import {RoleId, RoleIdLib, eqRoleId, ADMIN_ROLE, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../type/RoleId.sol";
12
+ import {ClaimId} from "../type/ClaimId.sol";
13
+ import {ReferralId} from "../type/Referral.sol";
14
+ import {PayoutId} from "../type/PayoutId.sol";
15
+ import {DistributorType} from "../type/DistributorType.sol";
16
+ import {Seconds} from "../type/Seconds.sol";
17
+ import {UFixed} from "../type/UFixed.sol";
18
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
16
19
 
17
- import {IRegistry} from "../registry/IRegistry.sol";
18
20
  import {Registerable} from "../shared/Registerable.sol";
19
- import {IAccessModule} from "./module/access/IAccess.sol";
20
- import {IBundleModule} from "./module/bundle/IBundle.sol";
21
- import {IComponentModule} from "./module/component/IComponent.sol";
22
- import {IPoolModule} from "./module/pool/IPoolModule.sol";
23
- import {IPolicyModule} from "./module/policy/IPolicy.sol";
24
- import {IInstanceBase} from "./base/IInstanceBase.sol";
21
+ import {TokenHandler} from "../shared/TokenHandler.sol";
22
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
23
+
24
+ import {IRegistry} from "../registry/IRegistry.sol";
25
+
26
+ import {IInstance} from "./IInstance.sol";
27
+ import {IInstanceService} from "./IInstanceService.sol";
28
+ import {InstanceReader} from "./InstanceReader.sol";
29
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
30
+ import {BundleManager} from "./BundleManager.sol";
31
+ import {InstanceStore} from "./InstanceStore.sol";
32
+
33
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
25
34
 
26
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
27
- import {IProductService} from "./service/IProductService.sol";
28
- import {IPoolService} from "./service/IPoolService.sol";
35
+ import {IBundle} from "./module/IBundle.sol";
36
+ import {IComponents} from "./module/IComponents.sol";
37
+ import {IDistribution} from "./module/IDistribution.sol";
38
+ import {IPolicy} from "./module/IPolicy.sol";
39
+ import {IRisk} from "./module/IRisk.sol";
29
40
 
30
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
41
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
42
+ import {IPoolService} from "../pool/IPoolService.sol";
43
+ import {IProductService} from "../product/IProductService.sol";
44
+ import {IPolicyService} from "../product/IPolicyService.sol";
45
+ import {IBundleService} from "../pool/IBundleService.sol";
31
46
 
32
47
  contract Instance is
33
- InstanceBase,
34
- AccessModule,
35
- BundleModule,
36
- ComponentModule,
37
- CompensationModule,
38
- PolicyModule,
39
- PoolModule,
40
- RiskModule,
41
- TreasuryModule
48
+ IInstance,
49
+ AccessManagedUpgradeable,
50
+ Registerable
42
51
  {
43
- constructor(
44
- address registry,
45
- NftId registryNftId
46
- )
47
- InstanceBase(registry, registryNftId)
48
- AccessModule()
49
- BundleModule()
50
- ComponentModule()
51
- PolicyModule()
52
- PoolModule()
53
- TreasuryModule()
52
+ uint256 public constant GIF_MAJOR_VERSION = 3;
53
+
54
+ bool private _initialized;
55
+
56
+ IInstanceService internal _instanceService;
57
+ InstanceAdmin internal _instanceAdmin;
58
+ InstanceReader internal _instanceReader;
59
+ BundleManager internal _bundleManager;
60
+ InstanceStore internal _instanceStore;
61
+
62
+ modifier onlyChainNft() {
63
+ if(msg.sender != getRegistry().getChainNftAddress()) {
64
+ revert();
65
+ }
66
+ _;
67
+ }
68
+
69
+ function initialize(address authority, address registryAddress, address initialOwner)
70
+ external
71
+ initializer()
72
+ {
73
+ if(authority == address(0)) {
74
+ revert ErrorInstanceInstanceAdminZero();
75
+ }
76
+
77
+ __AccessManaged_init(authority);
78
+
79
+ IRegistry registry = IRegistry(registryAddress);
80
+ initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
81
+
82
+ _instanceService = IInstanceService(
83
+ getRegistry().getServiceAddress(
84
+ INSTANCE(),
85
+ getMajorVersion()));
86
+
87
+ registerInterface(type(IInstance).interfaceId);
88
+ }
89
+
90
+ //--- Staking ----------------------------------------------------------//
91
+
92
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
93
+ external
94
+ // TODO decide if onlyOwner or restricted to instance owner role is better
95
+ onlyOwner()
96
+ {
97
+ _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
98
+ }
99
+
100
+ function setStakingRewardRate(UFixed rewardRate)
101
+ external
102
+ onlyOwner()
103
+ {
104
+ _instanceService.setStakingRewardRate(rewardRate);
105
+ }
106
+
107
+ function refillStakingRewardReserves(Amount dipAmount)
108
+ external
109
+ onlyOwner()
110
+ {
111
+ address instanceOwner = msg.sender;
112
+ _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
113
+ }
114
+
115
+ function withdrawStakingRewardReserves(Amount dipAmount)
116
+ external
117
+ onlyOwner()
118
+ returns (Amount newBalance)
119
+ {
120
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
121
+ }
122
+
123
+ //--- Roles ------------------------------------------------------------//
124
+
125
+ function createRole(string memory roleName, string memory adminName)
126
+ external
127
+ // TODO decide if onlyOwner or restricted to instance owner role is better
128
+ restricted // INSTANCE_OWNER_ROLE
129
+ returns (RoleId roleId, RoleId admin)
54
130
  {
55
- initializeBundleModule(_keyValueStore);
131
+ (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
56
132
  }
57
133
 
58
- function getRegistry() public view override (Registerable, IBundleModule, IComponentModule, IPolicyModule) returns (IRegistry registry) { return super.getRegistry(); }
59
- function getKeyValueStore() public view override (InstanceBase, IBundleModule) returns (IKeyValueStore keyValueStore) { return super.getKeyValueStore(); }
134
+ function grantRole(RoleId roleId, address account)
135
+ external
136
+ // TODO decide if onlyOwner or restricted to instance owner role is better
137
+ restricted // INSTANCE_OWNER_ROLE
138
+ {
139
+ AccessManagerExtendedInitializeable(authority()).grantRole(roleId.toInt(), account, 0);
140
+ }
60
141
 
61
- function hasRole(RoleId role, address member) public view override (AccessModule, IComponentModule) returns (bool) { return super.hasRole(role, member); }
142
+ function revokeRole(RoleId roleId, address account)
143
+ external
144
+ // TODO decide if onlyOwner or restricted to instance owner role is better
145
+ restricted // INSTANCE_OWNER_ROLE
146
+ {
147
+ AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
148
+ }
62
149
 
63
- function getComponentOwnerService() external view override (IComponentModule, IInstanceBase) returns(IComponentOwnerService service) { return _componentOwnerService; }
64
- function getProductService() external view override (IBundleModule, IPolicyModule, IInstanceBase) returns(IProductService service) { return _productService; }
65
- function getPoolService() external view override (IBundleModule, IPoolModule, IInstanceBase) returns(IPoolService service) { return _poolService; }
150
+ //--- Targets ------------------------------------------------------------//
151
+
152
+ function createTarget(address target, string memory name)
153
+ external
154
+ // TODO decide if onlyOwner or restricted to instance owner role is better
155
+ restricted // INSTANCE_OWNER_ROLE
156
+ {
157
+ _instanceAdmin.createTarget(target, name);
158
+ }
159
+
160
+ function setTargetFunctionRole(
161
+ string memory targetName,
162
+ bytes4[] calldata selectors,
163
+ RoleId roleId
164
+ )
165
+ external
166
+ restricted // INSTANCE_OWNER_ROLE
167
+ {
168
+ _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
169
+ }
170
+
171
+ function setTargetLocked(address target, bool locked)
172
+ external
173
+ restricted // INSTANCE_OWNER_ROLE
174
+ {
175
+ _instanceAdmin.setTargetLockedByInstance(target, locked);
176
+ }
177
+
178
+ //--- ITransferInterceptor ----------------------------------------------//
179
+
180
+ // TODO interception of child components nfts
181
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
182
+ _instanceAdmin.transferInstanceOwnerRole(address(0), to);
183
+ }
184
+
185
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
186
+ _instanceAdmin.transferInstanceOwnerRole(from, to);
187
+ }
188
+
189
+ //function nftBurn(address from, uint256 tokenId) external onlyChainNft {
190
+ //_instanceAdmin.transferInstanceOwnerRole(from, address(0));
191
+ //}
192
+
193
+ //--- initial setup functions -------------------------------------------//
194
+
195
+ function setInstanceAdmin(InstanceAdmin accessManager) external restricted {
196
+ if(address(_instanceAdmin) != address(0)) {
197
+ revert ErrorInstanceInstanceAdminAlreadySet(address(_instanceAdmin));
198
+ }
199
+ if(accessManager.authority() != authority()) {
200
+ revert ErrorInstanceInstanceAdminAuthorityMismatch(authority());
201
+ }
202
+ _instanceAdmin = accessManager;
203
+ }
204
+
205
+ function setBundleManager(BundleManager bundleManager) external restricted() {
206
+ if(address(_bundleManager) != address(0)) {
207
+ revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
208
+ }
209
+ if(bundleManager.getInstance() != Instance(this)) {
210
+ revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
211
+ }
212
+ if(bundleManager.authority() != authority()) {
213
+ revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
214
+ }
215
+ _bundleManager = bundleManager;
216
+ }
217
+
218
+ function setInstanceReader(InstanceReader instanceReader) external restricted() {
219
+ if(instanceReader.getInstance() != Instance(this)) {
220
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
221
+ }
222
+
223
+ _instanceReader = instanceReader;
224
+ }
225
+
226
+ function setInstanceStore(InstanceStore instanceStore) external restricted {
227
+ if(address(_instanceStore) != address(0)) {
228
+ revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
229
+ }
230
+ if(instanceStore.authority() != authority()) {
231
+ revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
232
+ }
233
+ _instanceStore = instanceStore;
234
+ }
235
+
236
+ //--- external view functions -------------------------------------------//
237
+
238
+ function getInstanceReader() external view returns (InstanceReader) {
239
+ return _instanceReader;
240
+ }
241
+
242
+ function getBundleManager() external view returns (BundleManager) {
243
+ return _bundleManager;
244
+ }
245
+
246
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
247
+ return _instanceAdmin;
248
+ }
249
+
250
+ function getInstanceAccessManager() external view returns (AccessManagerExtendedInitializeable) {
251
+ return AccessManagerExtendedInitializeable(authority());
252
+ }
253
+
254
+ function getInstanceStore() external view returns (InstanceStore) {
255
+ return _instanceStore;
256
+ }
257
+
258
+ function getMajorVersion() public pure returns (VersionPart majorVersion) {
259
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
260
+ }
66
261
 
67
- function getOwner() public view override (IAccessModule, Registerable) returns(address owner) { return super.getOwner(); }
68
- }
262
+ //--- internal view/pure functions --------------------------------------//
263
+ }