@etherisc/gif-next 0.0.2-d60aa51-726 → 0.0.2-d62f29e-108

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