@etherisc/gif-next 0.0.2-ceb30b2-601 → 0.0.2-cf22d7b-845

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 (514) hide show
  1. package/README.md +2 -1
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +239 -155
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  5. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1349 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  7. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -0
  8. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  9. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +118 -99
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +39 -307
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +254 -2310
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +72 -22
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +397 -2818
  20. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  21. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +204 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +507 -350
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +147 -193
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +113 -103
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
  32. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
  33. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
  34. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
  35. package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -1
  36. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  37. package/artifacts/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol}/ObjectManager.json +3 -3
  38. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  39. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  40. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  45. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  46. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  47. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  49. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  51. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  52. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +45 -56
  53. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  54. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +200 -97
  55. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  56. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +144 -156
  57. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  58. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +305 -103
  59. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  61. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  63. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  65. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  67. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  69. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  71. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +499 -0
  73. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  74. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +30 -2
  75. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  76. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +127 -71
  77. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  78. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +53 -136
  79. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  80. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +284 -106
  81. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  82. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +1 -56
  83. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  85. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  87. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  89. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  91. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  92. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  93. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  95. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  97. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  99. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  100. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +179 -29
  101. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  102. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +304 -52
  103. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  104. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  105. package/artifacts/contracts/registry/Registry.sol/Registry.json +415 -43
  106. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  107. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  108. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  109. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +337 -72
  110. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  111. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +93 -41
  112. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +824 -91
  114. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  115. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  116. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  117. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
  118. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  119. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  120. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  121. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  122. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  123. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  124. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  125. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  126. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  127. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  128. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  129. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +143 -76
  130. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  131. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
  132. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  133. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
  134. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  135. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +17 -122
  136. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  137. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  138. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  139. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  140. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  142. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  143. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +114 -75
  144. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  145. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
  146. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  147. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
  148. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  149. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  150. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  152. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  153. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  154. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  155. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +45 -3
  156. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  157. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  158. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  159. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  160. package/artifacts/contracts/shared/IService.sol/IService.json +7 -1
  161. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  162. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  163. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  164. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  165. package/artifacts/contracts/{components/Product.sol/Product.json → shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json} +170 -288
  166. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  167. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  168. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  169. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  170. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  171. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  172. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
  174. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  175. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +56 -7
  176. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  177. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +70 -22
  178. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
  180. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  181. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  182. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  183. package/artifacts/contracts/shared/Service.sol/Service.json +7 -1
  184. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  185. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  186. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  187. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  188. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  189. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  190. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  191. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  192. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  193. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  194. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  195. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  196. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  197. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  198. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  199. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  200. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  201. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  202. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  203. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  204. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  205. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  206. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  207. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  208. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  209. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  210. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  211. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  212. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  213. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  214. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  215. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  216. package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  217. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  218. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  219. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  220. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  221. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  222. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  223. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  224. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  225. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  226. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  227. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  228. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  229. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  230. package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  231. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  232. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  233. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  234. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  235. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  236. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  237. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  238. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  239. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  240. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  241. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  242. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
  243. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  244. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  245. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  246. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  247. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  248. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  249. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  250. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  251. package/contracts/{components → distribution}/Distribution.sol +41 -64
  252. package/contracts/distribution/DistributionService.sol +298 -0
  253. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  254. package/contracts/{components → distribution}/IDistributionComponent.sol +11 -16
  255. package/contracts/{instance/service → distribution}/IDistributionService.sol +19 -37
  256. package/contracts/instance/BundleManager.sol +5 -5
  257. package/contracts/instance/IInstance.sol +45 -70
  258. package/contracts/instance/IInstanceService.sol +29 -11
  259. package/contracts/instance/Instance.sol +112 -195
  260. package/contracts/instance/InstanceAdmin.sol +331 -0
  261. package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
  262. package/contracts/instance/InstanceReader.sol +106 -58
  263. package/contracts/instance/InstanceService.sol +166 -288
  264. package/contracts/instance/InstanceServiceManager.sol +11 -21
  265. package/contracts/instance/InstanceStore.sol +260 -0
  266. package/contracts/instance/base/BalanceStore.sol +118 -0
  267. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +1 -1
  268. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +6 -6
  269. package/contracts/instance/module/IAccess.sol +4 -12
  270. package/contracts/instance/module/IBundle.sol +6 -9
  271. package/contracts/instance/module/IComponents.sol +21 -10
  272. package/contracts/instance/module/IDistribution.sol +7 -6
  273. package/contracts/instance/module/IPolicy.sol +20 -14
  274. package/contracts/instance/module/IRisk.sol +1 -1
  275. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  276. package/contracts/pool/BundleService.sol +296 -0
  277. package/contracts/pool/BundleServiceManager.sol +42 -0
  278. package/contracts/{instance/service → pool}/IBundleService.sol +33 -29
  279. package/contracts/{components → pool}/IPoolComponent.sol +16 -17
  280. package/contracts/{instance/service → pool}/IPoolService.sol +57 -51
  281. package/contracts/{components → pool}/Pool.sol +52 -55
  282. package/contracts/pool/PoolService.sol +453 -0
  283. package/contracts/pool/PoolServiceManager.sol +42 -0
  284. package/contracts/product/ApplicationService.sol +254 -0
  285. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
  286. package/contracts/{instance/service → product}/ClaimService.sol +167 -86
  287. package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
  288. package/contracts/{instance/service → product}/IApplicationService.sol +13 -29
  289. package/contracts/{instance/service → product}/IClaimService.sol +18 -15
  290. package/contracts/{instance/service → product}/IPolicyService.sol +24 -26
  291. package/contracts/product/IPricingService.sol +39 -0
  292. package/contracts/product/IProductComponent.sol +42 -0
  293. package/contracts/product/IProductService.sol +33 -0
  294. package/contracts/product/PolicyService.sol +475 -0
  295. package/contracts/product/PolicyServiceManager.sol +42 -0
  296. package/contracts/product/PricingService.sol +301 -0
  297. package/contracts/product/PricingServiceManager.sol +42 -0
  298. package/contracts/{components → product}/Product.sol +83 -77
  299. package/contracts/product/ProductService.sol +124 -0
  300. package/contracts/product/ProductServiceManager.sol +42 -0
  301. package/contracts/registry/ChainNft.sol +8 -1
  302. package/contracts/registry/IRegistry.sol +44 -21
  303. package/contracts/registry/IRegistryService.sol +37 -34
  304. package/contracts/registry/Registry.sol +191 -82
  305. package/contracts/registry/RegistryAdmin.sol +237 -0
  306. package/contracts/registry/RegistryService.sol +66 -82
  307. package/contracts/registry/RegistryServiceManager.sol +21 -25
  308. package/contracts/registry/ReleaseManager.sol +458 -183
  309. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  310. package/contracts/registry/TokenRegistry.sol +261 -62
  311. package/contracts/shared/AccessManagerCustom.sol +736 -0
  312. package/contracts/shared/AccessManagerExtended.sol +470 -0
  313. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  314. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  315. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  316. package/contracts/shared/Component.sol +278 -0
  317. package/contracts/shared/ComponentService.sol +596 -0
  318. package/contracts/shared/ComponentServiceManager.sol +35 -0
  319. package/contracts/shared/ComponentVerifyingService.sol +111 -0
  320. package/contracts/shared/ERC165.sol +1 -1
  321. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  322. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  323. package/contracts/{components → shared}/IComponent.sol +23 -29
  324. package/contracts/shared/IComponentService.sol +91 -0
  325. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  326. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  327. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  328. package/contracts/shared/INftOwnable.sol +2 -2
  329. package/contracts/shared/IPolicyHolder.sol +14 -7
  330. package/contracts/shared/IService.sol +2 -2
  331. package/contracts/shared/IVersionable.sol +1 -1
  332. package/contracts/shared/InitializableCustom.sol +177 -0
  333. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  334. package/contracts/shared/KeyValueStore.sol +127 -0
  335. package/contracts/{instance/base → shared}/Lifecycle.sol +9 -5
  336. package/contracts/shared/NftIdSetManager.sol +65 -0
  337. package/contracts/shared/NftOwnable.sol +3 -14
  338. package/contracts/shared/PolicyHolder.sol +32 -17
  339. package/contracts/shared/ProxyManager.sol +34 -4
  340. package/contracts/shared/Registerable.sol +3 -3
  341. package/contracts/shared/Service.sol +9 -4
  342. package/contracts/shared/TokenHandler.sol +27 -2
  343. package/contracts/shared/Versionable.sol +1 -1
  344. package/contracts/staking/IStaking.sol +168 -0
  345. package/contracts/staking/IStakingService.sol +149 -0
  346. package/contracts/staking/StakeManagerLib.sol +179 -0
  347. package/contracts/staking/Staking.sol +551 -0
  348. package/contracts/staking/StakingManager.sol +54 -0
  349. package/contracts/staking/StakingReader.sol +187 -0
  350. package/contracts/staking/StakingService.sol +406 -0
  351. package/contracts/staking/StakingServiceManager.sol +45 -0
  352. package/contracts/staking/StakingStore.sol +572 -0
  353. package/contracts/staking/TargetManagerLib.sol +207 -0
  354. package/contracts/{types → type}/AddressSet.sol +1 -1
  355. package/contracts/{types → type}/Amount.sol +59 -1
  356. package/contracts/{types → type}/Blocknumber.sol +20 -3
  357. package/contracts/{types → type}/Fee.sol +24 -22
  358. package/contracts/{types → type}/NftId.sol +14 -16
  359. package/contracts/{types → type}/NftIdSet.sol +2 -2
  360. package/contracts/{types → type}/ObjectType.sol +15 -3
  361. package/contracts/{types → type}/Referral.sol +1 -1
  362. package/contracts/{types → type}/RiskId.sol +1 -1
  363. package/contracts/{types → type}/RoleId.sol +55 -9
  364. package/contracts/{types → type}/Seconds.sol +27 -0
  365. package/contracts/{types → type}/StateId.sol +17 -4
  366. package/contracts/{types → type}/Version.sol +1 -1
  367. package/package.json +3 -3
  368. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  369. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  370. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  371. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  372. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  373. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  374. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  375. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  376. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  377. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  378. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  379. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  380. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1330
  381. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  382. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  383. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  384. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  385. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  386. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -532
  387. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  388. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
  389. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  390. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.json +0 -10
  391. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  392. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
  393. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  394. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1092
  395. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  396. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -672
  397. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  398. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1313
  399. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  400. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -712
  401. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  402. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1316
  403. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  404. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -724
  405. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  406. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
  407. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  408. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -780
  409. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  410. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  411. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  412. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  413. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  414. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  415. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  416. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  417. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1153
  418. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  419. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -676
  420. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  421. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1598
  422. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  423. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -696
  424. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  425. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
  426. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  427. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
  428. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  429. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  430. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  431. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  432. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  433. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  434. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  435. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -370
  436. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  437. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  438. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  439. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -588
  440. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  441. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  442. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  443. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  444. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  445. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  446. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  447. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  448. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  449. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  450. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  451. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  452. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  453. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  454. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  455. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  456. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  457. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  458. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  459. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  460. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  461. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -166
  462. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  463. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  464. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  465. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  466. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  467. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  468. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  469. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  470. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  471. package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
  472. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  473. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  474. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  475. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  476. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  477. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  478. package/contracts/components/Component.sol +0 -253
  479. package/contracts/components/IProductComponent.sol +0 -40
  480. package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
  481. package/contracts/instance/InstanceAccessManager.sol +0 -527
  482. package/contracts/instance/base/ComponentService.sol +0 -130
  483. package/contracts/instance/base/KeyValueStore.sol +0 -149
  484. package/contracts/instance/module/ISetup.sol +0 -33
  485. package/contracts/instance/module/ITreasury.sol +0 -23
  486. package/contracts/instance/service/ApplicationService.sol +0 -356
  487. package/contracts/instance/service/BundleService.sol +0 -443
  488. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  489. package/contracts/instance/service/DistributionService.sol +0 -431
  490. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  491. package/contracts/instance/service/IProductService.sol +0 -40
  492. package/contracts/instance/service/PolicyService.sol +0 -358
  493. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  494. package/contracts/instance/service/PoolService.sol +0 -349
  495. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  496. package/contracts/instance/service/ProductService.sol +0 -210
  497. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  498. package/contracts/registry/RegistryAccessManager.sol +0 -216
  499. package/contracts/shared/ContractDeployerLib.sol +0 -72
  500. package/contracts/test/TestFee.sol +0 -25
  501. package/contracts/test/TestRegisterable.sol +0 -18
  502. package/contracts/test/TestRoleId.sol +0 -14
  503. package/contracts/test/TestService.sol +0 -25
  504. package/contracts/test/TestVersion.sol +0 -44
  505. package/contracts/test/TestVersionable.sol +0 -17
  506. package/contracts/test/Usdc.sol +0 -26
  507. package/contracts/types/ChainId.sol +0 -38
  508. package/contracts/types/NumberId.sol +0 -52
  509. /package/contracts/{types → type}/ClaimId.sol +0 -0
  510. /package/contracts/{types → type}/DistributorType.sol +0 -0
  511. /package/contracts/{types → type}/Key32.sol +0 -0
  512. /package/contracts/{types → type}/PayoutId.sol +0 -0
  513. /package/contracts/{types → type}/Timestamp.sol +0 -0
  514. /package/contracts/{types → type}/UFixed.sol +0 -0
