@etherisc/gif-next 0.0.2-fd275d2-234 → 0.0.2-fd2ea71-734

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 +79 -19
  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 +1502 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +842 -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 +914 -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 +389 -3093
  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 +668 -397
  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 +3469 -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/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  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 +1466 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +818 -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 +1218 -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 +1625 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +758 -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 +1331 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  123. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -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 +788 -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} +410 -370
  130. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +253 -373
  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/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → product/IRiskService.sol/IRiskService.json} +124 -166
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  137. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1263 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  139. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  141. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  143. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -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 +377 -112
  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 +611 -189
  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/{instance/service/IDistributionService.sol/IDistributionService.json → shared/IComponent.sol/IComponent.json} +323 -164
  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/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
  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/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  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 +1412 -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 +387 -0
  234. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  235. package/artifacts/contracts/staking/Staking.sol/Staking.json +1941 -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 +761 -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 +576 -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 +222 -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 +322 -0
  322. package/contracts/distribution/DistributionServiceManager.sol +39 -0
  323. package/contracts/distribution/IDistributionComponent.sol +52 -0
  324. package/contracts/distribution/IDistributionService.sol +95 -0
  325. package/contracts/instance/BundleSet.sol +126 -0
  326. package/contracts/instance/IInstance.sol +56 -49
  327. package/contracts/instance/IInstanceService.sol +78 -18
  328. package/contracts/instance/Instance.sol +157 -382
  329. package/contracts/instance/InstanceAdmin.sol +285 -0
  330. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  331. package/contracts/instance/InstanceReader.sol +180 -87
  332. package/contracts/instance/InstanceService.sol +410 -175
  333. package/contracts/instance/InstanceServiceManager.sol +13 -30
  334. package/contracts/instance/InstanceStore.sol +277 -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 +105 -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 +56 -17
  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 +436 -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 +163 -0
  362. package/contracts/pool/Pool.sol +328 -0
  363. package/contracts/pool/PoolService.sol +541 -0
  364. package/contracts/pool/PoolServiceManager.sol +39 -0
  365. package/contracts/product/ApplicationService.sol +250 -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 +416 -0
  370. package/contracts/product/ClaimServiceManager.sol +38 -0
  371. package/contracts/product/IApplicationService.sol +63 -0
  372. package/contracts/product/IClaimService.sol +100 -0
  373. package/contracts/product/IPolicyService.sol +84 -0
  374. package/contracts/product/IPricingService.sol +39 -0
  375. package/contracts/product/IProductComponent.sol +40 -0
  376. package/contracts/product/IRiskService.sol +33 -0
  377. package/contracts/product/PolicyService.sol +584 -0
  378. package/contracts/product/PolicyServiceManager.sol +39 -0
  379. package/contracts/product/PricingService.sol +304 -0
  380. package/contracts/product/PricingServiceManager.sol +39 -0
  381. package/contracts/product/Product.sol +411 -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 +85 -32
  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 +200 -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 +167 -0
  424. package/contracts/staking/IStakingService.sol +160 -0
  425. package/contracts/staking/StakeManagerLib.sol +206 -0
  426. package/contracts/staking/Staking.sol +497 -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 +207 -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 +271 -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 +93 -0
  449. package/contracts/type/Selector.sol +102 -0
  450. package/contracts/{types → type}/StateId.sol +34 -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/BaseComponent.sol/BaseComponent.json +0 -327
  462. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  463. package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
  464. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  465. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
  466. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  467. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
  468. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  469. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
  470. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  471. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
  472. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  473. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -787
  474. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  475. package/artifacts/contracts/components/Product.sol/Product.json +0 -729
  476. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  477. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  478. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  479. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  480. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  481. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  482. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  483. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  484. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  485. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  486. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  487. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  488. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  489. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  490. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  491. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  492. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  493. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  494. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  495. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  496. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  497. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  499. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  501. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  503. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  505. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  506. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  507. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  508. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  509. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  510. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  511. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  512. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  513. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  514. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
  515. package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
  516. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
  517. package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
  518. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  519. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -809
  520. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  521. package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
  522. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  523. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
  524. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  525. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
  526. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  527. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  528. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
  529. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  530. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  531. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  532. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  533. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  534. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  535. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  536. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  537. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  538. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
  539. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  540. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
  541. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  542. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
  543. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  544. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  545. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  546. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  547. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  548. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
  549. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  550. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
  551. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  552. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
  553. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  554. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
  555. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  556. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  557. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  558. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
  559. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  560. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -205
  561. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  562. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -349
  563. package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
  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 -91
  622. package/contracts/components/Distribution.sol +0 -163
  623. package/contracts/components/IBaseComponent.sol +0 -25
  624. package/contracts/components/IDistributionComponent.sol +0 -44
  625. package/contracts/components/IPoolComponent.sol +0 -62
  626. package/contracts/components/IProductComponent.sol +0 -35
  627. package/contracts/components/Pool.sol +0 -247
  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/AccessManagedSimple.sol +0 -115
  645. package/contracts/instance/AccessManagerSimple.sol +0 -692
  646. package/contracts/instance/BundleManager.sol +0 -152
  647. package/contracts/instance/IAccessManagerSimple.sol +0 -391
  648. package/contracts/instance/InstanceAccessManager.sol +0 -288
  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 -43
  661. package/contracts/instance/service/IProductService.sol +0 -110
  662. package/contracts/instance/service/PoolService.sol +0 -206
  663. package/contracts/instance/service/PoolServiceManager.sol +0 -54
  664. package/contracts/instance/service/ProductService.sol +0 -561
  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,454 +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 {BundleManager} from "./BundleManager.sol";
