@etherisc/gif-next 0.0.2-ab4c2da-820 → 0.0.2-ab82da8-607

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 (717) hide show
  1. package/README.md +59 -18
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +499 -549
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1342 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1012 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1400 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +787 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +906 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +932 -0
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +265 -1337
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +423 -162
  50. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/Instance.sol/Instance.json +320 -3074
  52. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +842 -414
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +496 -514
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +295 -172
  62. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  63. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3587 -0
  64. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  66. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  67. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
  68. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  70. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  72. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
  76. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  78. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  79. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  81. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  83. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  88. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  90. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  92. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +303 -292
  94. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  96. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
  98. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
  100. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
  102. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  104. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  105. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1362 -0
  106. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  107. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +771 -0
  108. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +907 -0
  110. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  111. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
  112. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  113. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1198 -0
  114. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  115. package/artifacts/contracts/pool/Pool.sol/Pool.json +1034 -0
  116. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  117. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1469 -0
  118. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  119. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +695 -0
  120. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  121. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +732 -0
  122. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +667 -0
  124. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
  126. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  127. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  128. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  129. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1325 -0
  130. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  131. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +775 -0
  132. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  133. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +216 -235
  134. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +886 -0
  136. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +785 -0
  138. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  139. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +270 -220
  140. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  141. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +948 -0
  142. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  143. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → product/IRiskService.sol/IRiskService.json} +144 -112
  144. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  145. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1104 -0
  146. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  147. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +715 -0
  148. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  149. package/artifacts/contracts/product/PricingService.sol/PricingService.json +860 -0
  150. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  151. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +715 -0
  152. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  153. package/artifacts/contracts/product/Product.sol/Product.json +1054 -0
  154. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  155. package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
  156. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  157. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
  158. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  159. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
  160. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  161. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +553 -16
  162. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  163. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +224 -260
  164. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  165. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  166. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  167. package/artifacts/contracts/registry/Registry.sol/Registry.json +918 -51
  168. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  170. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +415 -270
  172. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  173. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +302 -83
  174. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  176. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  178. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  179. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  180. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -96
  182. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  183. package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/Component.sol/Component.json} +340 -108
  184. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1568 -0
  186. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  187. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +753 -0
  188. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  189. package/artifacts/contracts/shared/{RegisterableUpgradable.sol/RegisterableUpgradable.json → ComponentVerifyingService.sol/ComponentVerifyingService.json} +144 -159
  190. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  191. package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/IComponent.sol/IComponent.json} +269 -185
  192. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  193. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
  194. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  195. package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +351 -320
  196. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  197. package/artifacts/contracts/{instance/IInstanceBase.sol/IInstanceBase.json → shared/IKeyValueStore.sol/IKeyValueStore.json} +60 -34
  198. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  199. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
  200. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  201. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  202. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  203. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +165 -0
  204. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
  206. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  207. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  208. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/IService.sol/IService.json +84 -159
  210. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  211. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  212. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  213. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  214. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  215. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +793 -0
  216. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  217. package/artifacts/contracts/{instance/base/IKeyValueStore.sol/IKeyValueStore.json → shared/KeyValueStore.sol/KeyValueStore.json} +88 -20
  218. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  219. package/artifacts/contracts/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
  220. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  221. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  222. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +65 -30
  224. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  225. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +188 -0
  226. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  227. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +44 -54
  228. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  229. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +58 -0
  230. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  231. package/artifacts/contracts/shared/Service.sol/Service.json +98 -171
  232. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  233. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
  234. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  235. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  236. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  238. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  239. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  240. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  242. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  243. package/artifacts/contracts/staking/Staking.sol/Staking.json +1828 -0
  244. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  246. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +714 -0
  248. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  250. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  251. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1231 -0
  252. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  253. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +667 -0
  254. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  255. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  256. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
  258. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  259. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
  260. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  261. package/artifacts/contracts/type/Amount.sol/AmountLib.json +374 -0
  262. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  264. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  265. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  266. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  268. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  269. package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
  270. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  271. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  272. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  274. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  275. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  276. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  278. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  280. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  282. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  284. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  286. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  288. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  289. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
  290. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  292. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  294. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  296. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  298. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
  300. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
  302. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -0
  304. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  306. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
  308. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  309. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +55 -0
  310. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  311. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
  312. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  313. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  314. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  315. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +78 -0
  316. package/contracts/authorization/AccessAdmin.sol +589 -0
  317. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  318. package/contracts/authorization/Authorization.sol +217 -0
  319. package/contracts/authorization/IAccess.sol +48 -0
  320. package/contracts/authorization/IAccessAdmin.sol +136 -0
  321. package/contracts/authorization/IAuthorization.sol +54 -0
  322. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  323. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  324. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  325. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  326. package/contracts/distribution/BasicDistribution.sol +138 -0
  327. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  328. package/contracts/distribution/Distribution.sol +295 -0
  329. package/contracts/distribution/DistributionService.sol +336 -0
  330. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  331. package/contracts/distribution/IDistributionComponent.sol +52 -0
  332. package/contracts/distribution/IDistributionService.sol +101 -0
  333. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  334. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  335. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  336. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  337. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +40 -43
  338. package/contracts/instance/IInstance.sol +56 -53
  339. package/contracts/instance/IInstanceService.sol +77 -19
  340. package/contracts/instance/Instance.sol +157 -392
  341. package/contracts/instance/InstanceAdmin.sol +285 -0
  342. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  343. package/contracts/instance/InstanceReader.sol +202 -87
  344. package/contracts/instance/InstanceService.sol +384 -216
  345. package/contracts/instance/InstanceServiceManager.sol +13 -31
  346. package/contracts/instance/InstanceStore.sol +287 -0
  347. package/contracts/instance/base/BalanceStore.sol +123 -0
  348. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
  349. package/contracts/instance/base/ObjectCounter.sol +21 -0
  350. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  351. package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +20 -42
  352. package/contracts/instance/module/IAccess.sol +29 -21
  353. package/contracts/instance/module/IBundle.sol +8 -8
  354. package/contracts/instance/module/IComponents.sol +46 -0
  355. package/contracts/instance/module/IDistribution.sol +6 -4
  356. package/contracts/instance/module/IPolicy.sol +58 -19
  357. package/contracts/instance/module/IRisk.sol +1 -1
  358. package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
  359. package/contracts/oracle/BasicOracle.sol +48 -0
  360. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  361. package/contracts/oracle/IOracle.sol +36 -0
  362. package/contracts/oracle/IOracleComponent.sol +33 -0
  363. package/contracts/oracle/IOracleService.sol +65 -0
  364. package/contracts/oracle/Oracle.sol +167 -0
  365. package/contracts/oracle/OracleService.sol +279 -0
  366. package/contracts/oracle/OracleServiceManager.sol +39 -0
  367. package/contracts/pool/BasicPool.sol +166 -0
  368. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  369. package/contracts/pool/BundleService.sol +438 -0
  370. package/contracts/pool/BundleServiceManager.sol +39 -0
  371. package/contracts/pool/IBundleService.sol +134 -0
  372. package/contracts/pool/IPoolComponent.sol +58 -0
  373. package/contracts/pool/IPoolService.sol +160 -0
  374. package/contracts/pool/Pool.sol +326 -0
  375. package/contracts/pool/PoolService.sol +509 -0
  376. package/contracts/pool/PoolServiceManager.sol +39 -0
  377. package/contracts/product/ApplicationService.sol +248 -0
  378. package/contracts/product/ApplicationServiceManager.sol +38 -0
  379. package/contracts/product/BasicProduct.sol +53 -0
  380. package/contracts/product/BasicProductAuthorization.sol +43 -0
  381. package/contracts/product/ClaimService.sol +487 -0
  382. package/contracts/product/ClaimServiceManager.sol +38 -0
  383. package/contracts/product/IApplicationService.sol +63 -0
  384. package/contracts/product/IClaimService.sol +122 -0
  385. package/contracts/product/IPolicyService.sol +73 -0
  386. package/contracts/product/IPricingService.sol +39 -0
  387. package/contracts/product/IProductComponent.sol +39 -0
  388. package/contracts/product/IRiskService.sol +33 -0
  389. package/contracts/product/PolicyService.sol +573 -0
  390. package/contracts/product/PolicyServiceManager.sol +39 -0
  391. package/contracts/product/PricingService.sol +301 -0
  392. package/contracts/product/PricingServiceManager.sol +39 -0
  393. package/contracts/product/Product.sol +425 -0
  394. package/contracts/product/RiskService.sol +97 -0
  395. package/contracts/product/RiskServiceManager.sol +39 -0
  396. package/contracts/registry/ChainNft.sol +80 -32
  397. package/contracts/registry/IRegistry.sol +115 -24
  398. package/contracts/registry/IRegistryService.sol +45 -34
  399. package/contracts/registry/ITransferInterceptor.sol +1 -0
  400. package/contracts/registry/Registry.sol +528 -211
  401. package/contracts/registry/RegistryAdmin.sol +464 -0
  402. package/contracts/registry/RegistryService.sol +114 -192
  403. package/contracts/registry/RegistryServiceManager.sol +24 -33
  404. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  405. package/contracts/registry/ReleaseRegistry.sol +491 -0
  406. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  407. package/contracts/registry/TokenRegistry.sol +263 -58
  408. package/contracts/shared/Component.sol +268 -0
  409. package/contracts/shared/ComponentService.sol +641 -0
  410. package/contracts/shared/ComponentServiceManager.sol +35 -0
  411. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  412. package/contracts/shared/IComponent.sol +70 -0
  413. package/contracts/shared/IComponentService.sol +108 -0
  414. package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
  415. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  416. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  417. package/contracts/shared/INftOwnable.sol +13 -12
  418. package/contracts/shared/IPolicyHolder.sol +36 -0
  419. package/contracts/shared/IRegisterable.sol +4 -6
  420. package/contracts/shared/IRegistryLinked.sol +11 -0
  421. package/contracts/shared/IService.sol +15 -6
  422. package/contracts/shared/InitializableCustom.sol +177 -0
  423. package/contracts/shared/InitializableERC165.sol +27 -0
  424. package/contracts/shared/InstanceLinkedComponent.sol +172 -0
  425. package/contracts/shared/KeyValueStore.sol +131 -0
  426. package/contracts/shared/Lifecycle.sol +77 -0
  427. package/contracts/shared/NftIdSet.sol +65 -0
  428. package/contracts/shared/NftOwnable.sol +59 -86
  429. package/contracts/shared/PolicyHolder.sol +56 -0
  430. package/contracts/shared/Registerable.sol +23 -38
  431. package/contracts/shared/RegistryLinked.sol +44 -0
  432. package/contracts/shared/Service.sol +56 -32
  433. package/contracts/shared/TokenHandler.sol +122 -10
  434. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  435. package/contracts/staking/IStaking.sol +168 -0
  436. package/contracts/staking/IStakingService.sol +160 -0
  437. package/contracts/staking/StakeManagerLib.sol +224 -0
  438. package/contracts/staking/Staking.sol +498 -0
  439. package/contracts/staking/StakingLifecycle.sol +23 -0
  440. package/contracts/staking/StakingManager.sol +50 -0
  441. package/contracts/staking/StakingReader.sol +183 -0
  442. package/contracts/staking/StakingService.sol +407 -0
  443. package/contracts/staking/StakingServiceManager.sol +44 -0
  444. package/contracts/staking/StakingStore.sol +605 -0
  445. package/contracts/staking/TargetManagerLib.sol +211 -0
  446. package/contracts/{types → type}/AddressSet.sol +1 -1
  447. package/contracts/type/Amount.sol +135 -0
  448. package/contracts/{types → type}/Blocknumber.sol +27 -3
  449. package/contracts/type/ClaimId.sol +75 -0
  450. package/contracts/{types → type}/DistributorType.sol +2 -2
  451. package/contracts/{types → type}/Fee.sol +33 -23
  452. package/contracts/{types → type}/NftId.sol +21 -15
  453. package/contracts/{types → type}/NftIdSet.sol +2 -2
  454. package/contracts/type/ObjectType.sol +275 -0
  455. package/contracts/type/PayoutId.sol +82 -0
  456. package/contracts/{types → type}/Referral.sol +6 -1
  457. package/contracts/type/RequestId.sol +75 -0
  458. package/contracts/{types → type}/RiskId.sol +1 -1
  459. package/contracts/type/RoleId.sol +174 -0
  460. package/contracts/type/Seconds.sol +101 -0
  461. package/contracts/type/Selector.sol +102 -0
  462. package/contracts/{types → type}/StateId.sol +35 -4
  463. package/contracts/type/String.sol +53 -0
  464. package/contracts/{types → type}/Timestamp.sol +34 -15
  465. package/contracts/{types → type}/UFixed.sol +35 -9
  466. package/contracts/{types → type}/Version.sol +5 -2
  467. package/contracts/{shared → upgradeability}/IVersionable.sol +5 -48
  468. package/contracts/upgradeability/ProxyManager.sol +198 -0
  469. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  470. package/contracts/upgradeability/Versionable.sol +59 -0
  471. package/package.json +10 -7
  472. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  473. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  474. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -744
  475. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  476. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  477. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  478. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  479. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -275
  480. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  481. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  482. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  483. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -939
  484. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  485. package/artifacts/contracts/components/Product.sol/Product.json +0 -855
  486. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  488. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  490. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  492. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  494. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  496. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  497. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  498. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  499. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  500. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  501. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  502. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  503. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  504. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  506. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  509. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  511. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  513. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  515. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  516. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  517. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  518. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  519. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  520. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  521. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  522. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  523. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  524. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  525. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  526. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  527. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -788
  528. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  529. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  530. package/artifacts/contracts/instance/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  531. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  532. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -940
  533. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  534. package/artifacts/contracts/instance/InstanceBase.sol/InstanceBase.json +0 -763
  535. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  536. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -285
  537. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  538. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  540. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  543. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  544. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  545. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  546. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  549. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -923
  550. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  551. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -440
  552. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  553. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -814
  554. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  555. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -671
  556. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  557. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
  558. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  559. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  560. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.json +0 -466
  561. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  562. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
  563. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  564. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  565. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  566. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  567. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -971
  568. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  569. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -464
  570. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  571. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -705
  572. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  573. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -428
  574. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  575. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -755
  576. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  577. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -420
  578. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  579. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  580. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  581. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -551
  582. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  583. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  584. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  585. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  586. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  587. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  588. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  589. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  590. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  591. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  592. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  593. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  594. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -228
  595. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  596. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  597. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  598. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
  599. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  600. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  601. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  602. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
  603. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  604. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  605. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  606. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  607. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  608. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  609. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  610. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  611. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  612. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
  613. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  614. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  615. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  616. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  617. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  618. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
  619. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  620. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  621. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  622. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
  623. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  624. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  625. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  626. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
  627. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  629. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  630. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  631. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  632. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  633. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  634. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
  635. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  636. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  637. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  638. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  640. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
  642. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  643. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  644. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  645. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
  646. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  647. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
  648. package/contracts/components/BaseComponent.sol +0 -132
  649. package/contracts/components/Distribution.sol +0 -163
  650. package/contracts/components/IBaseComponent.sol +0 -31
  651. package/contracts/components/IDistributionComponent.sol +0 -44
  652. package/contracts/components/IPoolComponent.sol +0 -66
  653. package/contracts/components/IProductComponent.sol +0 -35
  654. package/contracts/components/Pool.sol +0 -271
  655. package/contracts/components/Product.sol +0 -292
  656. package/contracts/experiment/cloning/Cloner.sol +0 -47
  657. package/contracts/experiment/errors/Require.sol +0 -38
  658. package/contracts/experiment/errors/Revert.sol +0 -44
  659. package/contracts/experiment/inheritance/A.sol +0 -53
  660. package/contracts/experiment/inheritance/B.sol +0 -28
  661. package/contracts/experiment/inheritance/C.sol +0 -34
  662. package/contracts/experiment/inheritance/IA.sol +0 -13
  663. package/contracts/experiment/inheritance/IB.sol +0 -10
  664. package/contracts/experiment/inheritance/IC.sol +0 -12
  665. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  666. package/contracts/experiment/statemachine/ISM.sol +0 -25
  667. package/contracts/experiment/statemachine/SM.sol +0 -57
  668. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  669. package/contracts/experiment/types/TypeA.sol +0 -47
  670. package/contracts/experiment/types/TypeB.sol +0 -29
  671. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -23
  672. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  673. package/contracts/instance/IInstanceBase.sol +0 -26
  674. package/contracts/instance/InstanceAccessManager.sol +0 -288
  675. package/contracts/instance/InstanceBase.sol +0 -41
  676. package/contracts/instance/base/ComponentServiceBase.sol +0 -72
  677. package/contracts/instance/base/IInstanceBase.sol +0 -23
  678. package/contracts/instance/base/KeyValueStore.sol +0 -172
  679. package/contracts/instance/base/Lifecycle.sol +0 -100
  680. package/contracts/instance/module/ISetup.sol +0 -46
  681. package/contracts/instance/module/ITreasury.sol +0 -23
  682. package/contracts/instance/service/BundleService.sol +0 -260
  683. package/contracts/instance/service/BundleServiceManager.sol +0 -55
  684. package/contracts/instance/service/ComponentOwnerService.sol +0 -315
  685. package/contracts/instance/service/DistributionService.sol +0 -114
  686. package/contracts/instance/service/DistributionServiceManager.sol +0 -55
  687. package/contracts/instance/service/IBundleService.sol +0 -45
  688. package/contracts/instance/service/IComponentOwnerService.sol +0 -20
  689. package/contracts/instance/service/IDistributionService.sol +0 -12
  690. package/contracts/instance/service/IPolicyService.sol +0 -87
  691. package/contracts/instance/service/IPoolService.sol +0 -20
  692. package/contracts/instance/service/IProductService.sol +0 -40
  693. package/contracts/instance/service/PolicyService.sol +0 -503
  694. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  695. package/contracts/instance/service/PoolService.sol +0 -122
  696. package/contracts/instance/service/PoolServiceManager.sol +0 -55
  697. package/contracts/instance/service/ProductService.sol +0 -168
  698. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  699. package/contracts/registry/RegistryAccessManager.sol +0 -207
  700. package/contracts/registry/ReleaseManager.sol +0 -382
  701. package/contracts/shared/ContractDeployerLib.sol +0 -72
  702. package/contracts/shared/ERC165.sol +0 -25
  703. package/contracts/shared/ProxyManager.sol +0 -94
  704. package/contracts/shared/RegisterableUpgradable.sol +0 -16
  705. package/contracts/shared/Versionable.sol +0 -147
  706. package/contracts/test/TestFee.sol +0 -25
  707. package/contracts/test/TestRegisterable.sol +0 -18
  708. package/contracts/test/TestRoleId.sol +0 -14
  709. package/contracts/test/TestService.sol +0 -25
  710. package/contracts/test/TestToken.sol +0 -26
  711. package/contracts/test/TestVersion.sol +0 -44
  712. package/contracts/test/TestVersionable.sol +0 -17
  713. package/contracts/types/ChainId.sol +0 -38
  714. package/contracts/types/NumberId.sol +0 -52
  715. package/contracts/types/ObjectType.sol +0 -152
  716. package/contracts/types/RoleId.sol +0 -91
  717. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,464 +1,229 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