@@ -4,20 +4,36 @@ pragma solidity ^0.8.20;
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
  import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
6
6
 
7
+ import {BundleManager} from "./BundleManager.sol";
8
+ import {ChainNft} from "../registry/ChainNft.sol";
9
+ import {NftId} from "../type/NftId.sol";
10
+ import {RoleId} from "../type/RoleId.sol";
11
+ import {SecondsLib} from "../type/Seconds.sol";
12
+ import {UFixedLib} from "../type/UFixed.sol";
13
+ import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
14
+ import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
15
+
16
+ import {Service} from "../shared/Service.sol";
17
+ import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
18
+ import {IService} from "../shared/IService.sol";
19
+ import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
20
+
21
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
22
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
23
+ import {IProductComponent} from "../product/IProductComponent.sol";
24
+
25
+ import {IRegistry} from "../registry/IRegistry.sol";
26
+ import {IRegistryService} from "../registry/IRegistryService.sol";
27
+ import {IStakingService} from "../staking/IStakingService.sol";
28
+ import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
29
+
7
30
  import {Instance} from "./Instance.sol";
8
31
  import {IInstance} from "./IInstance.sol";
9
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
32
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
10
33
  import {IInstanceService} from "./IInstanceService.sol";
11
34
  import {InstanceReader} from "./InstanceReader.sol";
