@etherisc/gif-next 0.0.2-e875d61-189 → 0.0.2-e8b06c8-540

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 (719) hide show
  1. package/README.md +267 -40
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
  4. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  6. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  7. package/artifacts/contracts/{instance/module/access → authorization}/IAccess.sol/IAccess.json +1 -1
  8. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  10. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  12. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  14. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
  16. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  17. package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -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 +171 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -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 +1191 -0
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1394 -0
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +900 -0
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +843 -0
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +703 -0
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +240 -1457
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +752 -0
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +386 -1697
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  46. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
  48. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  49. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  50. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  51. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
  52. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1735 -0
  54. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1155 -0
  56. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
  57. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
  58. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  59. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3592 -0
  60. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  61. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  62. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  63. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +137 -0
  64. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  66. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  67. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +181 -0
  68. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +4 -0
  69. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
  70. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
  72. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  73. package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
  74. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
  75. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
  76. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
  77. package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
  78. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
  79. package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.json +1 -1
  80. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  81. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  82. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  84. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  86. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  88. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  90. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  92. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  94. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  96. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  98. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  100. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  102. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  104. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  106. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +703 -0
  108. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +959 -0
  110. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  112. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  113. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  114. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  116. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  118. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  120. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  122. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  124. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  126. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  128. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  130. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  131. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +256 -221
  132. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  134. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  136. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
  138. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  140. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  141. package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
  142. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  144. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  146. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  148. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  150. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  151. package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
  152. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  153. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  154. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  156. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +199 -12
  158. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +678 -77
  160. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +1123 -0
  162. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +865 -107
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +4 -0
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
  172. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1237 -0
  174. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +195 -0
  176. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
  177. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
  178. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  179. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  180. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  181. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
  182. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  183. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
  184. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  185. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
  186. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  187. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
  188. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  189. package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
  190. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  191. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  192. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  193. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  194. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  195. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
  196. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  198. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  199. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  200. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  201. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  202. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  203. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
  204. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  205. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  206. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  207. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +718 -0
  208. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  209. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +77 -169
  210. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  211. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  212. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +4 -0
  213. package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
  214. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  215. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  216. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  217. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
  218. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  219. package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
  220. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
  221. package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +154 -152
  222. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +16 -125
  224. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  225. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  226. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  227. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  228. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  229. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  230. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  231. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  232. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  233. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  234. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +4 -0
  235. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
  236. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  237. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  238. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  239. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +617 -0
  240. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  241. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
  242. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  243. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  244. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
  245. package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
  246. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
  247. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
  248. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  249. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  250. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +29 -115
  252. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  253. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  254. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  255. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  256. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  257. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  258. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  259. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  260. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  261. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  262. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  263. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  264. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  265. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  266. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  267. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  268. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
  270. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  271. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  272. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  273. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  274. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  276. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  278. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  280. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
  282. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  284. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
  286. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  288. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  289. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +33 -0
  290. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  292. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  293. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  294. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  295. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  296. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  298. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  299. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +86 -0
  300. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  301. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  302. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  303. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  304. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  305. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  306. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  307. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  308. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  309. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  310. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  311. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  312. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  313. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  314. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  315. package/artifacts/contracts/{types/ChainId.sol/ChainIdLib.json → type/UFixed.sol/MathLib.json} +4 -4
  316. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  317. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  318. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  319. package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
  320. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  321. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +49 -0
  322. package/contracts/authorization/AccessAdmin.sol +622 -0
  323. package/contracts/authorization/Authorization.sol +218 -0
  324. package/contracts/authorization/IAccess.sol +48 -0
  325. package/contracts/authorization/IAccessAdmin.sol +136 -0
  326. package/contracts/authorization/IAuthorization.sol +54 -0
  327. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  328. package/contracts/authorization/IServiceAuthorization.sol +35 -0
  329. package/contracts/authorization/InstanceAdmin.sol +108 -0
  330. package/contracts/authorization/ModuleAuthorization.sol +203 -0
  331. package/contracts/authorization/ServiceAuthorization.sol +86 -0
  332. package/contracts/distribution/BasicDistribution.sol +149 -0
  333. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  334. package/contracts/distribution/Distribution.sol +283 -0
  335. package/contracts/distribution/DistributionService.sol +303 -0
  336. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  337. package/contracts/distribution/IDistributionComponent.sol +78 -0
  338. package/contracts/distribution/IDistributionService.sol +85 -0
  339. package/contracts/instance/BundleManager.sol +126 -0
  340. package/contracts/instance/IInstance.sol +79 -43
  341. package/contracts/instance/IInstanceService.sol +91 -0
  342. package/contracts/instance/Instance.sol +278 -56
  343. package/contracts/instance/InstanceAdmin.sol +334 -0
  344. package/contracts/instance/InstanceAdminNew.sol +261 -0
  345. package/contracts/instance/InstanceAuthorizationV3.sol +213 -0
  346. package/contracts/instance/InstanceAuthorizationsLib.sol +422 -0
  347. package/contracts/instance/InstanceReader.sol +410 -0
  348. package/contracts/instance/InstanceService.sol +516 -0
  349. package/contracts/instance/InstanceServiceManager.sol +44 -0
  350. package/contracts/instance/InstanceStore.sol +273 -0
  351. package/contracts/instance/base/BalanceStore.sol +123 -0
  352. package/contracts/instance/base/Cloneable.sol +28 -0
  353. package/contracts/instance/base/ObjectCounter.sol +21 -0
  354. package/contracts/instance/base/ObjectManager.sol +79 -0
  355. package/contracts/instance/module/IAccess.sol +46 -0
  356. package/contracts/instance/module/IBundle.sol +20 -0
  357. package/contracts/instance/module/IComponents.sol +52 -0
  358. package/contracts/instance/module/IDistribution.sol +42 -0
  359. package/contracts/instance/module/IPolicy.sol +84 -0
  360. package/contracts/instance/module/IRisk.sol +11 -0
  361. package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
  362. package/contracts/oracle/BasicOracle.sol +48 -0
  363. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  364. package/contracts/oracle/IOracle.sol +36 -0
  365. package/contracts/oracle/IOracleComponent.sol +32 -0
  366. package/contracts/oracle/IOracleService.sol +65 -0
  367. package/contracts/oracle/Oracle.sol +157 -0
  368. package/contracts/oracle/OracleService.sol +278 -0
  369. package/contracts/oracle/OracleServiceManager.sol +42 -0
  370. package/contracts/pool/BasicPool.sol +164 -0
  371. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  372. package/contracts/pool/BundleService.sol +296 -0
  373. package/contracts/pool/BundleServiceManager.sol +42 -0
  374. package/contracts/pool/IBundleService.sol +106 -0
  375. package/contracts/pool/IPoolComponent.sol +52 -0
  376. package/contracts/pool/IPoolService.sol +150 -0
  377. package/contracts/pool/Pool.sol +311 -0
  378. package/contracts/pool/PoolService.sol +452 -0
  379. package/contracts/pool/PoolServiceManager.sol +42 -0
  380. package/contracts/product/ApplicationService.sol +254 -0
  381. package/contracts/product/ApplicationServiceManager.sol +38 -0
  382. package/contracts/product/BasicProduct.sol +82 -0
  383. package/contracts/product/BasicProductAuthorization.sol +40 -0
  384. package/contracts/product/ClaimService.sol +442 -0
  385. package/contracts/product/ClaimServiceManager.sol +38 -0
  386. package/contracts/product/IApplicationService.sol +62 -0
  387. package/contracts/product/IClaimService.sol +99 -0
  388. package/contracts/product/IPolicyService.sol +78 -0
  389. package/contracts/product/IPricingService.sol +39 -0
  390. package/contracts/product/IProductComponent.sol +39 -0
  391. package/contracts/product/IProductService.sol +33 -0
  392. package/contracts/product/PolicyService.sol +475 -0
  393. package/contracts/product/PolicyServiceManager.sol +42 -0
  394. package/contracts/product/PricingService.sol +300 -0
  395. package/contracts/product/PricingServiceManager.sol +42 -0
  396. package/contracts/product/Product.sol +392 -0
  397. package/contracts/product/ProductService.sol +124 -0
  398. package/contracts/product/ProductServiceManager.sol +42 -0
  399. package/contracts/registry/ChainNft.sol +95 -37
  400. package/contracts/registry/IRegistry.sol +95 -28
  401. package/contracts/registry/IRegistryService.sol +69 -0
  402. package/contracts/registry/ITransferInterceptor.sol +7 -0
  403. package/contracts/registry/Registry.sol +482 -281
  404. package/contracts/registry/RegistryAdmin.sol +363 -0
  405. package/contracts/registry/RegistryService.sol +266 -0
  406. package/contracts/registry/RegistryServiceManager.sol +53 -0
  407. package/contracts/registry/ReleaseManager.sol +530 -0
  408. package/contracts/registry/ServiceAuthorizationV3.sol +202 -0
  409. package/contracts/registry/TokenRegistry.sol +315 -0
  410. package/contracts/shared/AccessManagerCustom.sol +741 -0
  411. package/contracts/shared/AccessManagerExtended.sol +481 -0
  412. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  413. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  414. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  415. package/contracts/shared/Component.sol +281 -0
  416. package/contracts/shared/ComponentService.sol +626 -0
  417. package/contracts/shared/ComponentServiceManager.sol +35 -0
  418. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  419. package/contracts/shared/ERC165.sol +15 -9
  420. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  421. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  422. package/contracts/shared/IComponent.sol +70 -0
  423. package/contracts/shared/IComponentService.sol +102 -0
  424. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  425. package/contracts/shared/IKeyValueStore.sol +53 -0
  426. package/contracts/{instance/base → shared}/ILifecycle.sol +4 -4
  427. package/contracts/shared/INftOwnable.sol +23 -0
  428. package/contracts/shared/IPolicyHolder.sol +45 -0
  429. package/contracts/shared/IRegisterable.sol +10 -19
  430. package/contracts/shared/IRegistryLinked.sol +11 -0
  431. package/contracts/shared/IService.sol +25 -0
  432. package/contracts/shared/IVersionable.sol +38 -37
  433. package/contracts/shared/InitializableCustom.sol +177 -0
  434. package/contracts/shared/InstanceLinkedComponent.sol +152 -0
  435. package/contracts/shared/KeyValueStore.sol +127 -0
  436. package/contracts/{instance/base → shared}/Lifecycle.sol +47 -9
  437. package/contracts/shared/NftIdSetManager.sol +65 -0
  438. package/contracts/shared/NftOwnable.sol +107 -0
  439. package/contracts/shared/PolicyHolder.sol +102 -0
  440. package/contracts/shared/ProxyManager.sol +199 -0
  441. package/contracts/shared/Registerable.sol +54 -65
  442. package/contracts/shared/RegistryLinked.sol +43 -0
  443. package/contracts/shared/Service.sol +83 -0
  444. package/contracts/shared/TokenHandler.sol +58 -0
  445. package/contracts/shared/UpgradableProxyWithAdmin.sol +16 -0
  446. package/contracts/shared/Versionable.sol +38 -68
  447. package/contracts/staking/IStaking.sol +168 -0
  448. package/contracts/staking/IStakingService.sol +153 -0
  449. package/contracts/staking/StakeManagerLib.sol +231 -0
  450. package/contracts/staking/Staking.sol +513 -0
  451. package/contracts/staking/StakingManager.sol +54 -0
  452. package/contracts/staking/StakingReader.sol +187 -0
  453. package/contracts/staking/StakingService.sol +411 -0
  454. package/contracts/staking/StakingServiceManager.sol +44 -0
  455. package/contracts/staking/StakingStore.sol +613 -0
  456. package/contracts/staking/TargetManagerLib.sol +207 -0
  457. package/contracts/{types → type}/AddressSet.sol +1 -1
  458. package/contracts/type/Amount.sol +128 -0
  459. package/contracts/{types → type}/Blocknumber.sol +21 -3
  460. package/contracts/type/ClaimId.sol +75 -0
  461. package/contracts/type/DistributorType.sol +55 -0
  462. package/contracts/type/Fee.sol +66 -0
  463. package/contracts/{types → type}/Key32.sol +8 -3
  464. package/contracts/{types → type}/NftId.sol +21 -15
  465. package/contracts/type/NftIdSet.sol +62 -0
  466. package/contracts/type/ObjectType.sol +275 -0
  467. package/contracts/type/PayoutId.sol +82 -0
  468. package/contracts/type/Referral.sol +89 -0
  469. package/contracts/type/RequestId.sol +75 -0
  470. package/contracts/type/RiskId.sol +43 -0
  471. package/contracts/type/RoleId.sol +202 -0
  472. package/contracts/type/Seconds.sol +81 -0
  473. package/contracts/type/Selector.sol +102 -0
  474. package/contracts/{types → type}/StateId.sol +39 -5
  475. package/contracts/type/String.sol +53 -0
  476. package/contracts/{types → type}/Timestamp.sol +27 -14
  477. package/contracts/type/UFixed.sol +332 -0
  478. package/contracts/{types → type}/Version.sol +15 -2
  479. package/package.json +11 -7
  480. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
  481. package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
  482. package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
  483. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  484. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
  485. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  486. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
  487. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  488. package/artifacts/contracts/components/Pool.sol/Pool.json +0 -455
  489. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  490. package/artifacts/contracts/components/Product.sol/Product.json +0 -348
  491. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  492. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  493. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  494. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  495. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  496. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  497. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  498. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  499. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  500. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  501. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  502. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  503. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  504. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  505. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  506. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
  507. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  508. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  509. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  510. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  511. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  512. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  513. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  514. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  515. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  516. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  517. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  518. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  519. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  520. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  521. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  522. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  523. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  524. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  525. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
  526. package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
  527. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
  528. package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
  529. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
  530. package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -81
  531. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  532. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  533. package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
  534. package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
  535. package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.dbg.json +0 -4
  536. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  537. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -710
  538. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  539. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  540. package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
  541. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
  542. package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
  543. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
  544. package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
  545. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
  546. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
  547. package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
  548. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
  549. package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -265
  550. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
  551. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
  552. package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -265
  553. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
  554. package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
  555. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
  556. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
  557. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
  558. package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
  559. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
  560. package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -136
  561. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
  562. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
  563. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
  564. package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -136
  565. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
  566. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
  567. package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -273
  568. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
  569. package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -273
  570. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
  571. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
  572. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
  573. package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -144
  574. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
  575. package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -144
  576. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
  577. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
  578. package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
  579. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
  580. package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
  581. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
  582. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
  583. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
  584. package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -531
  585. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
  586. package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
  587. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
  588. package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -531
  589. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
  590. package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
  591. package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
  592. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  593. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -376
  594. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  595. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  596. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
  597. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  598. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
  599. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
  600. package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
  601. package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
  602. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
  603. package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
  604. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  605. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  606. package/artifacts/contracts/test/TestPool.sol/TestPool.dbg.json +0 -4
  607. package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -455
  608. package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
  609. package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -436
  610. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  611. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
  612. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  613. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  614. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  615. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -379
  616. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  617. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
  618. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  619. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  620. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  621. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -206
  622. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  623. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
  624. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  625. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  626. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  627. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  628. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  629. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
  630. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  631. package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
  632. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  633. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  634. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  635. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
  636. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  637. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  638. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  639. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
  640. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  641. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  642. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
  643. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
  644. package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
  645. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  646. package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
  647. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  648. package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
  649. package/contracts/components/BaseComponent.sol +0 -94
  650. package/contracts/components/IBaseComponent.sol +0 -19
  651. package/contracts/components/IPoolComponent.sol +0 -57
  652. package/contracts/components/IProductComponent.sol +0 -19
  653. package/contracts/components/Pool.sol +0 -191
  654. package/contracts/components/Product.sol +0 -134
  655. package/contracts/experiment/errors/Require.sol +0 -38
  656. package/contracts/experiment/errors/Revert.sol +0 -44
  657. package/contracts/experiment/inheritance/A.sol +0 -53
  658. package/contracts/experiment/inheritance/B.sol +0 -28
  659. package/contracts/experiment/inheritance/C.sol +0 -34
  660. package/contracts/experiment/inheritance/IA.sol +0 -13
  661. package/contracts/experiment/inheritance/IB.sol +0 -10
  662. package/contracts/experiment/inheritance/IC.sol +0 -12
  663. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  664. package/contracts/experiment/statemachine/ISM.sol +0 -25
  665. package/contracts/experiment/statemachine/README.md +0 -112
  666. package/contracts/experiment/statemachine/SM.sol +0 -57
  667. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  668. package/contracts/experiment/types/TypeA.sol +0 -47
  669. package/contracts/experiment/types/TypeB.sol +0 -29
  670. package/contracts/instance/IInstanceLinked.sol +0 -8
  671. package/contracts/instance/base/ComponentServiceBase.sol +0 -42
  672. package/contracts/instance/base/IInstanceBase.sol +0 -19
  673. package/contracts/instance/base/IKeyValueStore.sol +0 -50
  674. package/contracts/instance/base/IService.sol +0 -15
  675. package/contracts/instance/base/InstanceBase.sol +0 -84
  676. package/contracts/instance/base/KeyValueStore.sol +0 -161
  677. package/contracts/instance/base/ModuleBase.sol +0 -46
  678. package/contracts/instance/base/ServiceBase.sol +0 -37
  679. package/contracts/instance/module/access/Access.sol +0 -149
  680. package/contracts/instance/module/access/IAccess.sol +0 -53
  681. package/contracts/instance/module/bundle/BundleModule.sol +0 -135
  682. package/contracts/instance/module/bundle/IBundle.sol +0 -51
  683. package/contracts/instance/module/compensation/CompensationModule.sol +0 -17
  684. package/contracts/instance/module/compensation/ICompensation.sol +0 -10
  685. package/contracts/instance/module/component/ComponentModule.sol +0 -81
  686. package/contracts/instance/module/component/IComponent.sol +0 -29
  687. package/contracts/instance/module/policy/IPolicy.sol +0 -59
  688. package/contracts/instance/module/policy/PolicyModule.sol +0 -89
  689. package/contracts/instance/module/pool/IPoolModule.sol +0 -40
  690. package/contracts/instance/module/pool/PoolModule.sol +0 -90
  691. package/contracts/instance/module/risk/IRisk.sol +0 -10
  692. package/contracts/instance/module/risk/RiskModule.sol +0 -17
  693. package/contracts/instance/module/treasury/ITreasury.sol +0 -96
  694. package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
  695. package/contracts/instance/module/treasury/TreasuryModule.sol +0 -171
  696. package/contracts/instance/service/ComponentOwnerService.sol +0 -155
  697. package/contracts/instance/service/IComponentOwnerService.sol +0 -22
  698. package/contracts/instance/service/IPoolService.sol +0 -30
  699. package/contracts/instance/service/IProductService.sol +0 -58
  700. package/contracts/instance/service/PoolService.sol +0 -129
  701. package/contracts/instance/service/ProductService.sol +0 -366
  702. package/contracts/registry/IChainNft.sol +0 -21
  703. package/contracts/registry/IRegistryLinked.sol +0 -8
  704. package/contracts/shared/IOwnable.sol +0 -6
  705. package/contracts/test/TestFee.sol +0 -25
  706. package/contracts/test/TestPool.sol +0 -24
  707. package/contracts/test/TestProduct.sol +0 -51
  708. package/contracts/test/TestRegisterable.sol +0 -19
  709. package/contracts/test/TestRoleId.sol +0 -14
  710. package/contracts/test/TestService.sol +0 -32
  711. package/contracts/test/TestToken.sol +0 -26
  712. package/contracts/test/TestVersion.sol +0 -44
  713. package/contracts/test/TestVersionable.sol +0 -17
  714. package/contracts/types/ChainId.sol +0 -38
  715. package/contracts/types/Fee.sol +0 -51
  716. package/contracts/types/NftIdSet.sol +0 -60
  717. package/contracts/types/ObjectType.sol +0 -123
  718. package/contracts/types/RoleId.sol +0 -38
  719. package/contracts/types/UFixed.sol +0 -209
