@etherisc/gif-next 0.0.2-f034782-101 → 0.0.2-f08528a-758

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 (607) hide show
  1. package/README.md +26 -86
  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/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/{instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json → authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json} +4 -4
  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/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  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 +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/{components/Product.sol/Product.json → distribution/Distribution.sol/Distribution.json} +321 -287
  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/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +253 -222
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  35. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +147 -317
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +37 -112
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +272 -1967
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +264 -74
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +398 -2763
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1621 -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 +785 -329
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +349 -222
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -82
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  59. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -54
  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/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  65. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.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 +10 -118
  68. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  71. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  72. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  73. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  74. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  75. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  77. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  78. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  79. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  80. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  81. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  82. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
  83. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  85. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
  87. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
  89. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
  91. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  92. package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +254 -133
  93. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  94. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  95. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  96. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
  97. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
  99. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  100. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +218 -145
  101. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  102. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +262 -257
  103. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  104. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
  105. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  106. package/artifacts/contracts/pool/Pool.sol/Pool.json +1269 -0
  107. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  108. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
  109. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  110. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
  111. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  112. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
  113. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  114. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
  115. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  116. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → product/BasicProduct.sol/BasicProduct.json} +370 -390
  117. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  118. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  119. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  120. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
  121. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  122. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
  123. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  124. package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +174 -202
  125. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  126. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
  127. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  128. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
  129. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  130. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +146 -153
  131. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  132. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +966 -0
  133. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  134. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +80 -64
  135. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  136. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
  137. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  138. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
  139. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  140. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
  141. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  142. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
  143. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  144. package/artifacts/contracts/product/Product.sol/Product.json +1257 -0
  145. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  146. package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
  147. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  148. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
  149. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  150. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  151. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  152. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +135 -29
  153. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  154. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +310 -77
  155. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  156. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  157. package/artifacts/contracts/registry/Registry.sol/Registry.json +371 -43
  158. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  159. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1741 -0
  160. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  161. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -97
  162. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  163. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
  164. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  165. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  166. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  167. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +703 -91
  168. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  169. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  170. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  171. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
  172. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  173. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +144 -80
  174. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  175. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1487 -0
  176. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  177. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +784 -0
  178. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  179. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +100 -113
  180. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  181. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  182. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  183. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +180 -54
  184. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  185. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
  186. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  187. package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +186 -198
  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 +3 -10
  194. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
  196. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
  198. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  199. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  200. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
  202. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  204. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  205. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  206. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +996 -0
  207. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  208. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
  209. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  210. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
  211. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  212. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  213. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  214. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
  215. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  216. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
  217. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -35
  219. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
  221. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  222. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  223. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Service.sol/Service.json +103 -21
  225. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  226. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  227. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  228. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  229. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  230. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  231. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  232. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  233. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
  234. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  235. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
  236. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  237. package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
  238. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  239. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  240. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  241. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
  242. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  243. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  244. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  245. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
  246. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  247. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
  248. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  249. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -0
  250. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  251. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  252. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  253. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  254. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  255. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  256. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  257. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  258. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  260. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  262. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  264. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  266. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  267. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  268. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  270. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  271. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +239 -0
  272. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  273. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  274. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  275. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  276. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  277. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  278. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  279. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  280. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  281. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
  282. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  283. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  284. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  285. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  286. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  287. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  288. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  289. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  290. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  291. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  292. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  293. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
  294. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  295. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  296. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  297. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
  298. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  299. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  300. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  301. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  302. package/contracts/authorization/AccessAdmin.sol +588 -0
  303. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  304. package/contracts/authorization/Authorization.sol +218 -0
  305. package/contracts/authorization/IAccess.sol +48 -0
  306. package/contracts/authorization/IAccessAdmin.sol +136 -0
  307. package/contracts/authorization/IAuthorization.sol +54 -0
  308. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  309. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  310. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  311. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  312. package/contracts/distribution/BasicDistribution.sol +149 -0
  313. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  314. package/contracts/{components → distribution}/Distribution.sol +162 -159
  315. package/contracts/distribution/DistributionService.sol +302 -0
  316. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  317. package/contracts/distribution/IDistributionComponent.sol +48 -0
  318. package/contracts/{instance/service → distribution}/IDistributionService.sol +25 -38
  319. package/contracts/instance/BundleManager.sol +8 -9
  320. package/contracts/instance/IInstance.sol +53 -65
  321. package/contracts/instance/IInstanceService.sol +46 -26
  322. package/contracts/instance/Instance.sol +157 -230
  323. package/contracts/instance/InstanceAdmin.sol +266 -0
  324. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  325. package/contracts/instance/InstanceReader.sol +173 -58
  326. package/contracts/instance/InstanceService.sol +275 -327
  327. package/contracts/instance/InstanceServiceManager.sol +11 -21
  328. package/contracts/instance/InstanceStore.sol +276 -0
  329. package/contracts/instance/base/BalanceStore.sol +123 -0
  330. package/contracts/instance/base/Cloneable.sol +28 -0
  331. package/contracts/instance/base/ObjectCounter.sol +21 -0
  332. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  333. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +13 -16
  334. package/contracts/instance/module/IAccess.sol +5 -13
  335. package/contracts/instance/module/IBundle.sol +8 -9
  336. package/contracts/instance/module/IComponents.sol +22 -5
  337. package/contracts/instance/module/IDistribution.sol +7 -6
  338. package/contracts/instance/module/IPolicy.sol +28 -16
  339. package/contracts/instance/module/IRisk.sol +1 -1
  340. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  341. package/contracts/oracle/BasicOracle.sol +48 -0
  342. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  343. package/contracts/oracle/IOracle.sol +36 -0
  344. package/contracts/oracle/IOracleComponent.sol +32 -0
  345. package/contracts/oracle/IOracleService.sol +65 -0
  346. package/contracts/oracle/Oracle.sol +157 -0
  347. package/contracts/oracle/OracleService.sol +278 -0
  348. package/contracts/oracle/OracleServiceManager.sol +42 -0
  349. package/contracts/pool/BasicPool.sol +164 -0
  350. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  351. package/contracts/pool/BundleService.sol +296 -0
  352. package/contracts/pool/BundleServiceManager.sol +42 -0
  353. package/contracts/pool/IBundleService.sol +106 -0
  354. package/contracts/pool/IPoolComponent.sol +52 -0
  355. package/contracts/pool/IPoolService.sol +150 -0
  356. package/contracts/pool/Pool.sol +311 -0
  357. package/contracts/pool/PoolService.sol +452 -0
  358. package/contracts/pool/PoolServiceManager.sol +42 -0
  359. package/contracts/product/ApplicationService.sol +254 -0
  360. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  361. package/contracts/product/BasicProduct.sol +82 -0
  362. package/contracts/product/BasicProductAuthorization.sol +40 -0
  363. package/contracts/product/ClaimService.sol +442 -0
  364. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  365. package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
  366. package/contracts/product/IClaimService.sol +99 -0
  367. package/contracts/{instance/service → product}/IPolicyService.sol +37 -31
  368. package/contracts/product/IPricingService.sol +39 -0
  369. package/contracts/product/IProductComponent.sol +39 -0
  370. package/contracts/product/IProductService.sol +33 -0
  371. package/contracts/product/PolicyService.sol +475 -0
  372. package/contracts/product/PolicyServiceManager.sol +42 -0
  373. package/contracts/product/PricingService.sol +300 -0
  374. package/contracts/product/PricingServiceManager.sol +42 -0
  375. package/contracts/{components → product}/Product.sol +209 -110
  376. package/contracts/product/ProductService.sol +124 -0
  377. package/contracts/product/ProductServiceManager.sol +42 -0
  378. package/contracts/registry/ChainNft.sol +8 -1
  379. package/contracts/registry/IRegistry.sol +41 -21
  380. package/contracts/registry/IRegistryService.sol +39 -37
  381. package/contracts/registry/Registry.sol +194 -83
  382. package/contracts/registry/RegistryAdmin.sol +365 -0
  383. package/contracts/registry/RegistryService.sol +73 -90
  384. package/contracts/registry/RegistryServiceManager.sol +21 -30
  385. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  386. package/contracts/registry/ReleaseManager.sol +356 -191
  387. package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
  388. package/contracts/registry/TokenRegistry.sol +261 -62
  389. package/contracts/shared/Component.sol +281 -0
  390. package/contracts/shared/ComponentService.sol +581 -0
  391. package/contracts/shared/ComponentServiceManager.sol +35 -0
  392. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  393. package/contracts/shared/ERC165.sol +1 -1
  394. package/contracts/{components → shared}/IComponent.sol +23 -27
  395. package/contracts/shared/IComponentService.sol +102 -0
  396. package/contracts/shared/IInstanceLinkedComponent.sol +50 -0
  397. package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
  398. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
  399. package/contracts/shared/INftOwnable.sol +2 -2
  400. package/contracts/shared/IPolicyHolder.sol +29 -10
  401. package/contracts/shared/IRegistryLinked.sol +0 -1
  402. package/contracts/shared/IService.sol +14 -7
  403. package/contracts/shared/IVersionable.sol +1 -1
  404. package/contracts/shared/InitializableCustom.sol +177 -0
  405. package/contracts/shared/InstanceLinkedComponent.sol +151 -0
  406. package/contracts/shared/KeyValueStore.sol +131 -0
  407. package/contracts/shared/Lifecycle.sol +77 -0
  408. package/contracts/shared/NftIdSetManager.sol +65 -0
  409. package/contracts/shared/NftOwnable.sol +3 -16
  410. package/contracts/shared/PolicyHolder.sol +40 -19
  411. package/contracts/shared/ProxyManager.sol +34 -4
  412. package/contracts/shared/Registerable.sol +13 -12
  413. package/contracts/shared/RegistryLinked.sol +0 -5
  414. package/contracts/shared/Service.sol +47 -22
  415. package/contracts/shared/TokenHandler.sol +27 -2
  416. package/contracts/shared/Versionable.sol +1 -1
  417. package/contracts/staking/IStaking.sol +168 -0
  418. package/contracts/staking/IStakingService.sol +153 -0
  419. package/contracts/staking/StakeManagerLib.sol +231 -0
  420. package/contracts/staking/Staking.sol +513 -0
  421. package/contracts/staking/StakingLifecycle.sol +23 -0
  422. package/contracts/staking/StakingManager.sol +54 -0
  423. package/contracts/staking/StakingReader.sol +187 -0
  424. package/contracts/staking/StakingService.sol +411 -0
  425. package/contracts/staking/StakingServiceManager.sol +44 -0
  426. package/contracts/staking/StakingStore.sol +615 -0
  427. package/contracts/staking/TargetManagerLib.sol +207 -0
  428. package/contracts/{types → type}/AddressSet.sol +1 -1
  429. package/contracts/type/Amount.sol +128 -0
  430. package/contracts/{types → type}/Blocknumber.sol +20 -3
  431. package/contracts/{types → type}/ClaimId.sol +25 -2
  432. package/contracts/{types → type}/Fee.sol +33 -24
  433. package/contracts/{types → type}/NftId.sol +14 -16
  434. package/contracts/{types → type}/NftIdSet.sol +2 -2
  435. package/contracts/type/ObjectType.sol +275 -0
  436. package/contracts/{types → type}/PayoutId.sol +33 -5
  437. package/contracts/{types → type}/Referral.sol +1 -1
  438. package/contracts/type/RequestId.sol +75 -0
  439. package/contracts/{types → type}/RiskId.sol +1 -1
  440. package/contracts/type/RoleId.sol +174 -0
  441. package/contracts/{types → type}/Seconds.sol +27 -0
  442. package/contracts/type/Selector.sol +102 -0
  443. package/contracts/{types → type}/StateId.sol +33 -4
  444. package/contracts/type/String.sol +53 -0
  445. package/contracts/{types → type}/Timestamp.sol +10 -1
  446. package/contracts/{types → type}/UFixed.sol +6 -0
  447. package/contracts/{types → type}/Version.sol +1 -1
  448. package/package.json +6 -3
  449. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  450. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  451. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  452. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  453. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  454. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  455. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  456. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  457. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  458. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  459. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  460. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1311
  461. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  462. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
  463. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  464. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  466. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  468. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  469. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  470. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  471. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  472. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  473. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  474. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
  475. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  476. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
  477. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1093
  479. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
  481. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
  483. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
  485. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1732
  487. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
  489. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  491. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
  493. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  494. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  495. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  496. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -428
  497. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  498. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  499. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1021
  500. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  501. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
  502. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  503. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -824
  504. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  505. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -657
  506. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  507. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
  508. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  509. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
  510. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  511. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  512. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  513. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  514. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  515. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  516. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  517. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  518. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  519. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  520. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  521. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -521
  522. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  523. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  524. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  525. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  526. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  527. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  528. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  529. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  530. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  531. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  533. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  535. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  536. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
  537. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  540. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  541. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  542. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  543. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  544. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  545. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  546. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  547. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  548. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  549. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
  550. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  551. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
  552. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  553. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  554. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
  555. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  556. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  557. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  558. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  559. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  560. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  561. package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
  562. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  563. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  564. package/contracts/components/Component.sol +0 -251
  565. package/contracts/components/IDistributionComponent.sol +0 -71
  566. package/contracts/components/IPoolComponent.sol +0 -113
  567. package/contracts/components/IProductComponent.sol +0 -40
  568. package/contracts/components/Pool.sol +0 -299
  569. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  570. package/contracts/instance/Cloneable.sol +0 -51
  571. package/contracts/instance/InstanceAccessManager.sol +0 -522
  572. package/contracts/instance/base/ComponentService.sol +0 -134
  573. package/contracts/instance/base/KeyValueStore.sol +0 -175
  574. package/contracts/instance/base/Lifecycle.sol +0 -109
  575. package/contracts/instance/module/ISetup.sol +0 -33
  576. package/contracts/instance/module/ITreasury.sol +0 -23
  577. package/contracts/instance/service/ApplicationService.sol +0 -350
  578. package/contracts/instance/service/BundleService.sol +0 -336
  579. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  580. package/contracts/instance/service/ClaimService.sol +0 -151
  581. package/contracts/instance/service/DistributionService.sol +0 -467
  582. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  583. package/contracts/instance/service/IBundleService.sol +0 -62
  584. package/contracts/instance/service/IClaimService.sol +0 -61
  585. package/contracts/instance/service/IPoolService.sol +0 -35
  586. package/contracts/instance/service/IProductService.sol +0 -40
  587. package/contracts/instance/service/PolicyService.sol +0 -403
  588. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  589. package/contracts/instance/service/PoolService.sol +0 -220
  590. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  591. package/contracts/instance/service/ProductService.sol +0 -241
  592. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  593. package/contracts/registry/RegistryAccessManager.sol +0 -216
  594. package/contracts/shared/ContractDeployerLib.sol +0 -72
  595. package/contracts/test/TestFee.sol +0 -25
  596. package/contracts/test/TestRegisterable.sol +0 -18
  597. package/contracts/test/TestRoleId.sol +0 -14
  598. package/contracts/test/TestService.sol +0 -25
  599. package/contracts/test/TestVersion.sol +0 -44
  600. package/contracts/test/TestVersionable.sol +0 -17
  601. package/contracts/test/Usdc.sol +0 -26
  602. package/contracts/types/ChainId.sol +0 -38
  603. package/contracts/types/NumberId.sol +0 -52
  604. package/contracts/types/ObjectType.sol +0 -157
  605. package/contracts/types/RoleId.sol +0 -97
  606. /package/contracts/{types → type}/DistributorType.sol +0 -0
  607. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -3,65 +3,60 @@ pragma solidity ^0.8.20;