5
- import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
- import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
7
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
8
- import {AccessManagerUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagerUpgradeable.sol";
9
-
10
- import {IAccess} from "./module/IAccess.sol";
11
- import {IBundle} from "./module/IBundle.sol";
12
- import {IPolicy} from "./module/IPolicy.sol";
13
- import {IRisk} from "./module/IRisk.sol";
14
- import {ISetup} from "./module/ISetup.sol";
15
- import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
16
- import {KeyValueStore} from "./base/KeyValueStore.sol";
5
+
6
+ import {Amount} from "../type/Amount.sol";
7
+ import {BundleSet} from "./BundleSet.sol";
17
8
  import {IInstance} from "./IInstance.sol";
9
+ import {IInstanceService} from "./IInstanceService.sol";
18
10
  import {InstanceReader} from "./InstanceReader.sol";
19
- import {BundleManager} from "./BundleManager.sol";
20
- import {NftId} from "../types/NftId.sol";
21
- import {NumberId} from "../types/NumberId.sol";
22
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT} from "../types/ObjectType.sol";
23
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
24
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
25
- import {StateId, ACTIVE} from "../types/StateId.sol";
26
- import {ERC165} from "../shared/ERC165.sol";
11
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
12
+ import {InstanceStore} from "./InstanceStore.sol";
13
+ import {INSTANCE} from "../type/ObjectType.sol";
14
+ import {IRegistry} from "../registry/IRegistry.sol";
27
15
  import {Registerable} from "../shared/Registerable.sol";
