@etherisc/gif-next 0.0.2-fb8d07b-779 → 0.0.2-fbe6493-116

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