@@ -1,71 +1,293 @@
1
1
  // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.19;
2
+ pragma solidity ^0.8.20;
3
3
 
4
- import {NftId} from "../types/NftId.sol";
5
- import {RoleId} from "../types/RoleId.sol";
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
6
5
 
7
- import {InstanceBase} from "./base/InstanceBase.sol";
8
- import {AccessModule} from "./module/access/Access.sol";
9
- import {CompensationModule} from "./module/compensation/CompensationModule.sol";
10
- import {ComponentModule} from "./module/component/ComponentModule.sol";
11
- import {PolicyModule} from "./module/policy/PolicyModule.sol";
12
- import {PoolModule} from "./module/pool/PoolModule.sol";
13
- import {RiskModule} from "./module/risk/RiskModule.sol";
14
- import {BundleModule} from "./module/bundle/BundleModule.sol";
15
- import {TreasuryModule} from "./module/treasury/TreasuryModule.sol";
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";
16
19
 
17
- import {IRegistry} from "../registry/IRegistry.sol";
18
20
  import {Registerable} from "../shared/Registerable.sol";
19
- import {IAccessModule} from "./module/access/IAccess.sol";
20
- import {IBundleModule} from "./module/bundle/IBundle.sol";
21
- import {IComponentModule} from "./module/component/IComponent.sol";
22
- import {IPoolModule} from "./module/pool/IPoolModule.sol";
23
- import {IPolicyModule} from "./module/policy/IPolicy.sol";
24
- import {IInstanceBase} from "./base/IInstanceBase.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
+ // TODO cleanup
29
+ // import {InstanceAdmin} from "./InstanceAdmin.sol";
30
+ import {InstanceAdminNew} from "./InstanceAdminNew.sol";
31
+ import {BundleManager} from "./BundleManager.sol";
32
+ import {InstanceStore} from "./InstanceStore.sol";
33
+
34
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
25
35
 