28
- import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
29
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
30
- import {IDistributionService} from "./service/IDistributionService.sol";
31
- import {IPoolService} from "./service/IPoolService.sol";
32
- import {IProductService} from "./service/IProductService.sol";
33
- import {IPolicyService} from "./service/IPolicyService.sol";
34
- import {IBundleService} from "./service/IBundleService.sol";
35
- import {VersionPart} from "../types/Version.sol";
36
- import {InstanceBase} from "./InstanceBase.sol";
16
+ import {RoleId} from "../type/RoleId.sol";
17
+ import {Seconds} from "../type/Seconds.sol";
18
+ import {UFixed} from "../type/UFixed.sol";
19
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
37
20
 
38
21
  contract Instance is
39
- AccessManagedUpgradeable,
40
22
  IInstance,
41
- // Initializable,
42
- InstanceBase
23
+ AccessManagedUpgradeable,
24
+ Registerable
43
25
  {
44
-
45
- uint64 public constant ADMIN_ROLE = type(uint64).min;
46
- uint64 public constant PUBLIC_ROLE = type(uint64).max;
47
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
48
-
49
- uint32 public constant EXECUTION_DELAY = 0;
26
+ uint256 public constant GIF_MAJOR_VERSION = 3;
50
27
 
51
28
  bool private _initialized;
52
29
 
53
- mapping(ShortString name => RoleId roleId) internal _role;
54
- mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
55
- RoleId [] internal _roles;
56
-
57
- mapping(ShortString name => address target) internal _target;
58
-
59
- AccessManagerUpgradeable internal _accessManager;
30
+ IInstanceService internal _instanceService;
31
+ InstanceAdmin internal _instanceAdmin;
60
32
  InstanceReader internal _instanceReader;
61
- BundleManager internal _bundleManager;
62
-
63
- function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner)
64
- public
65
- initializer
66
- {
67
- require(!_initialized, "Contract instance has already been initialized");
68
-
69
- __AccessManaged_init(accessManagerAddress);
70
-
71
- _accessManager = AccessManagerUpgradeable(accessManagerAddress);
72
- _createRole(RoleIdLib.toRoleId(ADMIN_ROLE), "AdminRole", false, false);
73
- _createRole(RoleIdLib.toRoleId(PUBLIC_ROLE), "PublicRole", false, false);
74
-
75
- _initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
76
-
77
- _registerInterface(type(IInstance).interfaceId);
78
- _initialized = true;
79
- }
80
-
81
- //--- Role ------------------------------------------------------//
82
- function createStandardRole(RoleId roleId, string memory name) external restricted() {
83
- _createRole(roleId, name, false, true);
84
- }
85
-
86
- function createCustomRole(RoleId roleId, string memory name) external restricted() {
87
- _createRole(roleId, name, true, true);
88
- }
89
-
90
- function updateRole(RoleId roleId, string memory name, StateId newState) external restricted() {
91
- (bool isCustom,) = _validateRoleParameters(roleId, name, false);
92
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
93
- update(toRoleKey32(roleId), abi.encode(role), newState);
94
- }
95
-
96
- function updateRoleState(RoleId roleId, StateId newState) external restricted() {
97
- updateState(toRoleKey32(roleId), newState);
98
- }
99
-
100
- function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
101
- Key32 roleKey = toRoleKey32(roleId);
102
-
103
- if (!exists(roleKey)) {
104
- revert IAccess.ErrorGrantNonexstentRole(roleId);
105
- }
106
-
107
- if (getState(roleKey) != ACTIVE()) {
108
- revert IAccess.ErrorRoleIdNotActive(roleId);
109
- }
110
-
111
- if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
112
- _accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
113
- EnumerableSet.add(_roleMembers[roleId], member);
114
- return true;
115
- }
116
-
117
- return false;
118
- }
119
-
120
- function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
121
- Key32 roleKey = toRoleKey32(roleId);
122
-
123
- if (!exists(roleKey)) {
124
- revert IAccess.ErrorRevokeNonexstentRole(roleId);
125
- }
126
-
127
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
128
- _accessManager.revokeRole(roleId.toInt(), member);
129
- EnumerableSet.remove(_roleMembers[roleId], member);
130
- return true;
131
- }
132
-
133
- return false;
134
- }
135
-
136
- /// @dev not restricted function by intention
137
- /// the restriction to role members is already enforced by the call to the access manger
138
- function renounceRole(RoleId roleId) external returns (bool revoked) {
139
- address member = msg.sender;
140
- Key32 roleKey = toRoleKey32(roleId);
33
+ BundleSet internal _bundleManager;
34
+ InstanceStore internal _instanceStore;
141
35
 
142
- if (!exists(roleKey)) {
143
- revert IAccess.ErrorRenounceNonexstentRole(roleId);
36
+ modifier onlyChainNft() {
37
+ if(msg.sender != getRegistry().getChainNftAddress()) {
38
+ revert();
144
39
  }
145
-
146
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
147
- _accessManager.renounceRole(roleId.toInt(), member);
148
- EnumerableSet.remove(_roleMembers[roleId], member);
149
- return true;
150
- }
151
-
152
- return false;
153
- }
154
-
155
- function roles() external view returns (uint256 numberOfRoles) {
156
- return _roles.length;
157
- }
158
-
159
- function getRoleId(uint256 idx) external view returns (RoleId roleId) {
160
- return _roles[idx];
161
- }
162
-
163
- function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
164
- return abi.decode(getData(roleId.toKey32()), (IAccess.RoleInfo));
165
- }
166
-
167
- function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
168
- return EnumerableSet.length(_roleMembers[roleId]);
169
- }
170
-
171
- function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
172
- return EnumerableSet.at(_roleMembers[roleId], idx);
173
- }
174
-
175
- function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
176
- if (validateParameters) {
177
- _validateRoleParameters(roleId, name, isCustom);
178
- }
179
-
180
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
181
- _role[role.name] = roleId;
182
- _roles.push(roleId);
183
-
184
- create(toRoleKey32(roleId), abi.encode(role));
185
- }
186
-
187
- //--- Target ------------------------------------------------------//
188
- function createTarget(address target, IAccess.TargetInfo memory targetInfo) external restricted() {
189
- _validateTargetParameters(target, targetInfo);
190
- create(toTargetKey32(target), abi.encode(targetInfo));
191
- }
192
-
193
- function setTargetClosed(address target, bool closed) external restricted() {
194
- if (!exists(toTargetKey32(target))) {
195
- revert IAccess.ErrorTargetDoesNotExist(target);
40
+ _;
41
+ }
42
+
43
+ function initialize(
44
+ InstanceAdmin instanceAdmin,
45
+ InstanceStore instanceStore,
46
+ BundleSet bundleManager,
47
+ InstanceReader instanceReader,
48
+ IRegistry registry,
49
+ address initialOwner
50
+ )
51
+ external
52
+ initializer()
53
+ {
54
+ _instanceAdmin = instanceAdmin;
55
+ if(_instanceAdmin.authority() == address(0)) {
56
+ // TODO rename error
57
+ revert ErrorInstanceInstanceAdminZero();
196
58
  }
197
59
 
198
- _accessManager.setTargetClosed(target, closed);
199
- }
200
-
201
- //--- ProductSetup ------------------------------------------------------//
202
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
203
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
204
- }
205
-
206
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
207
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
208
- }
60
+ // set authority to instance admin authority
61
+ __AccessManaged_init(_instanceAdmin.authority());
209
62
 