3
3
 
4
4
  import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
5
5
 
6
- import {Key32, KeyId, Key32Lib} from "../types/Key32.sol";
7
- import {NftId} from "../types/NftId.sol";
8
- import {ClaimId} from "../types/ClaimId.sol";
9
- import {NumberId} from "../types/NumberId.sol";
10
- import {ObjectType, BUNDLE, DISTRIBUTION, INSTANCE, POLICY, POOL, ROLE, PRODUCT, TARGET, COMPONENT, DISTRIBUTOR, DISTRIBUTOR_TYPE} from "../types/ObjectType.sol";
11
- import {RiskId, RiskIdLib} from "../types/RiskId.sol";
12
- import {RoleId, RoleIdLib, INSTANCE_ROLE, INSTANCE_OWNER_ROLE} from "../types/RoleId.sol";
13
- import {StateId, ACTIVE} from "../types/StateId.sol";
14
- import {TimestampLib} from "../types/Timestamp.sol";
15
- import {VersionPart, VersionPartLib} from "../types/Version.sol";
16
-
17
- import {ERC165} from "../shared/ERC165.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";
19
+
18
20
  import {Registerable} from "../shared/Registerable.sol";
21
+ import {TokenHandler} from "../shared/TokenHandler.sol";
19
22
 
20
23
  import {IRegistry} from "../registry/IRegistry.sol";