12
- import {BundleManager} from "./BundleManager.sol";
13
- import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
14
- import {IRegistry} from "../registry/IRegistry.sol";
15
- import {IRegistryService} from "../registry/IRegistryService.sol";
16
- import {Service} from "../../contracts/shared/Service.sol";
17
- import {NftId} from "../../contracts/types/NftId.sol";
18
- import {RoleId} from "../types/RoleId.sol";
19
- import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../types/RoleId.sol";
20
- import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
35
+ import {InstanceStore} from "./InstanceStore.sol";
36
+ import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
21
37
 
22
38
  contract InstanceService is
23
39
  Service,
@@ -28,11 +44,14 @@ contract InstanceService is
28
44
  bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
29
45
 
30
46
  IRegistryService internal _registryService;
31
- address internal _masterOzAccessManager;
32
- address internal _masterInstanceAccessManager;
47
+ IStakingService internal _stakingService;
48
+
49
+ address internal _masterAccessManager;
50
+ address internal _masterInstanceAdmin;
33
51
  address internal _masterInstance;
34
52
  address internal _masterInstanceReader;
35
53
  address internal _masterInstanceBundleManager;
54
+ address internal _masterInstanceStore;
36
55
 
37
56
  modifier onlyInstanceOwner(NftId instanceNftId) {
38
57
  if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
@@ -40,15 +59,8 @@ contract InstanceService is
40
59
  }