210
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
211
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
212
- }
213
-
214
- //--- DistributionSetup ------------------------------------------------------//
215
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
216
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
217
- }
218
-
219
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
220
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
221
- }
222
-
223
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
224
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
225
- }
63
+ // setup instance object info
64
+ _initializeRegisterable(
65
+ address(registry),
66
+ registry.getNftId(),
67
+ INSTANCE(),
68
+ true,
69
+ initialOwner,
70
+ "");
226
71
 
227
- //--- PoolSetup ------------------------------------------------------//
228
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
229
- create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
230
- }
231
-
232
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
233
- update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
234
- }
235
-
236
- function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
237
- updateState(_toNftKey32(poolNftId, POOL()), newState);
238
- }
239
-
240
- //--- DistributorType ---------------------------------------------------//
241
- function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
242
- create(toPolicyKey32(policyNftId), abi.encode(payout));
243
- }
244
-
245
- function updateDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
246
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
247
- }
248
-
249
- function updateDistributorTypeState(NftId policyNftId, StateId newState) external restricted() {
250
- updateState(toPolicyKey32(policyNftId), newState);
251
- }
252
-
253
- //--- Distributor -------------------------------------------------------//
254
- function createDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
255
- create(toPolicyKey32(policyNftId), abi.encode(payout));
256
- }
257
-
258
- function updateDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
259
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
260
- }
261
-
262
- function updateDistributorState(NftId policyNftId, StateId newState) external restricted() {
263
- updateState(toPolicyKey32(policyNftId), newState);
264
- }
265
-
266
- //--- Referral ----------------------------------------------------------//
267
- function createReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
268
- create(toPolicyKey32(policyNftId), abi.encode(payout));
269
- }
270
-
271
- function updateReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
272
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
273
- }
274
-
275
- function updateReferralState(NftId policyNftId, StateId newState) external restricted() {
276
- updateState(toPolicyKey32(policyNftId), newState);
277
- }
278
-
279
- //--- Bundle ------------------------------------------------------------//
280
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
281
- create(toBundleKey32(bundleNftId), abi.encode(bundle));
282
- }
72
+ // store instance supporting contracts
73
+ _instanceStore = instanceStore;
74
+ _bundleManager = bundleManager;
75
+ _instanceReader = instanceReader;
283
76
 