21
24
 
22
25
  import {IInstance} from "./IInstance.sol";
26
+ import {IInstanceService} from "./IInstanceService.sol";
23
27
  import {InstanceReader} from "./InstanceReader.sol";
24
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
28
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
25
29
  import {BundleManager} from "./BundleManager.sol";
30
+ import {InstanceStore} from "./InstanceStore.sol";
26
31
 
27
- import {KeyValueStore} from "./base/KeyValueStore.sol";
32
+ import {KeyValueStore} from "../shared/KeyValueStore.sol";
28
33
 
29
- import {IAccess} from "./module/IAccess.sol";
30
34
  import {IBundle} from "./module/IBundle.sol";
31
35
  import {IComponents} from "./module/IComponents.sol";
32
36
  import {IDistribution} from "./module/IDistribution.sol";
33
37
  import {IPolicy} from "./module/IPolicy.sol";
34
38
  import {IRisk} from "./module/IRisk.sol";
35
- import {ISetup} from "./module/ISetup.sol";
36
39
 
37
- import {IDistributionService} from "./service/IDistributionService.sol";
38
- import {IPoolService} from "./service/IPoolService.sol";
39
- import {IProductService} from "./service/IProductService.sol";
40
- import {IPolicyService} from "./service/IPolicyService.sol";
41
- import {IBundleService} from "./service/IBundleService.sol";
42
- import {TokenHandler} from "../shared/TokenHandler.sol";
43
- import {VersionPart, VersionPartLib} from "../types/Version.sol";
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";
44
45
 