26
- import {IComponentOwnerService} from "./service/IComponentOwnerService.sol";
27
- import {IProductService} from "./service/IProductService.sol";
28
- import {IPoolService} from "./service/IPoolService.sol";
36
+ import {IBundle} from "./module/IBundle.sol";
37
+ import {IComponents} from "./module/IComponents.sol";
38
+ import {IDistribution} from "./module/IDistribution.sol";
39
+ import {IPolicy} from "./module/IPolicy.sol";
40
+ import {IRisk} from "./module/IRisk.sol";
29
41
 
30
- import {IKeyValueStore} from "./base/IKeyValueStore.sol";
42
+ import {IDistributionService} from "../distribution/IDistributionService.sol";
43
+ import {IPoolService} from "../pool/IPoolService.sol";
44
+ import {IProductService} from "../product/IProductService.sol";
45
+ import {IPolicyService} from "../product/IPolicyService.sol";
46
+ import {IBundleService} from "../pool/IBundleService.sol";
31
47
 
32
48
  contract Instance is
33
- InstanceBase,
34
- AccessModule,
35
- BundleModule,
36
- ComponentModule,
37
- CompensationModule,
38
- PolicyModule,
39
- PoolModule,
40
- RiskModule,
41
- TreasuryModule
49
+ IInstance,
50
+ AccessManagedUpgradeable,
51
+ Registerable
42
52
  {
43
- constructor(
44
- address registry,
45
- NftId registryNftId
46
- )
47
- InstanceBase(registry, registryNftId)
48
- AccessModule()
49
- BundleModule()
50
- ComponentModule()
51
- PolicyModule()
52
- PoolModule()
53
- TreasuryModule()
53
+ uint256 public constant GIF_MAJOR_VERSION = 3;
54
+
55
+ bool private _initialized;
56
+
57
+ IInstanceService internal _instanceService;
58
+ InstanceAdminNew internal _instanceAdmin;
59
+ InstanceReader internal _instanceReader;
60
+ BundleManager internal _bundleManager;
61
+ InstanceStore internal _instanceStore;
62
+
63
+ modifier onlyChainNft() {
64
+ if(msg.sender != getRegistry().getChainNftAddress()) {
65
+ revert();
66
+ }
67
+ _;
68
+ }
69
+
70
+ function initialize(
71
+ InstanceAdminNew instanceAdmin,
72
+ InstanceStore instanceStore,
73
+ BundleManager bundleManager,
74
+ InstanceReader instanceReader,
75
+ IRegistry registry,
76
+ address initialOwner
77
+ )
78
+ external
79
+ initializer()
80
+ {
81
+ _instanceAdmin = instanceAdmin;
82
+ if(_instanceAdmin.authority() == address(0)) {
83
+ // TODO rename error
84
+ revert ErrorInstanceInstanceAdminZero();
85
+ }
86
+
87
+ // set authority to instance admin authority
88
+ __AccessManaged_init(_instanceAdmin.authority());
89
+
90
+ // setup instance object info
91
+ initializeRegisterable(
92
+ address(registry),
93
+ registry.getNftId(),
94
+ INSTANCE(),
95
+ true,
96
+ initialOwner,
97
+ "");
98
+
99
+ // store instance supporting contracts
100
+ _instanceStore = instanceStore;
101
+ _bundleManager = bundleManager;
102
+ _instanceReader = instanceReader;
103
+
104
+ // initialize instance supporting contracts
105
+ _instanceStore.initialize();
106
+ _bundleManager.initialize();
107
+ _instanceReader.initialize();
108
+
109
+ _instanceService = IInstanceService(
110
+ getRegistry().getServiceAddress(
111
+ INSTANCE(),
112
+ getMajorVersion()));
113
+
114
+ registerInterface(type(IInstance).interfaceId);
115
+ }
116
+
117
+ //--- Staking ----------------------------------------------------------//
118
+
119
+ function setStakingLockingPeriod(Seconds stakeLockingPeriod)
120
+ external
121
+ // TODO decide if onlyOwner or restricted to instance owner role is better
122
+ onlyOwner()
123
+ {
124
+ _instanceService.setStakingLockingPeriod(stakeLockingPeriod);
125
+ }
126
+
127
+ function setStakingRewardRate(UFixed rewardRate)
128
+ external
129
+ onlyOwner()
130
+ {
131
+ _instanceService.setStakingRewardRate(rewardRate);
132
+ }
133
+
134
+ function refillStakingRewardReserves(Amount dipAmount)
135
+ external
136
+ onlyOwner()
137
+ {
138
+ address instanceOwner = msg.sender;
139
+ _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
140
+ }
141
+
142
+ function withdrawStakingRewardReserves(Amount dipAmount)
143
+ external
144
+ onlyOwner()
145
+ returns (Amount newBalance)
146
+ {
147
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
148
+ }
149
+
150
+ //--- Roles ------------------------------------------------------------//
151
+
152
+ function createRole(string memory roleName, string memory adminName)
153
+ external
154
+ onlyOwner()
155
+ returns (RoleId roleId, RoleId admin)
156
+ {
157
+ // TODO refactor
158
+ // (roleId, admin) = _instanceAdmin.createRole(roleName, adminName);
159
+ }
160
+
161
+ function grantRole(RoleId roleId, address account)
162
+ external
163
+ onlyOwner()
54
164
  {
55
- initializeBundleModule(_keyValueStore);
56
- initializeCompensationModule(_keyValueStore);
57
- initializeComponentModule(_keyValueStore);
58
- initializePolicyModule(_keyValueStore);
59
- initializePoolModule(_keyValueStore);
60
- initializeRiskModule(_keyValueStore);
165
+ _instanceAdmin.grantRole(roleId, account);
61
166
  }
62
167
 
63
- function getRegistry() public view override (Registerable, IPolicyModule) returns (IRegistry registry) { return super.getRegistry(); }
64
- function getKeyValueStore() public view override (InstanceBase) returns (IKeyValueStore keyValueStore) { return super.getKeyValueStore(); }
168
+ function revokeRole(RoleId roleId, address account)
169
+ external
170
+ onlyOwner()
171
+ {
172
+ // TODO refactor
173
+ // AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
174
+ }
175
+
176
+ //--- Targets ------------------------------------------------------------//
177
+
178
+ function createTarget(address target, string memory name)
179
+ external
180
+ onlyOwner()
181
+ {
182
+ // TODO refactor
183
+ // _instanceAdmin.createTarget(target, name);
184
+ }
185
+
186
+ function setTargetFunctionRole(
187
+ string memory targetName,
188
+ bytes4[] calldata selectors,
189
+ RoleId roleId
190
+ )
191
+ external
192
+ onlyOwner()
193
+ {
194
+ // TODO refactor
195
+ // _instanceAdmin.setTargetFunctionRoleByInstance(targetName, selectors, roleId);
196
+ }
197
+
198
+ function setTargetLocked(address target, bool locked)
199
+ external
200
+ onlyOwner()
201
+ {
202
+ // TODO refactor
203
+ // _instanceAdmin.setTargetLockedByInstance(target, locked);
204
+ }
205
+
206
+ //--- ITransferInterceptor ----------------------------------------------//
207
+
208
+ // TODO interception of child components nfts
209
+ function nftMint(address to, uint256 tokenId) external onlyChainNft {
210
+ // TODO refactor
211
+ // _instanceAdmin.transferInstanceOwnerRole(address(0), to);
212
+ }
213
+
214
+ function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
215
+ // TODO refactor
216
+ // _instanceAdmin.transferInstanceOwnerRole(from, to);
217
+ }
218
+
219
+ //function nftBurn(address from, uint256 tokenId) external onlyChainNft {
220
+ //_instanceAdmin.transferInstanceOwnerRole(from, address(0));
221
+ //}
65
222
 