284
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
285
- update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
286
- }
77
+ // initialize instance supporting contracts
78
+ _instanceStore.initialize();
79
+ _bundleManager.initialize();
80
+ _instanceReader.initialize();
287
81
 
288
- function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
289
- updateState(toBundleKey32(bundleNftId), newState);
290
- }
82
+ _instanceService = IInstanceService(
83
+ getRegistry().getServiceAddress(
84
+ INSTANCE(),
85
+ getMajorVersion()));
291
86
 
292
- //--- Risk --------------------------------------------------------------//
293
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
294
- create(riskId.toKey32(), abi.encode(risk));
87
+ _registerInterface(type(IInstance).interfaceId);
295
88
  }
296
89
 
297
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
298
- update(riskId.toKey32(), abi.encode(risk), newState);
299
- }
90
+ //--- Staking ----------------------------------------------------------//
300
91
 
301
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
302
- updateState(riskId.toKey32(), newState);
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);
303
98
  }
304
99
 
305
- //--- Policy ------------------------------------------------------------//
306
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external restricted() {
307
- create(toPolicyKey32(policyNftId), abi.encode(policy));
100
+ function setStakingRewardRate(UFixed rewardRate)
101
+ external
102
+ onlyOwner()
103
+ {
104
+ _instanceService.setStakingRewardRate(rewardRate);
308
105
  }
309
106
 
310
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
311
- update(toPolicyKey32(policyNftId), abi.encode(policy), newState);
107
+ function refillStakingRewardReserves(Amount dipAmount)
108
+ external
109
+ onlyOwner()
110
+ {
111
+ address instanceOwner = msg.sender;
112
+ _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
312
113
  }
313
114
 
314
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
315
- updateState(toPolicyKey32(policyNftId), newState);
115
+ function withdrawStakingRewardReserves(Amount dipAmount)
116
+ external
117
+ onlyOwner()
118
+ returns (Amount newBalance)
119
+ {
120
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
316
121
  }
317
122
 
318
- //--- Claim -------------------------------------------------------------//
319
- function createClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
320
- create(toPolicyKey32(policyNftId), abi.encode(claim));
321
- }
123
+ //--- Roles ------------------------------------------------------------//
322
124
 
