@etherisc/gif-next 0.0.2-c96f882-016 → 0.0.2-c9ad04b-619

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