19
- import {NftId} from "../types/NftId.sol";
20
- import {NumberId} from "../types/NumberId.sol";
21
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET} from "../types/ObjectType.sol";
22
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
23
- import {RoleId, RoleIdLib} from "../types/RoleId.sol";
24
- import {StateId, ACTIVE} from "../types/StateId.sol";
25
- 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";
26
15
  import {Registerable} from "../shared/Registerable.sol";
27
- import {ComponentOwnerService} from "./service/ComponentOwnerService.sol";
28
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
29
- import {IDistributionService} from "./service/IDistributionService.sol";
30
- import {IPoolService} from "./service/IPoolService.sol";
31
- import {IProductService} from "./service/IProductService.sol";
32
- 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";
33
20
 
34
21
  contract Instance is
35
- AccessManagedSimple,
36
- KeyValueStore,
37
22
  IInstance,
38
- ERC165,
23
+ AccessManagedUpgradeable,
39
24
  Registerable
40
25
  {
41
-
42
- uint64 public constant ADMIN_ROLE = type(uint64).min;
43
- uint64 public constant PUBLIC_ROLE = type(uint64).max;
44
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
45
-
46
- uint32 public constant EXECUTION_DELAY = 0;
26
+ uint256 public constant GIF_MAJOR_VERSION = 3;
47
27
 
48
28
  bool private _initialized;
49
29
 
50
- mapping(ShortString name => RoleId roleId) internal _role;
51
- mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
52
- RoleId [] internal _roles;
53
-
54
- mapping(ShortString name => address target) internal _target;
55
-
56
- AccessManagerSimple internal _accessManager;
30
+ IInstanceService internal _instanceService;
31
+ InstanceAdmin internal _instanceAdmin;
57
32
  InstanceReader internal _instanceReader;
58
- BundleManager internal _bundleManager;
59
-
60
- constructor(address accessManagerAddress, address registryAddress, NftId registryNftId)
61
- {
62
- initialize(accessManagerAddress, registryAddress, registryNftId, msg.sender);
63
- }
64
-
65
- function initialize(address accessManagerAddress, address registryAddress, NftId registryNftId, address initialOwner) public {
66
- require(!_initialized, "Contract instance has already been initialized");
67
-
68
- initializeAccessManagedSimple(accessManagerAddress);
69
-
70
- _accessManager = AccessManagerSimple(accessManagerAddress);
71
- _createRole(RoleIdLib.toRoleId(ADMIN_ROLE), "AdminRole", false, false);
72
- _createRole(RoleIdLib.toRoleId(PUBLIC_ROLE), "PublicRole", false, false);
73
-
74
- _initializeRegisterable(registryAddress, registryNftId, INSTANCE(), false, initialOwner, "");
75
-
76
- _registerInterface(type(IInstance).interfaceId);
77
- _initialized = true;
78
- }
79
-
80
- //--- Role ------------------------------------------------------//
81
- function createStandardRole(RoleId roleId, string memory name) external restricted() {
82
- _createRole(roleId, name, false, true);
83
- }
84
-
85
- function createCustomRole(RoleId roleId, string memory name) external restricted() {
86
- _createRole(roleId, name, true, true);
87
- }
88
-
89
- function updateRole(RoleId roleId, string memory name, StateId newState) external restricted() {
90
- (bool isCustom,) = _validateRoleParameters(roleId, name, false);
91
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
92
- update(toRoleKey32(roleId), abi.encode(role), newState);
93
- }
94
-
95
- function updateRoleState(RoleId roleId, StateId newState) external restricted() {
96
- updateState(toRoleKey32(roleId), newState);
97
- }
98
-
99
- function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
100
- Key32 roleKey = toRoleKey32(roleId);
101
-
102
- if (!exists(roleKey)) {
103
- revert IAccess.ErrorGrantNonexstentRole(roleId);
104
- }
105
-
106
- if (getState(roleKey) != ACTIVE()) {
107
- revert IAccess.ErrorRoleIdNotActive(roleId);
108
- }
109
-
110
- if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
111
- _accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
112
- EnumerableSet.add(_roleMembers[roleId], member);
113
- return true;
114
- }
115
-
116
- return false;
117
- }
33
+ BundleSet internal _bundleManager;
34
+ InstanceStore internal _instanceStore;
118
35
 