41
60
  _;
42
61
  }
43
- // TODO check service domain?
44
- // TODO check release version?
45
- modifier onlyRegisteredService() {
46
- if (! getRegistry().isRegisteredService(msg.sender)) {
47
- revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
48
- }
49
- _;
50
- }
51
- // TODO check release version?
62
+
63
+ // TODO check component - service - instance version match
52
64
  modifier onlyComponent() {
53
65
  if (! getRegistry().isRegisteredComponent(msg.sender)) {
54
66
  revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
@@ -64,20 +76,23 @@ contract InstanceService is
64
76
  )
65
77
  {
66
78
  address instanceOwner = msg.sender;
67
- AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
68
- Clones.clone(_masterOzAccessManager));
79
+ AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
80
+ Clones.clone(_masterAccessManager));
69
81
 
70
82
  // initially grants ADMIN_ROLE to this (being the instance service).
71
83
  // This will allow the instance service to bootstrap the authorizations of the instance.
72
- // Instance service will not use oz access manager directlly but through instance access manager instead
73
84
  // Instance service will renounce ADMIN_ROLE when bootstraping is finished
74
- clonedOzAccessManager.initialize(address(this));
85
+ clonedAccessManager.initialize(address(this));
75
86
 
76
87
  clonedInstance = Instance(Clones.clone(_masterInstance));
77
88
  clonedInstance.initialize(
78
- address(clonedOzAccessManager),
89
+ address(clonedAccessManager),
79
90
  address(getRegistry()),
80
91
  instanceOwner);
92
+ // initialize and set before instance reader
93
+ InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
94
+ clonedInstanceStore.initialize(address(clonedInstance));
95
+ clonedInstance.setInstanceStore(clonedInstanceStore);
81
96
 
82
97
  InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
83
98
  clonedInstanceReader.initialize(address(clonedInstance));
@@ -87,276 +102,127 @@ contract InstanceService is
87
102
  clonedBundleManager.initialize(address(clonedInstance));
88
103
  clonedInstance.setBundleManager(clonedBundleManager);
89
104
 
90
- InstanceAccessManager clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
91
- clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
92
- clonedInstanceAccessManager.initialize(address(clonedInstance));
93
- clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
105
+ InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
106
+ clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
107
+ clonedInstanceAdmin.initialize(address(clonedInstance));
108
+ clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
94
109
 
95
110
  // TODO amend setters with instance specific , policy manager ...
96
111
 
97
- _grantInitialAuthorizations(clonedInstanceAccessManager, clonedInstance, clonedBundleManager, instanceOwner);
112
+ // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
113
+ InstanceAuthorizationsLib.grantInitialAuthorizations(
114
+ clonedAccessManager,
115
+ clonedInstanceAdmin,
116
+ clonedInstance,
117
+ clonedBundleManager,
118
+ clonedInstanceStore,
119
+ instanceOwner,
120
+ getRegistry(),
121
+ getVersion().toMajorPart());
98
122
 
99
- clonedOzAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
123
+ clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
100
124
 
125
+ // register new instance with registry
101
126
  IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
102
127
  clonedInstanceNftId = info.nftId;
103
128
 