66
- function getComponentOwnerService() external view override (IComponentModule, IInstanceBase) returns(IComponentOwnerService service) { return _componentOwnerService; }
67
- function getProductService() external view override (IBundleModule, IPolicyModule, IInstanceBase) returns(IProductService service) { return _productService; }
68
- function getPoolService() external view override (IBundleModule, IPoolModule, IInstanceBase) returns(IPoolService service) { return _poolService; }
223
+ //--- initial setup functions -------------------------------------------//
224
+
225
+ // TODO cleanup
226
+ // function setInstanceAdmin(InstanceAdmin accessManager) external restricted {
227
+ // if(address(_instanceAdmin) != address(0)) {
228
+ // revert ErrorInstanceInstanceAdminAlreadySet(address(_instanceAdmin));
229
+ // }
230
+ // if(accessManager.authority() != authority()) {
231
+ // revert ErrorInstanceInstanceAdminAuthorityMismatch(authority());
232
+ // }
233
+ // _instanceAdmin = accessManager;
234
+ // }
235
+
236
+ // function setBundleManager(BundleManager bundleManager) external restricted() {
237
+ // if(address(_bundleManager) != address(0)) {
238
+ // revert ErrorInstanceBundleManagerAlreadySet(address(_bundleManager));
239
+ // }
240
+ // if(bundleManager.getInstance() != Instance(this)) {
241
+ // revert ErrorInstanceBundleManagerInstanceMismatch(address(this));
242
+ // }
243
+ // if(bundleManager.authority() != authority()) {
244
+ // revert ErrorInstanceBundleManagerAuthorityMismatch(authority());
245
+ // }
246
+ // _bundleManager = bundleManager;
247
+ // }
248
+
249
+ // function setInstanceStore(InstanceStore instanceStore) external restricted {
250
+ // if(address(_instanceStore) != address(0)) {
251
+ // revert ErrorInstanceInstanceStoreAlreadySet(address(_instanceStore));
252
+ // }
253
+ // if(instanceStore.authority() != authority()) {
254
+ // revert ErrorInstanceInstanceStoreAuthorityMismatch(authority());
255
+ // }
256
+ // _instanceStore = instanceStore;
257
+ // }
258
+
259
+ function setInstanceReader(InstanceReader instanceReader)
260
+ external
261
+ restricted()
262
+ {
263
+ if(instanceReader.getInstance() != Instance(this)) {
264
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
265
+ }
266
+
267
+ _instanceReader = instanceReader;
268
+ }
269
+
270
+ //--- external view functions -------------------------------------------//
271
+
272
+ function getInstanceReader() external view returns (InstanceReader) {
273
+ return _instanceReader;
274
+ }
275
+
276
+ function getBundleManager() external view returns (BundleManager) {
277
+ return _bundleManager;
278
+ }
279
+
280
+ function getInstanceAdmin() external view returns (InstanceAdminNew) {
281
+ return _instanceAdmin;
282
+ }
283
+
284
+ function getInstanceStore() external view returns (InstanceStore) {
285
+ return _instanceStore;
286
+ }
287
+
288
+ function getMajorVersion() public pure returns (VersionPart majorVersion) {
289
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
290
+ }
69
291
 