323
- function updateClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
324
- update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
325
- }
326
-
327
- function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
328
- updateState(toPolicyKey32(policyNftId), newState);
125
+ function createRole(string memory roleName, string memory adminName)
126
+ external
127
+ onlyOwner()
128
+ returns (RoleId roleId, RoleId admin)
129
+ {
130
+ // TODO refactor
131
+ // (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
329
132
  }
330
133
 
331
- //--- Payout ------------------------------------------------------------//
332
- function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
333
- create(toPolicyKey32(policyNftId), abi.encode(payout));
134
+ function grantRole(RoleId roleId, address account)
135
+ external
136
+ onlyOwner()
137
+ {
138
+ _instanceAdmin.grantRole(roleId, account);
334
139
  }
335
140
 
336
- function updateClaim(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
337
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
141
+ function revokeRole(RoleId roleId, address account)
142
+ external
143
+ onlyOwner()
144
+ {
145
+ // TODO refactor
146
+ // AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
338
147
  }
339
148
 
340
- function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
341
- updateState(toPolicyKey32(policyNftId), newState);
342
- }
149
+ //--- Targets ------------------------------------------------------------//
343
150
 
344
- //--- internal view/pure functions --------------------------------------//
345
- function _toRole(RoleId roleId, string memory name, bool isCustom)
346
- internal
347
- pure
348
- returns (IAccess.RoleInfo memory role)
151
+ function createTarget(address target, string memory name)
152
+ external
153
+ onlyOwner()
349
154
  {
350
- return IAccess.RoleInfo(
351
- ShortStrings.toShortString(name),
352
- isCustom);
155
+ // TODO refactor
156
+ // _instanceAdmin.createTarget(target, name);
353
157
  }