129
+ // create corresponding staking target
130
+ _stakingService.createInstanceTarget(
131
+ clonedInstanceNftId,
132
+ TargetManagerLib.getDefaultLockingPeriod(),
133
+ TargetManagerLib.getDefaultRewardRate());
134
+
104
135
  emit LogInstanceCloned(
105
- address(clonedOzAccessManager),
106
- address(clonedInstanceAccessManager),
107
- address(clonedInstance),
136
+ address(clonedAccessManager),
137
+ address(clonedInstanceAdmin),
138
+ address(clonedInstance),
139
+ address(clonedInstanceStore),
108
140
  address(clonedBundleManager),
109
141
  address(clonedInstanceReader),
110
142
  clonedInstanceNftId);
111
143
  }
112
144
 
113
- function _grantInitialAuthorizations(
114
- InstanceAccessManager clonedAccessManager,
115
- Instance clonedInstance,
116
- BundleManager clonedBundleManager,
117
- address instanceOwner)
118
- internal
145
+ function setComponentLocked(bool locked)
146
+ external
147
+ virtual
148
+ onlyComponent()
119
149
  {
120
- _createCoreAndGifRoles(clonedAccessManager);
121
- _createCoreTargets(clonedAccessManager, clonedInstance, clonedBundleManager);
122
- _grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstance);
123
- _grantPoolServiceAuthorizations(clonedAccessManager, clonedInstance);
124
- _grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
125
- _grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
126
- _grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
127
- _grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
128
- _grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
129
- _grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
130
- _grantInstanceOwnerAuthorizations(clonedAccessManager, instanceOwner);
131
- }
132
-
133
- function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
134
- // default roles controlled by ADMIN_ROLE -> core roles
135
- // all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
136
- clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
137
- clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
138
- clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
139
- clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
140
- clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
141
- clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
142
- clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
143
- clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
144
- // default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
145
- clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
146
- clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
147
- clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
148
- }
149
-
150
- function _createCoreTargets(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
151
- clonedAccessManager.createCoreTarget(address(clonedAccessManager), "InstanceAccessManager");
152
- clonedAccessManager.createCoreTarget(address(clonedInstance), "Instance");
153
- clonedAccessManager.createCoreTarget(address(clonedBundleManager), "BundleManager");
154
- }
155
-
156
- function _grantDistributionServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
157
- // configure authorization for distribution service on instance
158
- address distributionServiceAddress = getRegistry().getServiceAddress(DISTRIBUTION(), getVersion().toMajorPart());
159
- clonedAccessManager.grantRole(DISTRIBUTION_SERVICE_ROLE(), distributionServiceAddress);
160
- bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](11);
161
- instanceDistributionServiceSelectors[0] = clonedInstance.createDistributionSetup.selector;
162
- instanceDistributionServiceSelectors[1] = clonedInstance.updateDistributionSetup.selector;
163
- instanceDistributionServiceSelectors[2] = clonedInstance.createDistributorType.selector;
164
- instanceDistributionServiceSelectors[3] = clonedInstance.updateDistributorType.selector;
165
- instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
166
- instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
167
- instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
168
- instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
169
- instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
170
- instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
171
- instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
172
- clonedAccessManager.setCoreTargetFunctionRole(
173
- "Instance",
174
- instanceDistributionServiceSelectors,
175
- DISTRIBUTION_SERVICE_ROLE());
176
- }
177
-
178
- function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
179
- // configure authorization for pool service on instance
180
- address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
181
- clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
182
- bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
183
- instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
184
- instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
185
- clonedAccessManager.setCoreTargetFunctionRole(
186
- "Instance",
187
- instancePoolServiceSelectors,
188
- POOL_SERVICE_ROLE());
189
- }
150
+ // checks
151
+ address componentAddress = msg.sender;
190
152
 
191
- function _grantProductServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
192
- // configure authorization for product service on instance
193
- address productServiceAddress = getRegistry().getServiceAddress(PRODUCT(), getVersion().toMajorPart());
194
- clonedAccessManager.grantRole(PRODUCT_SERVICE_ROLE(), address(productServiceAddress));
195
- bytes4[] memory instanceProductServiceSelectors = new bytes4[](5);
196
- instanceProductServiceSelectors[0] = clonedInstance.createProductSetup.selector;
197
- instanceProductServiceSelectors[1] = clonedInstance.updateProductSetup.selector;
198
- instanceProductServiceSelectors[2] = clonedInstance.createRisk.selector;
199
- instanceProductServiceSelectors[3] = clonedInstance.updateRisk.selector;
200
- instanceProductServiceSelectors[4] = clonedInstance.updateRiskState.selector;
201
- clonedAccessManager.setCoreTargetFunctionRole(
202
- "Instance",
203
- instanceProductServiceSelectors,
204
- PRODUCT_SERVICE_ROLE());
205
- }
153
+ if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
154
+ revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
155
+ }
206
156
 