119
- function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
120
- Key32 roleKey = toRoleKey32(roleId);
121
-
122
- if (!exists(roleKey)) {
123
- revert IAccess.ErrorRevokeNonexstentRole(roleId);
36
+ modifier onlyChainNft() {
37
+ if(msg.sender != getRegistry().getChainNftAddress()) {
38
+ revert();
124
39
  }
125
-
126
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
127
- _accessManager.revokeRole(roleId.toInt(), member);
128
- EnumerableSet.remove(_roleMembers[roleId], member);
129
- return true;
130
- }
131
-
132
- return false;
133
- }
134
-
135
- /// @dev not restricted function by intention
136
- /// the restriction to role members is already enforced by the call to the access manger
137
- function renounceRole(RoleId roleId) external returns (bool revoked) {
138
- address member = msg.sender;
139
- Key32 roleKey = toRoleKey32(roleId);
140
-
141
- if (!exists(roleKey)) {
142
- revert IAccess.ErrorRenounceNonexstentRole(roleId);
143
- }
144
-
145
- if (EnumerableSet.contains(_roleMembers[roleId], member)) {
146
- _accessManager.renounceRole(roleId.toInt(), member);
147
- EnumerableSet.remove(_roleMembers[roleId], member);
148
- return true;
149
- }
150
-
151
- return false;
152
- }
153
-
154
- function roles() external view returns (uint256 numberOfRoles) {
155
- return _roles.length;
156
- }
157
-
158
- function getRoleId(uint256 idx) external view returns (RoleId roleId) {
159
- return _roles[idx];
160
- }
161
-
162
- function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
163
- return abi.decode(getData(roleId.toKey32()), (IAccess.RoleInfo));
164
- }
165
-
166
- function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
167
- return EnumerableSet.length(_roleMembers[roleId]);
168
- }
169
-
170
- function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
171
- return EnumerableSet.at(_roleMembers[roleId], idx);
172
- }
173
-
174
- function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
175
- if (validateParameters) {
176
- _validateRoleParameters(roleId, name, isCustom);
177
- }
178
-
179
- IAccess.RoleInfo memory role = _toRole(roleId, name, isCustom);
180
- _role[role.name] = roleId;
181
- _roles.push(roleId);
182
-
183
- create(toRoleKey32(roleId), abi.encode(role));
184
- }
185
-
186
- //--- Target ------------------------------------------------------//
187
- function createTarget(address target, IAccess.TargetInfo memory targetInfo) external restricted() {
188
- _validateTargetParameters(target, targetInfo);
189
- create(toTargetKey32(target), abi.encode(targetInfo));
190
- }
191
-
192
- function setTargetClosed(address target, bool closed) external restricted() {
193
- if (!exists(toTargetKey32(target))) {
194
- 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();
195
58
  }
196
59
 
197
- _accessManager.setTargetClosed(target, closed);
198
- }
60
+ // set authority to instance admin authority
61
+ __AccessManaged_init(_instanceAdmin.authority());
199
62
 