354
158
 
355
- function _validateRoleParameters(
356
- RoleId roleId,
357
- string memory name,
358
- bool isCustom
359
- )
360
- internal
361
- view
362
- returns (
363
- bool roleExists,
364
- bool roleIsCustom
365
- )
159
+ function setTargetFunctionRole(
160
+ string memory targetName,
161
+ bytes4[] calldata selectors,
162
+ RoleId roleId
163
+ )
164
+ external
165
+ onlyOwner()
366
166
  {
367
- Key32 roleKey = toRoleKey32(roleId);
368
- roleExists = exists(roleKey);
369
- if (roleExists) {
370
- roleIsCustom = abi.decode(getData(roleKey), (IAccess.RoleInfo)).isCustom;
371
- } else {
372
- roleIsCustom = isCustom;
373
- }
374
-
375
- // check role id
376
- uint64 roleIdInt = RoleId.unwrap(roleId);
377
- if(roleIdInt == ADMIN_ROLE || roleIdInt == PUBLIC_ROLE) {
378
- revert IAccess.ErrorRoleIdInvalid(roleId);
379
- }
380
-
381
- if (roleIsCustom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
382
- revert IAccess.ErrorRoleIdTooSmall(roleId);
383
- } else if (roleIsCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
384
- revert IAccess.ErrorRoleIdTooBig(roleId);
385
- }
386
-
387
- // role name checks
388
- ShortString nameShort = ShortStrings.toShortString(name);
389
- if (ShortStrings.byteLength(nameShort) == 0) {
390
- revert IAccess.ErrorRoleNameEmpty(roleId);
391
- }
392
-
393
- if (_role[nameShort] != RoleIdLib.zero() && _role[nameShort] != roleId) {
394
- revert IAccess.ErrorRoleNameNotUnique(_role[nameShort], nameShort);
395
- }
167
+ // TODO refactor
168
+ // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
396
169
  }