45
46
  contract Instance is
46
47
  IInstance,
47
48
  AccessManagedUpgradeable,
48
- Registerable,
49
- KeyValueStore
49
+ Registerable
50
50
  {
51
-
52
51
  uint256 public constant GIF_MAJOR_VERSION = 3;
53
52
 
54
- uint64 public constant ADMIN_ROLE = type(uint64).min;
55
- uint64 public constant PUBLIC_ROLE = type(uint64).max;
56
- uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
57
-
58
- uint32 public constant EXECUTION_DELAY = 0;
59
-
60
53
  bool private _initialized;
61
54
 
62
- InstanceAccessManager internal _accessManager;
55
+ IInstanceService internal _instanceService;
56
+ InstanceAdmin internal _instanceAdmin;
63
57
  InstanceReader internal _instanceReader;
64
58
  BundleManager internal _bundleManager;
59
+ InstanceStore internal _instanceStore;
65
60
 
66
61
  modifier onlyChainNft() {
67
62
  if(msg.sender != getRegistry().getChainNftAddress()) {
@@ -70,258 +65,190 @@ contract Instance is
70
65
  _;
71
66
  }
72
67
 
73
- function initialize(address authority, address registryAddress, address initialOwner)
74
- public
68
+ function initialize(
69
+ InstanceAdmin instanceAdmin,
70
+ InstanceStore instanceStore,
71
+ BundleManager bundleManager,
72
+ InstanceReader instanceReader,
73
+ IRegistry registry,
74
+ address initialOwner
75
+ )
76
+ external
75
77
  initializer()
76
78
  {
77
- __AccessManaged_init(authority);
78
-
79
- IRegistry registry = IRegistry(registryAddress);
80
- initializeRegisterable(registryAddress, registry.getNftId(), INSTANCE(), true, initialOwner, "");
81
- initializeLifecycle();
82
-
83
- registerInterface(type(IInstance).interfaceId);
84
- }
85
-
86
- //--- ProductSetup ------------------------------------------------------//
87
- function createProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup) external restricted() {
88
- create(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup));
89
- }
90
-
91
- function updateProductSetup(NftId productNftId, ISetup.ProductSetupInfo memory setup, StateId newState) external restricted() {
92
- update(_toNftKey32(productNftId, PRODUCT()), abi.encode(setup), newState);
93
- }
94
-
95
- function updateProductSetupState(NftId productNftId, StateId newState) external restricted() {
96
- updateState(_toNftKey32(productNftId, PRODUCT()), newState);
97
- }
98
-
99
- //--- DistributionSetup ------------------------------------------------------//
100
- function createDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup) external restricted() {
101
- create(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup));
102
- }
103
-
104
- function updateDistributionSetup(NftId distributionNftId, ISetup.DistributionSetupInfo memory setup, StateId newState) external restricted() {
105
- update(_toNftKey32(distributionNftId, DISTRIBUTION()), abi.encode(setup), newState);
106
- }
107
-
108
- function updateDistributionSetupState(NftId distributionNftId, StateId newState) external restricted() {
109
- updateState(_toNftKey32(distributionNftId, DISTRIBUTION()), newState);
110
- }
111
-
112
- //--- PoolSetup ------------------------------------------------------//
113
- function createPoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info) external restricted() {
114
- create(_toNftKey32(poolNftId, POOL()), abi.encode(info));
115
- }
116
-
117
- function updatePoolSetup(NftId poolNftId, IComponents.ComponentInfo memory info, StateId newState) external restricted() {
118
- update(_toNftKey32(poolNftId, POOL()), abi.encode(info), newState);
119
- }
120
-
121
- function updatePoolSetupState(NftId poolNftId, StateId newState) external restricted() {
122
- updateState(_toNftKey32(poolNftId, POOL()), newState);
123
- }
124
-
125
- //--- DistributorType -------------------------------------------------------//
126
- function createDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info) external restricted() {
127
- create(distributorKey, abi.encode(info));
128
- }
129
-
130
- function updateDistributorType(Key32 distributorKey, IDistribution.DistributorTypeInfo memory info, StateId newState) external restricted() {
131
- update(distributorKey, abi.encode(info), newState);
132
- }
133
-
134
- function updateDistributorTypeState(Key32 distributorKey, StateId newState) external restricted() {
135
- updateState(distributorKey, newState);
136
- }
137
-
138
- //--- Distributor -------------------------------------------------------//
139
- function createDistributor(NftId nftId, IDistribution.DistributorInfo memory info) external restricted() {
140
- create(toDistributorKey32(nftId), abi.encode(info));
141
- }
142
-
143
- function updateDistributor(NftId nftId, IDistribution.DistributorInfo memory info, StateId newState) external restricted() {
144
- update(toDistributorKey32(nftId), abi.encode(info), newState);
145
- }
79
+ _instanceAdmin = instanceAdmin;
80
+ if(_instanceAdmin.authority() == address(0)) {
81
+ // TODO rename error
82
+ revert ErrorInstanceInstanceAdminZero();
83
+ }
146
84
 