200
- //--- ProductSetup ------------------------------------------------------//
201
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
202
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
203
- }
204
-
205
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
206
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
207
- }
208
-
209
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
210
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
211
- }
212
-
213
- //--- DistributionSetup ------------------------------------------------------//
214
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
215
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
216
- }
217
-
218
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
219
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
220
- }
63
+ // setup instance object info
64
+ initializeRegisterable(
65
+ address(registry),
66
+ registry.getNftId(),
67
+ INSTANCE(),
68
+ true,
69
+ initialOwner,
70
+ "");
221
71
 
222
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
223
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
224
- }
225
-
226
- //--- PoolSetup ------------------------------------------------------//
227
- function createPoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup) external restricted() {
228
- create(_toNftKey32(poolNftId, POOL()), abi.encode(setup));
229
- }
230
-
231
- function updatePoolSetup(NftId poolNftId, ISetup.PoolSetupInfo memory setup, StateId newState) external restricted() {
232
- update(_toNftKey32(poolNftId, POOL()), abi.encode(setup), newState);
233
- }
234
-
235
- function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
236
- updateState(_toNftKey32(poolNftId, POOL()), newState);
237
- }
238
-
239
- //--- DistributorType ---------------------------------------------------//
240
- function createDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
241
- create(toPolicyKey32(policyNftId), abi.encode(payout));
242
- }
243
-
244
- function updateDistributorType(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
245
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
246
- }
247
-
248
- function updateDistributorTypeState(NftId policyNftId, StateId newState) external restricted() {
249
- updateState(toPolicyKey32(policyNftId), newState);
250
- }
251
-
252
- //--- Distributor -------------------------------------------------------//
253
- function createDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
254
- create(toPolicyKey32(policyNftId), abi.encode(payout));
255
- }
256
-
257
- function updateDistributor(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
258
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
259
- }
260
-
261
- function updateDistributorState(NftId policyNftId, StateId newState) external restricted() {
262
- updateState(toPolicyKey32(policyNftId), newState);
263
- }
264
-
265
- //--- Referral ----------------------------------------------------------//
266
- function createReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
267
- create(toPolicyKey32(policyNftId), abi.encode(payout));
268
- }
269
-
270
- function updateReferral(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
271
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
272
- }
273
-
274
- function updateReferralState(NftId policyNftId, StateId newState) external restricted() {
275
- updateState(toPolicyKey32(policyNftId), newState);
276
- }
277
-
278
- //--- Bundle ------------------------------------------------------------//
279
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
280
- create(toBundleKey32(bundleNftId), abi.encode(bundle));
281
- }
72
+ // store instance supporting contracts
73
+ _instanceStore = instanceStore;
74
+ _bundleManager = bundleManager;
75
+ _instanceReader = instanceReader;
282
76
 
283
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
284
- update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
285
- }
77
+ // initialize instance supporting contracts
78
+ _instanceStore.initialize();
79
+ _bundleManager.initialize();
80
+ _instanceReader.initialize();
286
81
 
287
- function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
288
- updateState(toBundleKey32(bundleNftId), newState);
289
- }
82
+ _instanceService = IInstanceService(
83
+ getRegistry().getServiceAddress(
84
+ INSTANCE(),
85
+ getMajorVersion()));
290
86
 