207
- function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
208
- // configure authorization for application services on instance
209
- address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getVersion().toMajorPart());
210
- clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
211
- bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
212
- instanceApplicationServiceSelectors[0] = clonedInstance.createApplication.selector;
213
- instanceApplicationServiceSelectors[1] = clonedInstance.updateApplication.selector;
214
- instanceApplicationServiceSelectors[2] = clonedInstance.updateApplicationState.selector;
215
- clonedAccessManager.setCoreTargetFunctionRole(
216
- "Instance",
217
- instanceApplicationServiceSelectors,
218
- APPLICATION_SERVICE_ROLE());
219
- }
157
+ IRegistry registry = getRegistry();
158
+ NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
220
159
 
221
- function _grantPolicyServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
222
- // configure authorization for policy services on instance
223
- address policyServiceAddress = getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart());
224
- clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), policyServiceAddress);
225
- bytes4[] memory instancePolicyServiceSelectors = new bytes4[](2);
226
- instancePolicyServiceSelectors[0] = clonedInstance.updatePolicy.selector;
227
- instancePolicyServiceSelectors[1] = clonedInstance.updatePolicyState.selector;
228
- clonedAccessManager.setCoreTargetFunctionRole(
229
- "Instance",
230
- instancePolicyServiceSelectors,
231
- POLICY_SERVICE_ROLE());
232
- }
160
+ IInstance instance = IInstance(
161
+ registry.getObjectInfo(
162
+ instanceNftId).objectAddress);
233
163
 
234
- function _grantClaimServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
235
- // configure authorization for claim/payout services on instance
236
- address claimServiceAddress = getRegistry().getServiceAddress(CLAIM(), getVersion().toMajorPart());
237
- clonedAccessManager.grantRole(CLAIM_SERVICE_ROLE(), claimServiceAddress);
238
-
239
- bytes4[] memory instancePolicyServiceSelectors = new bytes4[](1);
240
- instancePolicyServiceSelectors[0] = clonedInstance.updatePolicyClaims.selector;
241
- clonedAccessManager.setCoreTargetFunctionRole(
242
- "Instance",
243
- instancePolicyServiceSelectors,
244
- CLAIM_SERVICE_ROLE());
245
-
246
- bytes4[] memory instanceClaimServiceSelectors = new bytes4[](4);
247
- instanceClaimServiceSelectors[0] = clonedInstance.createClaim.selector;
248
- instanceClaimServiceSelectors[1] = clonedInstance.updateClaim.selector;
249
- instanceClaimServiceSelectors[2] = clonedInstance.createPayout.selector;
250
- instanceClaimServiceSelectors[3] = clonedInstance.updatePayout.selector;
251
- clonedAccessManager.setCoreTargetFunctionRole(
252
- "Instance",
253
- instanceClaimServiceSelectors,
254
- CLAIM_SERVICE_ROLE());
164
+ // no revert in case already locked
165
+ instance.getInstanceAdmin().setTargetLockedByService(
166
+ componentAddress,
167
+ locked);
255
168
  }
256
169
 
257
- function _grantBundleServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
258
- // configure authorization for bundle service on instance
259
- address bundleServiceAddress = getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart());
260
- clonedAccessManager.grantRole(BUNDLE_SERVICE_ROLE(), address(bundleServiceAddress));
261
- bytes4[] memory instanceBundleServiceSelectors = new bytes4[](3);
262
- instanceBundleServiceSelectors[0] = clonedInstance.createBundle.selector;
263
- instanceBundleServiceSelectors[1] = clonedInstance.updateBundle.selector;
264
- instanceBundleServiceSelectors[2] = clonedInstance.updateBundleState.selector;
265
- clonedAccessManager.setCoreTargetFunctionRole(
266
- "Instance",
267
- instanceBundleServiceSelectors,
268
- BUNDLE_SERVICE_ROLE());
269
-
270
- // configure authorization for bundle service on bundle manager
271
- bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
272
- bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
273
- bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
274
- bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
275
- bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
276
- bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
277
- clonedAccessManager.setCoreTargetFunctionRole(
278
- "BundleManager",
279
- bundleManagerBundleServiceSelectors,
280
- BUNDLE_SERVICE_ROLE());
281
- }
282
170
 
283
- function _grantInstanceServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
284
- // configure authorization for instance service on instance
285
- address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getVersion().toMajorPart());
286
- clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
287
- bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
288
- instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
289
- clonedAccessManager.setCoreTargetFunctionRole(
290
- "Instance",
291
- instanceInstanceServiceSelectors,
292
- INSTANCE_SERVICE_ROLE());
293
-
294
- // configure authorizations for instance service on instance access manager
295
- bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](3);
296
- accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
297
- accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLocked.selector;
298
- accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
299
- clonedAccessManager.setCoreTargetFunctionRole(
300
- "InstanceAccessManager",
301
- accessManagerInstanceServiceSelectors,
302
- INSTANCE_SERVICE_ROLE());
171
+ function getMasterInstanceReader() external view returns (address) {
172
+ return _masterInstanceReader;
303
173
  }
304
174
 