147
- function updateDistributorState(NftId nftId, StateId newState) external restricted() {
148
- updateState(toDistributorKey32(nftId), newState);
149
- }
85
+ // set authority to instance admin authority
86
+ __AccessManaged_init(_instanceAdmin.authority());
150
87
 
151
- //--- Referral ----------------------------------------------------------//
152
- function createReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo) external restricted() {
153
- create(referralKey, abi.encode(referralInfo));
154
- }
88
+ // setup instance object info
89
+ initializeRegisterable(
90
+ address(registry),
91
+ registry.getNftId(),
92
+ INSTANCE(),
93
+ true,
94
+ initialOwner,
95
+ "");
155
96
 
156
- function updateReferral(Key32 referralKey, IDistribution.ReferralInfo memory referralInfo, StateId newState) external restricted() {
157
- update(referralKey, abi.encode(referralInfo), newState);
158
- }
159
-
160
- function updateReferralState(Key32 referralKey, StateId newState) external restricted() {
161
- updateState(referralKey, newState);
162
- }
97
+ // store instance supporting contracts
98
+ _instanceStore = instanceStore;
99
+ _bundleManager = bundleManager;
100
+ _instanceReader = instanceReader;
163
101
 
164
- //--- Bundle ------------------------------------------------------------//
165
- function createBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle) external restricted() {
166
- create(toBundleKey32(bundleNftId), abi.encode(bundle));
167
- }
102
+ // initialize instance supporting contracts
103
+ _instanceStore.initialize();
104
+ _bundleManager.initialize();
105
+ _instanceReader.initialize();
168
106
 