397
170
 
398
- function _validateTargetParameters(address target, IAccess.TargetInfo memory targetInfo) internal view {
399
-
171
+ function setTargetLocked(address target, bool locked)
172
+ external
173
+ onlyOwner()
174
+ {
175
+ // TODO refactor
176
+ // _instanceAdmin.setTargetLockedByInstance(target, locked);
400
177
  }
401
178
 
402
- function toRoleKey32(RoleId roleId) public pure returns (Key32) {
403
- return roleId.toKey32();
404
- }
179
+ //--- ITransferInterceptor ----------------------------------------------//
405
180
 
406
- function toTargetKey32(address target) public pure returns (Key32) {
407
- return Key32Lib.toKey32(TARGET(), KeyId.wrap(bytes20(target)));
181
+ // TODO interception of child components nfts
182
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
183
+ // TODO refactor
184
+ // _instanceAdmin.transferInstanceOwnerRole(address(0), to);
408
185
  }
409
186
 
410
- function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
411
- return nftId.toKey32(objectType);
187
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
188
+ // TODO refactor
189
+ // _instanceAdmin.transferInstanceOwnerRole(from, to);
412
190
  }
413
191
 
414
- function toBundleKey32(NftId bundleNftId) public pure returns (Key32) {
415
- return bundleNftId.toKey32(BUNDLE());
416
- }
192
+ //--- initial setup functions -------------------------------------------//
417
193
 
418
- function toPolicyKey32(NftId policyNftId) public pure returns (Key32) {
419
- return policyNftId.toKey32(POLICY());
420
- }
421
194
 
422
- function getComponentOwnerService() external view returns (IComponentOwnerService) {
423
- return ComponentOwnerService(_registry.getServiceAddress(COMPONENT(), VersionPart.wrap(3)));
424
- }
195
+ function setInstanceReader(InstanceReader instanceReader)
196
+ external
197
+ restricted()
198
+ {
199
+ if(instanceReader.getInstance() != Instance(this)) {
200
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
201
+ }
425
202
 
426
- function getDistributionService() external view returns (IDistributionService) {
427
- return IDistributionService(_registry.getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
203
+ _instanceReader = instanceReader;
428
204
  }
429
205
 
430
- function getProductService() external view returns (IProductService) {
431
- return IProductService(_registry.getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
432
- }
206
+ //--- external view functions -------------------------------------------//
433
207
 
434
- function getPoolService() external view returns (IPoolService) {
435
- return IPoolService(_registry.getServiceAddress(POOL(), VersionPart.wrap(3)));
208
+ function getInstanceReader() external view returns (InstanceReader) {
209
+ return _instanceReader;
436
210
  }
437
211
 
438
- function getPolicyService() external view returns (IPolicyService) {
439
- return IPolicyService(_registry.getServiceAddress(POLICY(), VersionPart.wrap(3)));
212
+ function getBundleSet() external view returns (BundleSet) {
213
+ return _bundleManager;
440
214
  }
441
215
 
442
- function getBundleService() external view returns (IBundleService) {
443
- return IBundleService(_registry.getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
216
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
217
+ return _instanceAdmin;
444
218
  }
445
219
 
446
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
447
- require(instanceReader.getInstanceNftId() == getNftId(), "NFT ID of InstanceReader does not match");
448
- _instanceReader = instanceReader;
220
+ function getInstanceStore() external view returns (InstanceStore) {
221
+ return _instanceStore;
449
222
  }
450
223
 
451
- function getInstanceReader() external view returns (InstanceReader) {
452
- return _instanceReader;
453
- }
454
-
455
- function setBundleManager(BundleManager bundleManager) external restricted() {
456
- require(address(_bundleManager) == address(0), "BundleManager is set");
457
- require(bundleManager.getInstanceNftId() == getNftId(), "NFT ID of BundleManager does not match");
458
- _bundleManager = bundleManager;
224
+ function getMajorVersion() public pure returns (VersionPart majorVersion) {
225
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
459
226
  }
460
227
 
461
- function getBundleManager() external view returns (BundleManager) {
462
- return _bundleManager;
463
- }
464
- }
228
+ //--- internal view/pure functions --------------------------------------//
229
+ }