305
- function _grantInstanceOwnerAuthorizations(InstanceAccessManager clonedAccessManager, address instanceOwner) internal {
306
- // configure authorization for instance owner on instance access manager
307
- // instance owner role is granted/revoked ONLY by INSTANCE_ROLE
308
- bytes4[] memory accessManagerInstanceOwnerSelectors = new bytes4[](3);
309
- accessManagerInstanceOwnerSelectors[0] = clonedAccessManager.createRole.selector;
310
- accessManagerInstanceOwnerSelectors[1] = clonedAccessManager.createTarget.selector;
311
- accessManagerInstanceOwnerSelectors[2] = clonedAccessManager.setTargetFunctionRole.selector;
312
- clonedAccessManager.setCoreTargetFunctionRole(
313
- "InstanceAccessManager",
314
- accessManagerInstanceOwnerSelectors,
315
- INSTANCE_OWNER_ROLE());
175
+ // From IService
176
+ function getDomain() public pure override returns(ObjectType) {
177
+ return INSTANCE();
316
178
  }
317
179
 
318
-
319
- function setAndRegisterMasterInstance(address instanceAddress)
180
+ function setAndRegisterMasterInstance(address instanceAddress)
320
181
  external
321
182
  onlyOwner
322
183
  returns(NftId masterInstanceNftId)
323
184
  {
324
185
  if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
325
- if(_masterOzAccessManager != address(0)) { revert ErrorInstanceServiceMasterOzAccessManagerAlreadySet(); }
326
- if(_masterInstanceAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
186
+ if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
187
+ if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
327
188
  if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
328
189
 
329
190
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
330
191
 
331
192
  IInstance instance = IInstance(instanceAddress);
332
- InstanceAccessManager instanceAccessManager = instance.getInstanceAccessManager();
333
- address instanceAccessManagerAddress = address(instanceAccessManager);
193
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
194
+ address instanceAdminAddress = address(instanceAdmin);
334
195
  InstanceReader instanceReader = instance.getInstanceReader();
335
196
  address instanceReaderAddress = address(instanceReader);
336
197
  BundleManager bundleManager = instance.getBundleManager();
337
198
  address bundleManagerAddress = address(bundleManager);
199
+ InstanceStore instanceStore = instance.getInstanceStore();
200
+ address instanceStoreAddress = address(instanceStore);
338
201
 
339
- if(instanceAccessManagerAddress == address(0)) { revert ErrorInstanceServiceInstanceAccessManagerZero(); }
202
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
340
203
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
341
204
  if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
205
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
342
206
 
343
- if(instance.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
344
- if(bundleManager.authority() != instance.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
207
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
208
+ if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
209
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
345
210
  if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
346
211
  if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
347
212
 
348
- _masterOzAccessManager = instance.authority();
349
- _masterInstanceAccessManager = instanceAccessManagerAddress;
213
+ _masterAccessManager = instance.authority();
214
+ _masterInstanceAdmin = instanceAdminAddress;
350
215
  _masterInstance = instanceAddress;
351
216
  _masterInstanceReader = instanceReaderAddress;
352
217
  _masterInstanceBundleManager = bundleManagerAddress;
218
+ _masterInstanceStore = instanceStoreAddress;
353
219
 
354
220
  IInstance masterInstance = IInstance(_masterInstance);
355
221
  IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
356
222
  masterInstanceNftId = info.nftId;
357
223
  }
358
224
 
359
- function setMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
225
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
360
226
  if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
361
227
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
362
228
  if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
@@ -381,7 +247,6 @@ contract InstanceService is
381
247
  }
382
248
 
383
249
 
384
- // all gif targets MUST be childs of instanceNftId
385
250
  function createGifTarget(
386
251
  NftId instanceNftId,
387
252
  address targetAddress,
@@ -390,51 +255,66 @@ contract InstanceService is
390
255
  RoleId[] memory roles
391
256
  )
392
257
  external
393
- onlyRegisteredService
258
+ virtual
259
+ restricted()
394
260
  {
261
+ _createGifTarget(
262
+ instanceNftId,
263
+ targetAddress,
264
+ targetName,
265
+ roles,
266
+ selectors
267
+ );
268
+ }
269
+
270
+
271
+ function createComponentTarget(
272
+ NftId instanceNftId,
273
+ address targetAddress,
274
+ string memory targetName,
275
+ bytes4[][] memory selectors,
276
+ RoleId[] memory roles
277
+ )
278
+ external
279
+ virtual
280
+ restricted()
281
+ {
282
+ _createGifTarget(
283
+ instanceNftId,
284
+ targetAddress,
285
+ targetName,
286
+ roles,
287
+ selectors
288
+ );
289
+ }
290
+
291
+
292
+ /// all gif targets MUST be children of instanceNftId
293
+ function _createGifTarget(
294
+ NftId instanceNftId,
295
+ address targetAddress,
296
+ string memory targetName,
297
+ RoleId[] memory roles,
298
+ bytes4[][] memory selectors
299
+ )
300
+ internal
301
+ virtual
302
+ {
303
+ // TODO instanceAdmin will check target instance match anyway
395
304
  (
396
305
  IInstance instance, // or instanceInfo
397
306
  // or targetInfo
398
307
  ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
399
308
 
400
- InstanceAccessManager accessManager = instance.getInstanceAccessManager();
401
- accessManager.createGifTarget(targetAddress, targetName);
309
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
310
+ instanceAdmin.createGifTarget(targetAddress, targetName);
402
311
  // set proposed target config
403
- // TODO restriction: for gif targets can set only once and only here?
312
+ // TODO restriction: gif targets are set only once and only here?
404
313
  // assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
405
- for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
406
- {
407
- accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
314
+ for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
315
+ instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
408
316
  }
409
317
  }
410
-
411
-
412
- // TODO called by component, but target can be component helper...so needs target name
413
- // TODO check that targetName associated with component...how???
414
- function setComponentLocked(bool locked) onlyComponent external {
415
-
416
- address componentAddress = msg.sender;
417
- IRegistry registry = getRegistry();
418
- NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
419
-
420
- IInstance instance = IInstance(
421
- registry.getObjectInfo(
422
- instanceNftId).objectAddress);
423
-
424
- instance.getInstanceAccessManager().setTargetLocked(
425
- componentAddress,
426
- locked);
427
- }
428
-
429
-
430
- function getMasterInstanceReader() external view returns (address) {
431
- return _masterInstanceReader;
432
- }
433
-
434
- // From IService
435
- function getDomain() public pure override returns(ObjectType) {
436
- return INSTANCE();
437
- }
438
318
 
439
319
  /// @dev top level initializer
440
320
  function _initialize(
@@ -446,18 +326,16 @@ contract InstanceService is
446
326
  virtual override
447
327
  {
448
328
  (
449
- address registryAddress,
450
- address initialOwner
451
- ) = abi.decode(data, (address, address));
452
-
453
- _registryService = IRegistryService(
454
- IRegistry(registryAddress).getServiceAddress(
455
- REGISTRY(),
456
- getVersion().toMajorPart()));
457
-
458
- // TODO while InstanceService is not deployed in InstanceServiceManager constructor
459
- // owner is InstanceServiceManager deployer
460
- initializeService(registryAddress, address(0), owner);
329
+ address registryAddress,,
330
+ //address managerAddress
331
+ address authority
332
+ ) = abi.decode(data, (address, address, address));
333
+
334
+ initializeService(registryAddress, authority, owner);
335
+
336
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
337
+ _stakingService = IStakingService(_getServiceAddress(STAKING()));
338
+
461
339
  registerInterface(type(IInstanceService).interfaceId);
462
340
  }
463
341
 
@@ -7,39 +7,29 @@ import {ProxyManager} from "../shared/ProxyManager.sol";
7
7
  import {InstanceService} from "./InstanceService.sol";
8
8
  import {Registry} from "../registry/Registry.sol";
9
9
  import {RegistryService} from "../registry/RegistryService.sol";
10
- import {REGISTRY} from "../types/ObjectType.sol";
10
+ import {REGISTRY} from "../type/ObjectType.sol";
11
11
 
12
12
  contract InstanceServiceManager is ProxyManager {
13
13
 
14
14
  InstanceService private _instanceService;
15
15
 
16
- /// @dev initializes proxy manager with instance service implementation and deploys instance
16
+ /// @dev initializes proxy manager with instance service implementation
17
17
  constructor(
18
- address registryAddress
19
- )
18
+ address authority,
19
+ address registryAddress,
20
+ bytes32 salt
21
+ )
20
22
  ProxyManager(registryAddress)
21
23
  {
22
- InstanceService instSrv = new InstanceService();
24
+ InstanceService instSrv = new InstanceService{salt: salt}();
23
25
  // bytes memory initCode = type(InstanceService).creationCode;
24
- bytes memory data = abi.encode(registryAddress, address(this));
25
- IVersionable versionable = deploy(
26
+ bytes memory data = abi.encode(registryAddress, address(this), authority);
27
+ IVersionable versionable = deployDetermenistic(
26
28
  address(instSrv),
27
- data);
29
+ data,
30
+ salt);
28
31
 
29
32
  _instanceService = InstanceService(address(versionable));
30
-
31
- // TODO `this` must have a role or own nft to register service
32
- //Registry registry = Registry(registryAddress);
33
- //address registryServiceAddress = registry.getServiceAddress(REGISTRY(), _instanceService.getMajorVersion());
34
- //RegistryService registryService = RegistryService(registryServiceAddress);
35
- //registryService.registerService(_instanceService);
36
- // RegistryService registryService = _instanceService.getRegistryService();
37
-
38
- // TODO no nft to link yet
39
- // link ownership of instance service manager ot nft owner of instance service
40
- //_linkToNftOwnable(
41
- // address(registryAddress),
42
- // address(_instanceService));
43
33
  }
44
34
 
45
35
  //--- view functions ----------------------------------------------------//