169
- function updateBundle(NftId bundleNftId, IBundle.BundleInfo memory bundle, StateId newState) external restricted() {
170
- update(toBundleKey32(bundleNftId), abi.encode(bundle), newState);
171
- }
107
+ _instanceService = IInstanceService(
108
+ getRegistry().getServiceAddress(
109
+ INSTANCE(),
110
+ getMajorVersion()));
172
111
 
173
- function updateBundleState(NftId bundleNftId, StateId newState) external restricted() {
174
- updateState(toBundleKey32(bundleNftId), newState);
112
+ registerInterface(type(IInstance).interfaceId);
175
113
  }
176
114
 
177
- //--- Risk --------------------------------------------------------------//
178
- function createRisk(RiskId riskId, IRisk.RiskInfo memory risk) external restricted() {
179
- create(riskId.toKey32(), abi.encode(risk));
180
- }
115
+ //--- Staking ----------------------------------------------------------//
181
116
 
182
- function updateRisk(RiskId riskId, IRisk.RiskInfo memory risk, StateId newState) external restricted() {
183
- update(riskId.toKey32(), abi.encode(risk), 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);
184
123
  }
185
124
 
186
- function updateRiskState(RiskId riskId, StateId newState) external restricted() {
187
- updateState(riskId.toKey32(), newState);
125
+ function setStakingRewardRate(UFixed rewardRate)
126
+ external
127
+ onlyOwner()
128
+ {
129
+ _instanceService.setStakingRewardRate(rewardRate);
188
130
  }
189
131
 
190
- //--- Application (Policy) ----------------------------------------------//
191
- function createApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy) external restricted() {
192
- create(toPolicyKey32(applicationNftId), abi.encode(policy));
132
+ function refillStakingRewardReserves(Amount dipAmount)
133
+ external
134
+ onlyOwner()
135
+ {
136
+ address instanceOwner = msg.sender;
137
+ _instanceService.refillStakingRewardReserves(instanceOwner, dipAmount);
193
138
  }
194
139
 
195
- function updateApplication(NftId applicationNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
196
- update(toPolicyKey32(applicationNftId), abi.encode(policy), newState);
140
+ function withdrawStakingRewardReserves(Amount dipAmount)
141
+ external
142
+ onlyOwner()
143
+ returns (Amount newBalance)
144
+ {
145
+ return _instanceService.withdrawStakingRewardReserves(dipAmount);
197
146
  }
198
147
 
199
- function updateApplicationState(NftId applicationNftId, StateId newState) external restricted() {
200
- updateState(toPolicyKey32(applicationNftId), newState);
201
- }
148
+ //--- Roles ------------------------------------------------------------//
202
149
 
203
- //--- Policy ------------------------------------------------------------//
204
- function updatePolicy(NftId policyNftId, IPolicy.PolicyInfo memory policy, StateId newState) external restricted() {
205
- update(toPolicyKey32(policyNftId), abi.encode(policy), 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);
206
157
  }
207
158
 
208
- function updatePolicyState(NftId policyNftId, StateId newState) external restricted() {
209
- updateState(toPolicyKey32(policyNftId), newState);
159
+ function grantRole(RoleId roleId, address account)
160
+ external
161
+ onlyOwner()
162
+ {
163
+ _instanceAdmin.grantRole(roleId, account);
210
164
  }
211
165
 
212
- //--- Claim -------------------------------------------------------------//
213
- function createClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim) external restricted() {
214
- create(toPolicyKey32(policyNftId), abi.encode(claim));
166
+ function revokeRole(RoleId roleId, address account)
167
+ external
168
+ onlyOwner()
169
+ {
170
+ // TODO refactor
171
+ // AccessManagerExtendedInitializeable(authority()).revokeRole(roleId.toInt(), account);
215
172
  }
216
173
 
217
- function updateClaim(NftId policyNftId, ClaimId claimId, IPolicy.ClaimInfo memory claim, StateId newState) external restricted() {
218
- update(toPolicyKey32(policyNftId), abi.encode(claim), newState);
219
- }
174
+ //--- Targets ------------------------------------------------------------//
220
175
 
221
- function updateClaimState(NftId policyNftId, ClaimId claimId, StateId newState) external restricted() {
222
- 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);
223
182
  }
224
183
 
225
- //--- Payout ------------------------------------------------------------//
226
- function createPayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout) external restricted() {
227
- create(toPolicyKey32(policyNftId), abi.encode(payout));
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);
228
194
  }