70
- function getOwner() public view override (IAccessModule, Registerable) returns(address owner) { return super.getOwner(); }
71
- }
292
+ //--- internal view/pure functions --------------------------------------//
293
+ }
@@ -0,0 +1,334 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
+ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
6
+
7
+ import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
8
+ import {TimestampLib} from "../type/Timestamp.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+
11
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
12
+
13
+ import {IRegistry} from "../registry/IRegistry.sol";
14
+
15
+ import {IInstance} from "./IInstance.sol";
16
+ import {IAccess} from "./module/IAccess.sol";
17
+
18
+ function INSTANCE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2600); }
19
+ function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(10); }
20
+
21
+ contract InstanceAdmin is
22
+ AccessManagedUpgradeable
23
+ {
24
+ using RoleIdLib for RoleId;
25
+
26
+ string public constant INSTANCE_ROLE_NAME = "InstanceRole";
27
+ string public constant INSTANCE_OWNER_ROLE_NAME = "InstanceOwnerRole";
28
+
29
+ string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
30
+
31
+ uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
32
+ uint32 public constant EXECUTION_DELAY = 0;
33
+
34
+ mapping(address target => IAccess.Type) _targetType;
35
+ mapping(RoleId roleId => IAccess.Type) _roleType;
36
+ uint64 _idNext;
37
+
38
+ AccessManagerExtendedInitializeable internal _accessManager;
39
+ address _instance;
40
+ IRegistry internal _registry;
41
+
42
+ // instance owner role is granted upon instance nft minting in callback function
43
+ // assume this contract is already a member of ADMIN_ROLE, the only member
44
+ function initialize(address instanceAddress) external initializer
45
+ {
46
+ IInstance instance = IInstance(instanceAddress);
47
+ IRegistry registry = instance.getRegistry();
48
+ address authority = instance.authority();
49
+
50
+ __AccessManaged_init(authority);
51
+
52
+ _accessManager = AccessManagerExtendedInitializeable(authority);
53
+ _instance = instanceAddress;
54
+ _registry = registry;
55
+ _idNext = CUSTOM_ROLE_ID_MIN;
56
+
57
+ // minimum configuration required for nft interception
58
+ _createRole(INSTANCE_ROLE(), INSTANCE_ROLE_NAME, IAccess.Type.Core);
59
+ _createRole(INSTANCE_OWNER_ROLE(), INSTANCE_OWNER_ROLE_NAME, IAccess.Type.Core);
60
+ _grantRole(INSTANCE_ROLE(), address(instance));
61
+
62
+ _createTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, IAccess.Type.Core);
63
+ bytes4[] memory instanceAdminInstanceSelectors = new bytes4[](1);
64
+ instanceAdminInstanceSelectors[0] = this.transferInstanceOwnerRole.selector;
65
+ _setTargetFunctionRole(address(this), instanceAdminInstanceSelectors, INSTANCE_ROLE());
66
+ }
67
+
68
+ //--- Role ------------------------------------------------------//
69
+ // ADMIN_ROLE
70
+ // assume all core roles are known at deployment time
71
+ // assume core roles are set and granted only during instance cloning
72
+ // assume core roles are never revoked -> core roles admin is never active after intialization
73
+ function createCoreRole(RoleId roleId, string memory name) external restricted() {
74
+ _createRole(roleId, name, IAccess.Type.Core);
75
+ }
76
+
77
+ // ADMIN_ROLE
78
+ // assume gif roles can be revoked
79
+ // assume admin is INSTANCE_OWNER_ROLE or INSTANCE_ROLE
80
+ function createGifRole(RoleId roleId, string memory name, RoleId admin) external restricted() {
81
+ _createRole(roleId, name, IAccess.Type.Gif);
82
+ _setRoleAdmin(roleId, admin);
83
+ }
84
+
85
+ // INSTANCE_ROLE
86
+ // TODO specify how many owners role can have -> many roles MUST have exactly 1 member?
87
+ function createRole(string memory roleName, string memory adminName)
88
+ external
89
+ restricted()
90
+ returns(RoleId roleId, RoleId admin)
91
+ {
92
+ (roleId, admin) = _getNextCustomRoleId();
93
+
94
+ _createRole(roleId, roleName, IAccess.Type.Custom);
95
+ _createRole(admin, adminName, IAccess.Type.Custom);
96
+
97
+ _setRoleAdmin(roleId, admin);
98
+ _setRoleAdmin(admin, INSTANCE_OWNER_ROLE());
99
+ }
100
+
101
+ // ADMIN_ROLE
102
+ // assume used by instance service only during instance cloning
103
+ // assume used only by this.createRole(), this.createGifRole() afterwards
104
+ function setRoleAdmin(RoleId roleId, RoleId admin) public restricted() {
105
+ _setRoleAdmin(roleId, admin);
106
+ }
107
+
108
+ // INSTANCE_ROLE
109
+ function transferInstanceOwnerRole(address from, address to) external restricted() {
110
+ // temp pre transfer checks
111
+ assert(_getRoleMembers(INSTANCE_ROLE()) == 1);
112
+ assert(_hasRole(INSTANCE_ROLE(), _instance));
113
+ assert(_getRoleAdmin(INSTANCE_OWNER_ROLE()).toInt() == ADMIN_ROLE().toInt());
114
+ if(from != address(0)) { // nft transfer
115
+ assert(_getRoleMembers(INSTANCE_OWNER_ROLE()) == 1);
116
+ } else { // nft minting
117
+ assert(_getRoleMembers(INSTANCE_OWNER_ROLE()) == 0);
118
+ }
119
+
120
+ // transfer
121
+ assert(from != to);
122
+ _grantRole(INSTANCE_OWNER_ROLE(), to);
123
+ if(from != address(0)) { // nft transfer
124
+ _revokeRole(INSTANCE_OWNER_ROLE(), from);
125
+ }
126
+
127
+ // temp post transfer checks
128
+ assert(_getRoleMembers(INSTANCE_OWNER_ROLE()) == 1);// temp
129
+ assert(_hasRole(INSTANCE_OWNER_ROLE(), to));
130
+ }
131
+
132
+ //--- Target ------------------------------------------------------//
133
+ // ADMIN_ROLE
134
+ // assume some core targets are registred (instance) while others are not (instance accesss manager, instance reader, bundle manager)
135
+ function createCoreTarget(address target, string memory name) external restricted() {
136
+ _createTarget(target, name, IAccess.Type.Core);
137
+ }
138
+
139
+ // INSTANCE_SERVICE_ROLE
140
+ function createGifTarget(address target, string memory name) external restricted()
141
+ {
142
+ if(!_registry.isRegistered(target)) {
143
+ revert IAccess.ErrorIAccessTargetNotRegistered(target);
144
+ }
145
+
146
+ NftId targetParentNftId = _registry.getObjectInfo(target).parentNftId;
147
+ NftId instanceNftId = _registry.getObjectInfo(_instance).nftId;
148
+ if(targetParentNftId != instanceNftId) {
149
+ revert IAccess.ErrorIAccessTargetInstanceMismatch(target, targetParentNftId, instanceNftId);
150
+ }
151
+
152
+ _createTarget(target, name, IAccess.Type.Gif);
153
+ }
154
+
155
+ // INSTANCE_ROLE
156
+ // assume custom target.authority() is constant -> target MUST not be used with different instance access manager
157
+ // assume custom target can not be registered as component -> each service which is doing component registration MUST register a gif target
158
+ // assume custom target can not be registered as instance or service -> why?
159
+ // TODO check target associated with instance owner or instance or instance components or components helpers
160
+ function createTarget(address target, string memory name) external restricted() {
161
+ _createTarget(target, name, IAccess.Type.Custom);
162
+ }
163
+
164
+ // TODO instance owner locks component instead of revoking it access to the instance...
165
+ // INSTANCE_SERVICE_ROLE
166
+ function setTargetLockedByService(address target, bool locked) external restricted {
167
+ _setTargetLocked(target, locked);
168
+ }
169
+
170
+ // INSTANCE_ROLE
171
+ function setTargetLockedByInstance(address target, bool locked) external restricted {
172
+ _setTargetLocked(target, locked);
173
+ }
174
+
175
+
176
+ // allowed combinations of roles and targets:
177
+ //1) set core role for core target
178
+ //2) set gif role for gif target
179
+ //3) set custom role for gif target
180
+ //4) set custom role for custom target
181
+
182
+ // ADMIN_ROLE if used only during initialization, works with:
183
+ // any roles for any targets
184
+ // INSTANCE_SERVICE_ROLE if used not only during initilization, works with:
185
+ // core roles for core targets
186
+ // gif roles for gif targets
187
+ function setTargetFunctionRoleByService(
188
+ string memory targetName,
189
+ bytes4[] calldata selectors,
190
+ RoleId roleId
191
+ )
192
+ public
193
+ virtual
194
+ restricted
195
+ {
196
+ address target = _accessManager.getTargetAddress(targetName);
197
+ // not custom target
198
+ if(_targetType[target] == IAccess.Type.Custom) {
199
+ revert IAccess.ErrorIAccessTargetTypeInvalid(target, IAccess.Type.Custom);
200
+ }
201
+
202
+ // not custom role
203
+ if(_roleType[roleId] == IAccess.Type.Custom) {
204
+ revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Custom);
205
+ }
206
+
207
+ _setTargetFunctionRole(target, selectors, roleId);
208
+ }
209
+
210
+ // INSTANCE_ROLE
211
+ // gif role for gif target
212
+ // gif role for custom target
213
+ // custom role for gif target -> need to prohibit
214
+ // custom role for custom target
215
+ // TODO instance owner can mess with gif target (component) -> e.g. set custom role for function intendent to work with gif role
216
+ function setTargetFunctionRoleByInstance(
217
+ string memory targetName,
218
+ bytes4[] calldata selectors,
219
+ RoleId roleId// string memory roleName
220
+ )
221
+ public
222
+ virtual
223
+ restricted()
224
+ {
225
+ address target = _accessManager.getTargetAddress(targetName);
226
+
227
+ // not core target
228
+ if(_targetType[target] == IAccess.Type.Core) {
229
+ revert IAccess.ErrorIAccessTargetTypeInvalid(target, IAccess.Type.Core);
230
+ }
231
+
232
+ // not core role
233
+ if(_roleType[roleId] == IAccess.Type.Core) {
234
+ revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Core);
235
+ }
236
+
237
+ _setTargetFunctionRole(target, selectors, roleId);
238
+ }
239
+
240
+ //--- Role internal view/pure functions --------------------------------------//
241
+ function _createRole(RoleId roleId, string memory name, IAccess.Type rtype) internal {
242
+ _validateRole(roleId, rtype);
243
+
244
+ _roleType[roleId] = rtype;
245
+ _accessManager.createRole(roleId.toInt(), name);
246
+ }
247
+
248
+ function _validateRole(RoleId roleId, IAccess.Type rtype) internal pure
249
+ {
250
+ uint roleIdInt = roleId.toInt();
251
+ if(rtype == IAccess.Type.Custom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
252
+ revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
253
+ }
254
+
255
+ if(
256
+ rtype != IAccess.Type.Custom &&
257
+ roleIdInt >= CUSTOM_ROLE_ID_MIN &&
258
+ roleIdInt != PUBLIC_ROLE().toInt())
259
+ {
260
+ revert IAccess.ErrorIAccessRoleIdTooBig(roleId);
261
+ }
262
+ }
263
+
264
+ function _grantRole(RoleId roleId, address account) internal {
265
+ _accessManager.grantRole(roleId.toInt(), account, EXECUTION_DELAY);
266
+ }
267
+
268
+ function _revokeRole(RoleId roleId, address member) internal {
269
+ _accessManager.revokeRole(roleId.toInt(), member);
270
+ }
271
+
272
+ function _setRoleAdmin(RoleId roleId, RoleId admin) internal {
273
+ if(_roleType[roleId] == IAccess.Type.Core) {
274
+ revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Core);
275
+ }
276
+
277
+ _accessManager.setRoleAdmin(roleId.toInt(), admin.toInt());
278
+ }
279
+
280
+ function _getRoleAdmin(RoleId roleId) internal view returns (RoleId admin) {
281
+ return RoleIdLib.toRoleId(_accessManager.getRoleAdmin(roleId.toInt()));
282
+ }
283
+
284
+ function _hasRole(RoleId roleId, address account) internal view returns (bool accountHasRole) {
285
+ uint32 executionDelay;
286
+ (accountHasRole, executionDelay) = _accessManager.hasRole(roleId.toInt(), account);
287
+ assert(executionDelay == 0);
288
+ }
289
+
290
+ function _getRoleMembers(RoleId roleId) internal view returns (uint) {
291
+ return _accessManager.getRoleMembers(roleId.toInt());
292
+ }
293
+
294
+ function _getNextCustomRoleId() internal returns(RoleId roleId, RoleId admin) {
295
+ uint64 roleIdInt = _idNext;
296
+ uint64 adminInt = roleIdInt + 1;
297
+
298
+ _idNext = roleIdInt + 2;
299
+
300
+ roleId = RoleIdLib.toRoleId(roleIdInt);
301
+ admin = RoleIdLib.toRoleId(adminInt);
302
+ }
303
+
304
+ //--- Target internal view/pure functions --------------------------------------//
305
+ function _createTarget(address target, string memory name, IAccess.Type ttype)
306
+ internal
307
+ {
308
+ _validateTarget(target, ttype);
309
+ _targetType[target] = ttype;
310
+ _accessManager.createTarget(target, name);
311
+ }
312
+
313
+ function _validateTarget(address target, IAccess.Type ttype)
314
+ internal
315
+ view
316
+ {}
317
+
318
+ // IMPORTANT: instance admin MUST be of Core type -> otherwise can be locked forever
319
+ // TODO: consider locking gif targets in a separate function?
320
+ function _setTargetLocked(address target, bool locked) internal
321
+ {
322
+ IAccess.Type targetType = _targetType[target];
323
+
324
+ if(targetType == IAccess.Type.Core) {
325
+ revert IAccess.ErrorIAccessTargetTypeInvalid(target, targetType);
326
+ }
327
+
328
+ _accessManager.setTargetClosed(target, locked);
329
+ }
330
+
331
+ function _setTargetFunctionRole(address target, bytes4[] memory selectors, RoleId roleId) internal {
332
+ _accessManager.setTargetFunctionRole(target, selectors, roleId.toInt());
333
+ }
334
+ }