291
- //--- Risk --------------------------------------------------------------//
292
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
293
- create(riskId.toKey32(), abi.encode(risk));
87
+ registerInterface(type(IInstance).interfaceId);
294
88
  }
295
89
 
296
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
297
- update(riskId.toKey32(), abi.encode(risk), newState);
298
- }
90
+ //--- Staking ----------------------------------------------------------//
299
91
 
300
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
301
- 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);
302
98
  }
303
99
 
304
- //--- Policy ------------------------------------------------------------//
305
- function createPolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy) external restricted() {
306
- create(toPolicyKey32(policyNftId), abi.encode(policy));
100
+ function setStakingRewardRate(UFixed rewardRate)
101
+ external
102
+ onlyOwner()
103
+ {
104
+ _instanceService.setStakingRewardRate(rewardRate);
307
105
  }
308
106
 
309
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
310
- 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);
311
113
  }
312
114
 
313
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
314
- updateState(toPolicyKey32(policyNftId), newState);
115
+ function withdrawStakingRewardReserves(Amount dipAmount)
116
+ external
117
+ onlyOwner()
118
+ returns (Amount newBalance)
119
+ {
120
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
315
121
  }
316
122
 
317
- //--- Claim -------------------------------------------------------------//
318
- function createClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
319
- create(toPolicyKey32(policyNftId), abi.encode(claim));
320
- }
123
+ //--- Roles ------------------------------------------------------------//
321
124
 
322
- function updateClaim(NftId policyNftId, NumberId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
323
- 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);
324
132
  }
325
133
 
326
- function updateClaimState(NftId policyNftId, StateId newState) external restricted() {
327
- updateState(toPolicyKey32(policyNftId), newState);
134
+ function grantRole(RoleId roleId, address account)
135
+ external
136
+ onlyOwner()
137
+ {
138
+ _instanceAdmin.grantRole(roleId, account);
328
139
  }
329
140
 
330
- //--- Payout ------------------------------------------------------------//
331
- function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
332
- 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);
333
147
  }
334
148
 
335
- function updateClaim(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
336
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
337
- }
149
+ //--- Targets ------------------------------------------------------------//
338
150
 
339
- function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
340
- 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);
341
157
  }
342
158
 
343
- //--- internal view/pure functions --------------------------------------//
344
- function _toRole(RoleId roleId, string memory name, bool isCustom)
345
- internal
346
- pure
347
- returns (IAccess.RoleInfo memory role)
159
+ function setTargetFunctionRole(
160
+ string memory targetName,
161
+ bytes4[] calldata selectors,
162
+ RoleId roleId
163
+ )
164
+ external
165
+ onlyOwner()
348
166
  {
349
- return IAccess.RoleInfo(
350
- ShortStrings.toShortString(name),
351
- isCustom);
167
+ // TODO refactor
168
+ // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
352
169
  }
353
170
 
354
- function _validateRoleParameters(
355
- RoleId roleId,
356
- string memory name,
357
- bool isCustom
358
- )
359
- internal
360
- view
361
- returns (
362
- bool roleExists,
363
- bool roleIsCustom
364
- )
171
+ function setTargetLocked(address target, bool locked)
172
+ external
173
+ onlyOwner()
365
174
  {
366
- Key32 roleKey = toRoleKey32(roleId);
367
- roleExists = exists(roleKey);
368
- if (roleExists) {
369
- roleIsCustom = abi.decode(getData(roleKey), (IAccess.RoleInfo)).isCustom;
370
- } else {
371
- roleIsCustom = isCustom;
372
- }
373
-
374
- // check role id
375
- uint64 roleIdInt = RoleId.unwrap(roleId);
376
- if(roleIdInt == ADMIN_ROLE || roleIdInt == PUBLIC_ROLE) {
377
- revert IAccess.ErrorRoleIdInvalid(roleId);
378
- }
379
-
380
- if (roleIsCustom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
381
- revert IAccess.ErrorRoleIdTooSmall(roleId);
382
- } else if (roleIsCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
383
- revert IAccess.ErrorRoleIdTooBig(roleId);
384
- }
385
-
386
- // role name checks
387
- ShortString nameShort = ShortStrings.toShortString(name);
388
- if (ShortStrings.byteLength(nameShort) == 0) {
389
- revert IAccess.ErrorRoleNameEmpty(roleId);
390
- }
391
-
392
- if (_role[nameShort] != RoleIdLib.zero() && _role[nameShort] != roleId) {
393
- revert IAccess.ErrorRoleNameNotUnique(_role[nameShort], nameShort);
394
- }
175
+ // TODO refactor
176
+ // _instanceAdmin.setTargetLockedByInstance(target, locked);
395
177
  }