229
195
 
230
- function updatePayout(NftId policyNftId, NumberId payoutId, IPolicy.PayoutInfo memory payout, StateId newState) external restricted() {
231
- update(toPolicyKey32(policyNftId), abi.encode(payout), newState);
196
+ function setTargetLocked(address target, bool locked)
197
+ external
198
+ onlyOwner()
199
+ {
200
+ // TODO refactor
201
+ // _instanceAdmin.setTargetLockedByInstance(target, locked);
232
202
  }
233
203
 
234
- function updatePayoutState(NftId policyNftId, StateId newState) external restricted() {
235
- updateState(toPolicyKey32(policyNftId), newState);
236
- }
204
+ //--- ITransferInterceptor ----------------------------------------------//
237
205
 
238
- //--- ITransferInterceptor ------------------------------------------------------------//
206
+ // TODO interception of child components nfts
239
207
  function nftMint(address to, uint256 tokenId) external onlyChainNft {
240
- assert(_accessManager.roleMembers(INSTANCE_OWNER_ROLE()) == 0);// temp
241
- assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
208
+ // TODO refactor
209
+ // _instanceAdmin.transferInstanceOwnerRole(address(0), to);
242
210
  }
243
211
 
244
212
  function nftTransferFrom(address from, address to, uint256 tokenId) external onlyChainNft {
245
- assert(_accessManager.revokeRole(INSTANCE_OWNER_ROLE(), from) == true);
246
- assert(_accessManager.grantRole(INSTANCE_OWNER_ROLE(), to) == true);
247
- }
248
-
249
- //--- internal view/pure functions --------------------------------------//
250
- function _toNftKey32(NftId nftId, ObjectType objectType) internal pure returns (Key32) {
251
- return nftId.toKey32(objectType);
252
- }
253
-
254
- function toBundleKey32(NftId bundleNftId) public pure returns (Key32) {
255
- return bundleNftId.toKey32(BUNDLE());
256
- }
257
-
258
- function toPolicyKey32(NftId policyNftId) public pure returns (Key32) {
259
- return policyNftId.toKey32(POLICY());
213
+ // TODO refactor
214
+ // _instanceAdmin.transferInstanceOwnerRole(from, to);
260
215
  }
261
216
 
262
- function toDistributionKey32(NftId distNftId) public pure returns (Key32) {
263
- return distNftId.toKey32(DISTRIBUTION());
264
- }
265
-
266
- function toDistributorTypeKey32(NftId distNftId) public pure returns (Key32) {
267
- return distNftId.toKey32(DISTRIBUTOR_TYPE());
268
- }
269
-
270
- function toDistributorKey32(NftId distNftId) public pure returns (Key32) {
271
- return distNftId.toKey32(DISTRIBUTOR());
272
- }
273
-
274
- function getDistributionService() external view returns (IDistributionService) {
275
- return IDistributionService(getRegistry().getServiceAddress(DISTRIBUTION(), VersionPart.wrap(3)));
276
- }
217
+ //--- initial setup functions -------------------------------------------//
277
218
 
278
- function getProductService() external view returns (IProductService) {
279
- return IProductService(getRegistry().getServiceAddress(PRODUCT(), VersionPart.wrap(3)));
280
- }
281
-
282
- function getPoolService() external view returns (IPoolService) {
283
- return IPoolService(getRegistry().getServiceAddress(POOL(), VersionPart.wrap(3)));
284
- }
285
219
 
286
- function getPolicyService() external view returns (IPolicyService) {
287
- return IPolicyService(getRegistry().getServiceAddress(POLICY(), VersionPart.wrap(3)));
288
- }
289
-
290
- function getBundleService() external view returns (IBundleService) {
291
- return IBundleService(getRegistry().getServiceAddress(BUNDLE(), VersionPart.wrap(3)));
292
- }
220
+ function setInstanceReader(InstanceReader instanceReader)
221
+ external
222
+ restricted()
223
+ {
224
+ if(instanceReader.getInstance() != Instance(this)) {
225
+ revert ErrorInstanceInstanceReaderInstanceMismatch(address(this));
226
+ }
293
227
 
294
- function setInstanceReader(InstanceReader instanceReader) external restricted() {
295
- require(instanceReader.getInstance() == Instance(this), "InstanceReader instance mismatch");
296
228
  _instanceReader = instanceReader;
297
229
  }
298
230
 
299
- function getMajorVersion() external pure returns (VersionPart majorVersion) {
300
- return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
301
- }
231
+ //--- external view functions -------------------------------------------//
302
232
 
303
233
  function getInstanceReader() external view returns (InstanceReader) {
304
234
  return _instanceReader;
305
235
  }
306
-
307
- function setBundleManager(BundleManager bundleManager) external restricted() {
308
- require(address(_bundleManager) == address(0), "BundleManager is set");
309
- require(bundleManager.getInstance() == Instance(this), "BundleManager instance mismatch");
310
- require(bundleManager.authority() == authority(), "BundleManager authority mismatch");
311
- _bundleManager = bundleManager;
312
- }
313
236
 
314
237
  function getBundleManager() external view returns (BundleManager) {
315
238
  return _bundleManager;
316
239
  }
317
240
 
318
- function setInstanceAccessManager(InstanceAccessManager accessManager) external restricted {
319
- require(address(_accessManager) == address(0), "InstanceAccessManager is set");
320
- require(accessManager.authority() == authority(), "InstanceAccessManager authority mismatch");
321
- _accessManager = accessManager;
241
+ function getInstanceAdmin() external view returns (InstanceAdmin) {
242
+ return _instanceAdmin;
322
243
  }
323
244
 
324
- function getInstanceAccessManager() external view returns (InstanceAccessManager) {
325
- return _accessManager;
245
+ function getInstanceStore() external view returns (InstanceStore) {
246
+ return _instanceStore;
326
247
  }
327
- }
248
+
249
+ function getMajorVersion() public pure returns (VersionPart majorVersion) {
250
+ return VersionPartLib.toVersionPart(GIF_MAJOR_VERSION);
251
+ }
252
+
253
+ //--- internal view/pure functions --------------------------------------//
254
+ }