396
178
 
397
- function _validateTargetParameters(address target, IAccess.TargetInfo memory targetInfo) internal view {
179
+ //--- ITransferInterceptor ----------------------------------------------//
398
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);
399
185
  }
400
186
 
401
- function toRoleKey32(RoleId roleId) public pure returns (Key32) {
402
- return roleId.toKey32();
187
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
188
+ // TODO refactor
189
+ // _instanceAdmin.transferInstanceOwnerRole(from, to);
403
190
  }
404
191
 
405
- function toTargetKey32(address target) public pure returns (Key32) {
406
- return Key32Lib.toKey32(TARGET(), KeyId.wrap(bytes20(target)));
407
- }
192
+ //--- initial setup functions -------------------------------------------//
408
193
 
409
- function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
410
- return nftId.toKey32(objectType);
411
- }
412
194
 
413
- function toBundleKey32(NftId bundleNftId) public pure returns (Key32) {
414
- return bundleNftId.toKey32(BUNDLE());
415
- }
195
+ function setInstanceReader(InstanceReader instanceReader)
196
+ external
197
+ restricted()
198
+ {
199
+ if(instanceReader.getInstance() != Instance(this)) {
200
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
201
+ }
416
202
 
417
- function toPolicyKey32(NftId policyNftId) public pure returns (Key32) {
418
- return policyNftId.toKey32(POLICY());
203
+ _instanceReader = instanceReader;
419
204
  }
420
205
 
421
- function getComponentOwnerService() external view returns (IComponentOwnerService) {
422
- return ComponentOwnerService(_registry.getServiceAddress("ComponentOwnerService", VersionPart.wrap(3)));
423
- }
206
+ //--- external view functions -------------------------------------------//
424
207
 
425
- function getDistributionService() external view returns (IDistributionService) {
426
- return IDistributionService(_registry.getServiceAddress("DistributionService", VersionPart.wrap(3)));
208
+ function getInstanceReader() external view returns (InstanceReader) {
209
+ return _instanceReader;
427
210
  }
428
211
 
429
- function getProductService() external view returns (IProductService) {
430
- return IProductService(_registry.getServiceAddress("ProductService", VersionPart.wrap(3)));
212
+ function getBundleSet() external view returns (BundleSet) {
213
+ return _bundleManager;
431
214
  }
432
215
 
433
- function getPoolService() external view returns (IPoolService) {
434
- return IPoolService(_registry.getServiceAddress("PoolService", VersionPart.wrap(3)));
216
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
217
+ return _instanceAdmin;
435
218
  }
436
219
 
437
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
438
- require(address(_instanceReader) == address(0), "InstanceReader is set");
439
- _instanceReader = instanceReader;
220
+ function getInstanceStore() external view returns (InstanceStore) {
221
+ return _instanceStore;
440
222
  }
441
223
 
442
- function getInstanceReader() external view returns (InstanceReader) {
443
- return _instanceReader;
444
- }
445
-
446
- function setBundleManager(BundleManager bundleManager) external restricted() {
447
- require(address(_bundleManager) == address(0), "BundleManager is set");
448
- _bundleManager = bundleManager;
224
+ function getMajorVersion() public pure returns (VersionPart majorVersion) {
225
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
449
226
  }
450
227
 
451
- function getBundleManager() external view returns (BundleManager) {
452
- return _bundleManager;
453
- }
454
- }
228
+ //--- internal view/pure functions --------------------------------------//
229
+ }