@etherisc/gif-next 0.0.2-740f9b7-891 → 0.0.2-76249b0-812

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 (595) hide show
  1. package/README.md +10 -14
  2. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  3. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
  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/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +485 -258
  10. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  11. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +814 -0
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  13. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +268 -1576
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +277 -213
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +455 -2542
  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 +228 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +661 -341
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +424 -410
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +368 -107
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -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 +6 -1
  36. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  37. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  38. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
  39. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +256 -0
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +25 -150
  42. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
  44. package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
  45. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  48. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
  49. package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
  50. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  51. package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
  52. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  53. package/artifacts/contracts/{components/Distribution.sol/Distribution.json → oracle/IOracleComponent.sol/IOracleComponent.json} +209 -299
  54. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  55. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +662 -0
  56. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  57. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
  58. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  59. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
  60. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  61. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
  62. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  63. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
  64. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  65. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -0
  66. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  67. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +260 -285
  68. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  69. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +638 -197
  70. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  71. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1065 -0
  72. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  73. package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
  74. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  75. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1432 -0
  76. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  77. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
  78. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  79. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
  80. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  81. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
  82. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  83. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
  84. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  85. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -0
  86. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  87. package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +203 -235
  88. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  89. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
  90. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  91. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +244 -303
  92. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  93. package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +263 -221
  94. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  95. package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +358 -312
  96. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  97. package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +116 -170
  98. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  99. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
  100. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  101. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
  102. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  103. package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
  104. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  105. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -0
  106. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  107. package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
  108. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  109. package/artifacts/contracts/product/ProductService.sol/ProductService.json +679 -0
  110. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  111. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -0
  112. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  113. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
  114. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  115. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +203 -21
  116. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  117. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +349 -220
  118. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  119. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
  120. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  121. package/artifacts/contracts/registry/Registry.sol/Registry.json +440 -36
  122. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  123. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
  124. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  125. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +480 -265
  126. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -95
  128. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  129. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +834 -89
  130. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
  131. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
  132. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  133. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +349 -82
  134. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
  135. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
  136. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
  137. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1715 -0
  138. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
  139. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
  140. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
  141. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
  142. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
  143. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -0
  144. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  145. package/artifacts/contracts/{components/Pool.sol/Pool.json → shared/Component.sol/Component.json} +346 -364
  146. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  147. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1490 -0
  148. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
  149. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
  150. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
  151. package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +171 -248
  152. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  153. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
  154. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
  155. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
  156. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
  157. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
  158. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  159. package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IComponent.sol/IComponent.json} +213 -230
  160. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
  161. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +867 -0
  162. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
  163. package/artifacts/contracts/{components/Component.sol/Component.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +210 -161
  164. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
  165. package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
  166. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
  167. package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
  168. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  169. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
  170. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
  171. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
  172. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  173. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -30
  174. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
  175. package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
  176. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IService.sol/IService.json +75 -158
  178. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  181. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
  183. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
  184. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
  185. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
  186. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
  187. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
  188. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
  189. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
  190. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +108 -35
  192. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
  193. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
  194. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  195. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -75
  196. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  197. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -60
  198. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
  199. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
  200. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  201. package/artifacts/contracts/shared/Service.sol/Service.json +178 -160
  202. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  203. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
  204. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  205. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  206. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
  209. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
  210. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  211. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +993 -0
  212. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  213. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
  214. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
  215. package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -0
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1324 -0
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -0
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  229. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  230. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
  232. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  237. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  241. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  245. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -0
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  255. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  257. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  261. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  262. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  263. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
  264. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  265. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  266. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  267. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  268. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  269. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  270. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  271. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  272. package/contracts/distribution/Distribution.sol +261 -0
  273. package/contracts/distribution/DistributionService.sol +298 -0
  274. package/contracts/distribution/DistributionServiceManager.sol +42 -0
  275. package/contracts/distribution/IDistributionComponent.sol +66 -0
  276. package/contracts/distribution/IDistributionService.sol +81 -0
  277. package/contracts/instance/BundleManager.sol +15 -14
  278. package/contracts/instance/IInstance.sol +56 -46
  279. package/contracts/instance/IInstanceService.sol +57 -17
  280. package/contracts/instance/Instance.sol +145 -178
  281. package/contracts/instance/InstanceAdmin.sol +331 -0
  282. package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
  283. package/contracts/instance/InstanceReader.sol +159 -62
  284. package/contracts/instance/InstanceService.sol +241 -314
  285. package/contracts/instance/InstanceServiceManager.sol +12 -22
  286. package/contracts/instance/InstanceStore.sol +281 -0
  287. package/contracts/instance/base/BalanceStore.sol +118 -0
  288. package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
  289. package/contracts/instance/base/ObjectCounter.sol +21 -0
  290. package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
  291. package/contracts/instance/module/IAccess.sol +19 -21
  292. package/contracts/instance/module/IBundle.sol +8 -8
  293. package/contracts/instance/module/IComponents.sol +52 -0
  294. package/contracts/instance/module/IDistribution.sol +7 -4
  295. package/contracts/instance/module/IPolicy.sol +56 -17
  296. package/contracts/instance/module/IRisk.sol +1 -1
  297. package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
  298. package/contracts/oracle/IOracle.sol +20 -0
  299. package/contracts/oracle/IOracleComponent.sol +32 -0
  300. package/contracts/oracle/IOracleService.sol +65 -0
  301. package/contracts/oracle/Oracle.sol +145 -0
  302. package/contracts/oracle/OracleService.sol +277 -0
  303. package/contracts/oracle/OracleServiceManager.sol +42 -0
  304. package/contracts/pool/BundleService.sol +296 -0
  305. package/contracts/pool/BundleServiceManager.sol +42 -0
  306. package/contracts/pool/IBundleService.sol +106 -0
  307. package/contracts/pool/IPoolComponent.sol +112 -0
  308. package/contracts/pool/IPoolService.sol +150 -0
  309. package/contracts/pool/Pool.sol +299 -0
  310. package/contracts/pool/PoolService.sol +453 -0
  311. package/contracts/pool/PoolServiceManager.sol +42 -0
  312. package/contracts/product/ApplicationService.sol +254 -0
  313. package/contracts/product/ApplicationServiceManager.sol +38 -0
  314. package/contracts/product/ClaimService.sol +442 -0
  315. package/contracts/product/ClaimServiceManager.sol +38 -0
  316. package/contracts/product/IApplicationService.sol +62 -0
  317. package/contracts/product/IClaimService.sol +99 -0
  318. package/contracts/product/IPolicyService.sol +78 -0
  319. package/contracts/product/IPricingService.sol +39 -0
  320. package/contracts/product/IProductComponent.sol +42 -0
  321. package/contracts/product/IProductService.sol +33 -0
  322. package/contracts/product/PolicyService.sol +475 -0
  323. package/contracts/product/PolicyServiceManager.sol +42 -0
  324. package/contracts/product/PricingService.sol +301 -0
  325. package/contracts/product/PricingServiceManager.sol +42 -0
  326. package/contracts/product/Product.sol +377 -0
  327. package/contracts/product/ProductService.sol +124 -0
  328. package/contracts/product/ProductServiceManager.sol +42 -0
  329. package/contracts/registry/ChainNft.sol +16 -1
  330. package/contracts/registry/IRegistry.sol +47 -21
  331. package/contracts/registry/IRegistryService.sol +42 -38
  332. package/contracts/registry/ITransferInterceptor.sol +1 -0
  333. package/contracts/registry/Registry.sol +221 -97
  334. package/contracts/registry/RegistryAdmin.sol +237 -0
  335. package/contracts/registry/RegistryService.sol +108 -104
  336. package/contracts/registry/RegistryServiceManager.sol +22 -26
  337. package/contracts/registry/ReleaseManager.sol +459 -191
  338. package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
  339. package/contracts/registry/TokenRegistry.sol +263 -60
  340. package/contracts/shared/AccessManagerCustom.sol +736 -0
  341. package/contracts/shared/AccessManagerExtended.sol +470 -0
  342. package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
  343. package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
  344. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
  345. package/contracts/shared/Component.sol +281 -0
  346. package/contracts/shared/ComponentService.sol +618 -0
  347. package/contracts/shared/ComponentServiceManager.sol +35 -0
  348. package/contracts/shared/ComponentVerifyingService.sol +117 -0
  349. package/contracts/shared/ERC165.sol +15 -13
  350. package/contracts/shared/IAccessManagerExtended.sol +74 -0
  351. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
  352. package/contracts/shared/IComponent.sol +70 -0
  353. package/contracts/shared/IComponentService.sol +102 -0
  354. package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
  355. package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
  356. package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
  357. package/contracts/shared/INftOwnable.sol +13 -12
  358. package/contracts/shared/IPolicyHolder.sol +45 -0
  359. package/contracts/shared/IRegisterable.sol +3 -3
  360. package/contracts/shared/IRegistryLinked.sol +11 -0
  361. package/contracts/shared/IService.sol +7 -5
  362. package/contracts/shared/IVersionable.sol +5 -48
  363. package/contracts/shared/InitializableCustom.sol +177 -0
  364. package/contracts/shared/InstanceLinkedComponent.sol +144 -0
  365. package/contracts/shared/KeyValueStore.sol +127 -0
  366. package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
  367. package/contracts/shared/NftIdSetManager.sol +65 -0
  368. package/contracts/shared/NftOwnable.sol +59 -91
  369. package/contracts/shared/PolicyHolder.sol +102 -0
  370. package/contracts/shared/ProxyManager.sol +131 -26
  371. package/contracts/shared/Registerable.sol +19 -30
  372. package/contracts/shared/RegistryLinked.sol +43 -0
  373. package/contracts/shared/Service.sol +38 -21
  374. package/contracts/shared/TokenHandler.sol +37 -6
  375. package/contracts/shared/Versionable.sol +4 -92
  376. package/contracts/staking/IStaking.sol +168 -0
  377. package/contracts/staking/IStakingService.sol +149 -0
  378. package/contracts/staking/StakeManagerLib.sol +179 -0
  379. package/contracts/staking/Staking.sol +551 -0
  380. package/contracts/staking/StakingManager.sol +54 -0
  381. package/contracts/staking/StakingReader.sol +187 -0
  382. package/contracts/staking/StakingService.sol +406 -0
  383. package/contracts/staking/StakingServiceManager.sol +45 -0
  384. package/contracts/staking/StakingStore.sol +572 -0
  385. package/contracts/staking/TargetManagerLib.sol +207 -0
  386. package/contracts/{types → type}/AddressSet.sol +1 -1
  387. package/contracts/type/Amount.sol +128 -0
  388. package/contracts/{types → type}/Blocknumber.sol +21 -3
  389. package/contracts/type/ClaimId.sol +75 -0
  390. package/contracts/{types → type}/DistributorType.sol +2 -2
  391. package/contracts/{types → type}/Fee.sol +33 -23
  392. package/contracts/{types → type}/NftId.sol +21 -15
  393. package/contracts/{types → type}/NftIdSet.sol +2 -2
  394. package/contracts/{types → type}/ObjectType.sol +32 -16
  395. package/contracts/type/PayoutId.sol +82 -0
  396. package/contracts/{types → type}/Referral.sol +5 -1
  397. package/contracts/type/RequestId.sol +75 -0
  398. package/contracts/{types → type}/RiskId.sol +1 -1
  399. package/contracts/type/RoleId.sol +146 -0
  400. package/contracts/type/Seconds.sol +81 -0
  401. package/contracts/{types → type}/StateId.sol +34 -4
  402. package/contracts/{types → type}/Timestamp.sol +23 -14
  403. package/contracts/{types → type}/UFixed.sol +1 -0
  404. package/contracts/{types → type}/Version.sol +2 -1
  405. package/package.json +5 -5
  406. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  407. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  408. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  409. package/artifacts/contracts/components/IComponent.sol/IComponent.json +0 -455
  410. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  411. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  412. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  413. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  414. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  415. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
  416. package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
  417. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
  418. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
  419. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
  420. package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
  421. package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
  422. package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
  423. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
  424. package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
  425. package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
  426. package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
  427. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
  428. package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
  429. package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
  430. package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
  431. package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
  432. package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
  433. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
  434. package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
  435. package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
  436. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
  437. package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
  438. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
  439. package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
  440. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
  441. package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
  442. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
  443. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
  444. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
  445. package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
  446. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
  447. package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
  448. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
  449. package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
  450. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
  451. package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
  452. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
  453. package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
  454. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
  455. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  456. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
  457. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  458. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
  459. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  460. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
  461. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
  462. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
  463. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
  464. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
  465. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
  466. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
  467. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
  468. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  469. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1102
  470. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  471. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
  472. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  473. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
  474. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  475. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
  476. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  477. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  478. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  479. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  480. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  481. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  482. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
  483. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  484. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
  485. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  486. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
  487. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  488. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
  489. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  490. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
  491. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  492. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
  493. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  494. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
  495. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  496. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  497. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  498. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  499. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  500. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -313
  501. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  502. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  503. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  504. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -608
  505. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  506. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  507. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  508. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  509. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  510. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
  511. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  512. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  513. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  514. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  515. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
  516. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  517. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  518. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  519. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  520. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
  521. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  522. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  523. package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
  524. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  525. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  526. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  527. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  528. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
  529. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  530. package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
  531. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  532. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  533. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  534. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  535. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
  536. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  537. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  538. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  539. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  540. package/contracts/components/Component.sol +0 -216
  541. package/contracts/components/Distribution.sol +0 -153
  542. package/contracts/components/IComponent.sol +0 -43
  543. package/contracts/components/IDistributionComponent.sol +0 -47
  544. package/contracts/components/IPoolComponent.sol +0 -51
  545. package/contracts/components/IProductComponent.sol +0 -39
  546. package/contracts/components/Pool.sol +0 -208
  547. package/contracts/components/Product.sol +0 -266
  548. package/contracts/experiment/cloning/Cloner.sol +0 -47
  549. package/contracts/experiment/errors/Require.sol +0 -38
  550. package/contracts/experiment/errors/Revert.sol +0 -44
  551. package/contracts/experiment/inheritance/A.sol +0 -53
  552. package/contracts/experiment/inheritance/B.sol +0 -28
  553. package/contracts/experiment/inheritance/C.sol +0 -34
  554. package/contracts/experiment/inheritance/IA.sol +0 -13
  555. package/contracts/experiment/inheritance/IB.sol +0 -10
  556. package/contracts/experiment/inheritance/IC.sol +0 -12
  557. package/contracts/experiment/statemachine/Dummy.sol +0 -27
  558. package/contracts/experiment/statemachine/ISM.sol +0 -25
  559. package/contracts/experiment/statemachine/SM.sol +0 -57
  560. package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
  561. package/contracts/experiment/types/TypeA.sol +0 -47
  562. package/contracts/experiment/types/TypeB.sol +0 -29
  563. package/contracts/instance/InstanceAccessManager.sol +0 -298
  564. package/contracts/instance/base/ComponentService.sol +0 -134
  565. package/contracts/instance/base/KeyValueStore.sol +0 -172
  566. package/contracts/instance/module/ISetup.sol +0 -46
  567. package/contracts/instance/module/ITreasury.sol +0 -23
  568. package/contracts/instance/service/BundleService.sol +0 -293
  569. package/contracts/instance/service/BundleServiceManager.sol +0 -51
  570. package/contracts/instance/service/DistributionService.sol +0 -106
  571. package/contracts/instance/service/DistributionServiceManager.sol +0 -51
  572. package/contracts/instance/service/IBundleService.sol +0 -44
  573. package/contracts/instance/service/IDistributionService.sol +0 -12
  574. package/contracts/instance/service/IPolicyService.sol +0 -94
  575. package/contracts/instance/service/IPoolService.sol +0 -20
  576. package/contracts/instance/service/IProductService.sol +0 -40
  577. package/contracts/instance/service/PolicyService.sol +0 -538
  578. package/contracts/instance/service/PolicyServiceManager.sol +0 -54
  579. package/contracts/instance/service/PoolService.sol +0 -110
  580. package/contracts/instance/service/PoolServiceManager.sol +0 -51
  581. package/contracts/instance/service/ProductService.sol +0 -233
  582. package/contracts/instance/service/ProductServiceManager.sol +0 -54
  583. package/contracts/registry/RegistryAccessManager.sol +0 -216
  584. package/contracts/shared/ContractDeployerLib.sol +0 -72
  585. package/contracts/test/TestFee.sol +0 -25
  586. package/contracts/test/TestRegisterable.sol +0 -18
  587. package/contracts/test/TestRoleId.sol +0 -14
  588. package/contracts/test/TestService.sol +0 -25
  589. package/contracts/test/TestVersion.sol +0 -44
  590. package/contracts/test/TestVersionable.sol +0 -17
  591. package/contracts/test/Usdc.sol +0 -26
  592. package/contracts/types/ChainId.sol +0 -38
  593. package/contracts/types/NumberId.sol +0 -52
  594. package/contracts/types/RoleId.sol +0 -90
  595. /package/contracts/{types → type}/Key32.sol +0 -0
@@ -2,50 +2,68 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
+ import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
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";
5
29
 
6
30
  import {Instance} from "./Instance.sol";
7
31
  import {IInstance} from "./IInstance.sol";
8
- import {InstanceAccessManager} from "./InstanceAccessManager.sol";
32
+ import {InstanceAdmin} from "./InstanceAdmin.sol";
9
33
  import {IInstanceService} from "./IInstanceService.sol";
10
34
  import {InstanceReader} from "./InstanceReader.sol";
11
- import {BundleManager} from "./BundleManager.sol";
12
- import {IRegistry} from "../registry/IRegistry.sol";
13
- import {IRegistryService} from "../registry/IRegistryService.sol";
14
- import {ChainNft} from "../registry/ChainNft.sol";
15
- import {Service} from "../../contracts/shared/Service.sol";
16
- import {IService} from "../shared/IService.sol";
17
- import {NftId} from "../../contracts/types/NftId.sol";
18
- import {RoleId} from "../types/RoleId.sol";
19
- import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, POLICY_SERVICE_ROLE, BUNDLE_SERVICE_ROLE} from "../types/RoleId.sol";
20
- import {ObjectType, INSTANCE, BUNDLE, POLICY, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
21
- import {IDistributionComponent} from "../components/IDistributionComponent.sol";
22
- import {IPoolComponent} from "../components/IPoolComponent.sol";
23
- import {IProductComponent} from "../components/IProductComponent.sol";
35
+ import {InstanceStore} from "./InstanceStore.sol";
36
+ import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
24
37
 
25
- contract InstanceService is Service, IInstanceService {
38
+ contract InstanceService is
39
+ Service,
40
+ IInstanceService
41
+ {
26
42
 
27
- address internal _masterInstanceAccessManager;
43
+ // TODO update to real hash when instance is stable
44
+ bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
45
+
46
+ IRegistryService internal _registryService;
47
+ IStakingService internal _stakingService;
48
+
49
+ address internal _masterAccessManager;
50
+ address internal _masterInstanceAdmin;
28
51
  address internal _masterInstance;
29
52
  address internal _masterInstanceReader;
30
53
  address internal _masterInstanceBundleManager;
54
+ address internal _masterInstanceStore;
31
55
 
32
- // TODO update to real hash when instance is stable
33
- bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
34
-
35
- modifier onlyInstanceOwner(NftId instanceNftId) {
36
- IRegistry registry = getRegistry();
37
- ChainNft chainNft = registry.getChainNft();
38
-
39
- if( msg.sender != chainNft.ownerOf(instanceNftId.toInt())) {
40
- revert ErrorInstanceServiceNotInstanceOwner(msg.sender, instanceNftId);
56
+ modifier onlyInstanceOwner(NftId instanceNftId) {
57
+ if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
58
+ revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
41
59
  }
42
60
  _;
43
61
  }
44
62
 
45
- modifier onlyRegisteredService() {
46
- address caller = msg.sender;
47
- if (! getRegistry().isRegisteredService(caller)) {
48
- revert ErrorInstanceServiceRequestUnauhorized(caller);
63
+ // TODO check component - service - instance version match
64
+ modifier onlyComponent() {
65
+ if (! getRegistry().isRegisteredComponent(msg.sender)) {
66
+ revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
49
67
  }
50
68
  _;
51
69
  }
@@ -53,271 +71,249 @@ contract InstanceService is Service, IInstanceService {
53
71
  function createInstanceClone()
54
72
  external
55
73
  returns (
56
- InstanceAccessManager clonedAccessManager,
57
74
  Instance clonedInstance,
58
- NftId clonedInstanceNftId,
59
- InstanceReader clonedInstanceReader,
60
- BundleManager clonedBundleManager
75
+ NftId clonedInstanceNftId
61
76
  )
62
77
  {
63
78
  address instanceOwner = msg.sender;
64
- IRegistry registry = getRegistry();
65
- address registryAddress = address(registry);
66
- NftId registryNftId = registry.getNftId(registryAddress);
67
- address registryServiceAddress = registry.getServiceAddress(REGISTRY(), getMajorVersion());
68
- IRegistryService registryService = IRegistryService(registryServiceAddress);
69
-
70
- // initially set the authority of the access managar to this (being the instance service).
71
- // This will allow the instance service to bootstrap the authorizations of the instance
72
- // and then transfer the ownership of the access manager to the instance owner once everything is setup
73
- clonedAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
79
+ AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
80
+ Clones.clone(_masterAccessManager));
81
+
82
+ // initially grants ADMIN_ROLE to this (being the instance service).
83
+ // This will allow the instance service to bootstrap the authorizations of the instance.
84
+ // Instance service will renounce ADMIN_ROLE when bootstraping is finished
74
85
  clonedAccessManager.initialize(address(this));
75
86
 
76
87
  clonedInstance = Instance(Clones.clone(_masterInstance));
77
- clonedInstance.initialize(address(clonedAccessManager), registryAddress, registryNftId, msg.sender);
88
+ clonedInstance.initialize(
89
+ address(clonedAccessManager),
90
+ address(getRegistry()),
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);
78
96
 
79
- clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
80
- clonedInstanceReader.initialize(registryAddress, address(clonedInstance));
97
+ InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
98
+ clonedInstanceReader.initialize(address(clonedInstance));
81
99
  clonedInstance.setInstanceReader(clonedInstanceReader);
82
100
 
83
- clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
84
- clonedBundleManager.initialize(address(clonedAccessManager), registryAddress, address(clonedInstance));
101
+ BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
102
+ clonedBundleManager.initialize(address(clonedInstance));
85
103
  clonedInstance.setBundleManager(clonedBundleManager);
86
104
 
87
- // TODO amend setters with instance specific , policy manager ...
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);
88
109
 
89
- _grantInitialAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
90
-
91
- // to complete setup switch instance ownership to the instance owner
92
- // TODO: use a role less powerful than admin, maybe INSTANCE_ADMIN (does not exist yet)
93
- clonedAccessManager.grantRole(ADMIN_ROLE(), instanceOwner);
94
- clonedAccessManager.revokeRole(ADMIN_ROLE(), address(this));
110
+ // TODO amend setters with instance specific , policy manager ...
95
111
 
96
- IRegistry.ObjectInfo memory info = registryService.registerInstance(clonedInstance, 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());
122
+
123
+ clonedAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
124
+
125
+ // register new instance with registry
126
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
97
127
  clonedInstanceNftId = info.nftId;
98
- // clonedInstance.linkToRegisteredNftId();
99
-
100
- emit LogInstanceCloned(address(clonedAccessManager), address(clonedInstance), address(clonedInstanceReader), clonedInstanceNftId);
101
- }
102
128
 
103
- function _grantInitialAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
104
- _createGifRoles(clonedAccessManager);
105
- _createGifTargets(clonedAccessManager, clonedInstance, clonedBundleManager);
106
- _grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstance);
107
- _grantPoolServiceAuthorizations(clonedAccessManager, clonedInstance);
108
- _grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
109
- _grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
110
- _grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
111
- _grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
129
+ // create corresponding staking target
130
+ _stakingService.createInstanceTarget(
131
+ clonedInstanceNftId,
132
+ TargetManagerLib.getDefaultLockingPeriod(),
133
+ TargetManagerLib.getDefaultRewardRate());
134
+
135
+ emit LogInstanceCloned(
136
+ address(clonedAccessManager),
137
+ address(clonedInstanceAdmin),
138
+ address(clonedInstance),
139
+ address(clonedInstanceStore),
140
+ address(clonedBundleManager),
141
+ address(clonedInstanceReader),
142
+ clonedInstanceNftId);
112
143
  }
113
144
 
114
- function _createGifRoles(InstanceAccessManager clonedAccessManager) internal {
115
- clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole");
116
- clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole");
117
- clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole");
118
-
119
- clonedAccessManager.createGifRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
120
- clonedAccessManager.createGifRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
121
- clonedAccessManager.createGifRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
122
- clonedAccessManager.createGifRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
123
- clonedAccessManager.createGifRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
124
- clonedAccessManager.createGifRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
125
- }
145
+ function setComponentLocked(bool locked)
146
+ external
147
+ virtual
148
+ onlyComponent()
149
+ {
150
+ // checks
151
+ address componentAddress = msg.sender;
126
152
 
127
- function _createGifTargets(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
128
- clonedAccessManager.createGifTarget(address(clonedAccessManager), "InstanceAccessManager");
129
- clonedAccessManager.createGifTarget(address(clonedInstance), "Instance");
130
- clonedAccessManager.createGifTarget(address(clonedBundleManager), "BundleManager");
131
- }
153
+ if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
154
+ revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
155
+ }
132
156
 
133
- function _grantDistributionServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
134
- // configure authorization for distribution service on instance
135
157
  IRegistry registry = getRegistry();
136
- address distributionServiceAddress = registry.getServiceAddress(DISTRIBUTION(), getMajorVersion());
137
- clonedAccessManager.grantRole(DISTRIBUTION_SERVICE_ROLE(), distributionServiceAddress);
138
- bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](2);
139
- instanceDistributionServiceSelectors[0] = clonedInstance.createDistributionSetup.selector;
140
- instanceDistributionServiceSelectors[1] = clonedInstance.updateDistributionSetup.selector;
141
- clonedAccessManager.setTargetFunctionRole(
142
- "Instance",
143
- instanceDistributionServiceSelectors,
144
- DISTRIBUTION_SERVICE_ROLE());
145
- }
158
+ NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
146
159
 
147
- function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
148
- // configure authorization for pool service on instance
149
- address poolServiceAddress = _registry.getServiceAddress(POOL(), getMajorVersion());
150
- clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
151
- bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
152
- instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
153
- instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
154
- clonedAccessManager.setTargetFunctionRole(
155
- "Instance",
156
- instancePoolServiceSelectors,
157
- POOL_SERVICE_ROLE());
158
- }
160
+ IInstance instance = IInstance(
161
+ registry.getObjectInfo(
162
+ instanceNftId).objectAddress);
159
163
 
160
- function _grantProductServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
161
- // configure authorization for product service on instance
162
- address productServiceAddress = _registry.getServiceAddress(PRODUCT(), getMajorVersion());
163
- clonedAccessManager.grantRole(PRODUCT_SERVICE_ROLE(), address(productServiceAddress));
164
- bytes4[] memory instanceProductServiceSelectors = new bytes4[](5);
165
- instanceProductServiceSelectors[0] = clonedInstance.createProductSetup.selector;
166
- instanceProductServiceSelectors[1] = clonedInstance.updateProductSetup.selector;
167
- instanceProductServiceSelectors[2] = clonedInstance.createRisk.selector;
168
- instanceProductServiceSelectors[3] = clonedInstance.updateRisk.selector;
169
- instanceProductServiceSelectors[4] = clonedInstance.updateRiskState.selector;
170
- clonedAccessManager.setTargetFunctionRole(
171
- "Instance",
172
- instanceProductServiceSelectors,
173
- PRODUCT_SERVICE_ROLE());
164
+ // no revert in case already locked
165
+ instance.getInstanceAdmin().setTargetLockedByService(
166
+ componentAddress,
167
+ locked);
174
168
  }
175
169
 
176
- function _grantPolicyServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
177
- // configure authorization for policy service on instance
178
- address policyServiceAddress = _registry.getServiceAddress(POLICY(), getMajorVersion());
179
- clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), address(policyServiceAddress));
180
- bytes4[] memory instancePolicyServiceSelectors = new bytes4[](3);
181
- instancePolicyServiceSelectors[0] = clonedInstance.createPolicy.selector;
182
- instancePolicyServiceSelectors[1] = clonedInstance.updatePolicy.selector;
183
- instancePolicyServiceSelectors[2] = clonedInstance.updatePolicyState.selector;
184
- clonedAccessManager.setTargetFunctionRole(
185
- "Instance",
186
- instancePolicyServiceSelectors,
187
- POLICY_SERVICE_ROLE());
188
- }
189
170
 
190
- function _grantBundleServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
191
- // configure authorization for bundle service on instance
192
- address bundleServiceAddress = _registry.getServiceAddress(BUNDLE(), getMajorVersion());
193
- clonedAccessManager.grantRole(BUNDLE_SERVICE_ROLE(), address(bundleServiceAddress));
194
- bytes4[] memory instanceBundleServiceSelectors = new bytes4[](2);
195
- instanceBundleServiceSelectors[0] = clonedInstance.createBundle.selector;
196
- instanceBundleServiceSelectors[1] = clonedInstance.updateBundle.selector;
197
- clonedAccessManager.setTargetFunctionRole(
198
- "Instance",
199
- instanceBundleServiceSelectors,
200
- BUNDLE_SERVICE_ROLE());
201
-
202
- // configure authorization for bundle service on bundle manager
203
- bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
204
- bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
205
- bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
206
- bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
207
- bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
208
- bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
209
- clonedAccessManager.setTargetFunctionRole(
210
- "BundleManager",
211
- bundleManagerBundleServiceSelectors,
212
- BUNDLE_SERVICE_ROLE());
171
+ function getMasterInstanceReader() external view returns (address) {
172
+ return _masterInstanceReader;
213
173
  }
214
174
 
215
- function _grantInstanceServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
216
- // configure authorization for instance service on instance
217
- address instanceServiceAddress = _registry.getServiceAddress(INSTANCE(), getMajorVersion());
218
- clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
219
- bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
220
- instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
221
- clonedAccessManager.setTargetFunctionRole(
222
- "Instance",
223
- instanceInstanceServiceSelectors,
224
- INSTANCE_SERVICE_ROLE());
225
-
226
- bytes4[] memory instanceAccessManagerInstanceServiceSelectors = new bytes4[](1);
227
- instanceAccessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
228
- clonedAccessManager.setTargetFunctionRole(
229
- "InstanceAccessManager",
230
- instanceAccessManagerInstanceServiceSelectors,
231
- INSTANCE_SERVICE_ROLE());
175
+ // From IService
176
+ function getDomain() public pure override returns(ObjectType) {
177
+ return INSTANCE();
232
178
  }
233
179
 
234
- function setAndRegisterMasterInstance(address instanceAddress)
180
+ function setAndRegisterMasterInstance(address instanceAddress)
235
181
  external
236
182
  onlyOwner
237
183
  returns(NftId masterInstanceNftId)
238
184
  {
239
- require(_masterInstance == address(0), "ERROR:CRD-002:INSTANCE_MASTER_ALREADY_SET");
240
- require(_masterInstanceAccessManager == address(0), "ERROR:CRD-001:ACCESS_MANAGER_MASTER_ALREADY_SET");
241
- require(_masterInstanceBundleManager == address(0), "ERROR:CRD-004:BUNDLE_MANAGER_MASTER_ALREADY_SET");
185
+ if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
186
+ if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
187
+ if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
188
+ if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
242
189
 
243
- require (instanceAddress != address(0), "ERROR:CRD-006:INSTANCE_ZERO");
190
+ if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
244
191
 
245
192
  IInstance instance = IInstance(instanceAddress);
246
- InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
247
- address accessManagerAddress = address(accessManager);
193
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
194
+ address instanceAdminAddress = address(instanceAdmin);
248
195
  InstanceReader instanceReader = instance.getInstanceReader();
249
196
  address instanceReaderAddress = address(instanceReader);
250
197
  BundleManager bundleManager = instance.getBundleManager();
251
198
  address bundleManagerAddress = address(bundleManager);
199
+ InstanceStore instanceStore = instance.getInstanceStore();
200
+ address instanceStoreAddress = address(instanceStore);
252
201
 
253
- require (accessManagerAddress != address(0), "ERROR:CRD-005:ACCESS_MANAGER_ZERO");
254
- require (instanceReaderAddress != address(0), "ERROR:CRD-007:INSTANCE_READER_ZERO");
255
- require (bundleManagerAddress != address(0), "ERROR:CRD-008:BUNDLE_MANAGER_ZERO");
256
-
202
+ if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
203
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
204
+ if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
205
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
257
206
 
258
- require(instance.authority() == accessManagerAddress, "ERROR:CRD-009:INSTANCE_AUTHORITY_MISMATCH");
259
- require(instanceReader.getInstance() == instance, "ERROR:CRD-010:INSTANCE_READER_INSTANCE_MISMATCH");
260
- require(bundleManager.getInstance() == instance, "ERROR:CRD-011:BUNDLE_MANAGER_INSTANCE_MISMATCH");
261
-
262
- _masterInstanceAccessManager = accessManagerAddress;
207
+ if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
208
+ if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
209
+ if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
210
+ if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
211
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
212
+
213
+ _masterAccessManager = instance.authority();
214
+ _masterInstanceAdmin = instanceAdminAddress;
263
215
  _masterInstance = instanceAddress;
264
216
  _masterInstanceReader = instanceReaderAddress;
265
217
  _masterInstanceBundleManager = bundleManagerAddress;
218
+ _masterInstanceStore = instanceStoreAddress;
266
219
 
267
- IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getMajorVersion()));
268
220
  IInstance masterInstance = IInstance(_masterInstance);
269
- IRegistry.ObjectInfo memory info = registryService.registerInstance(masterInstance, getOwner());
221
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
270
222
  masterInstanceNftId = info.nftId;
271
-
272
- // masterInstance.linkToRegisteredNftId();
273
223
  }
274
224
 
275
- function setMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
276
- require(_masterInstanceReader != address(0), "ERROR:CRD-003:INSTANCE_READER_MASTER_NOT_SET");
277
- require (instanceReaderAddress != address(0), "ERROR:CRD-012:INSTANCE_READER_ZERO");
278
- require(instanceReaderAddress != _masterInstanceReader, "ERROR:CRD-014:INSTANCE_READER_MASTER_SAME_AS_NEW");
225
+ function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
226
+ if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
227
+ if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
228
+ if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
279
229
 
280
230
  InstanceReader instanceReader = InstanceReader(instanceReaderAddress);
281
- require(instanceReader.getInstance() == IInstance(_masterInstance), "ERROR:CRD-015:INSTANCE_READER_INSTANCE_MISMATCH");
231
+ if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
282
232
 
283
233
  _masterInstanceReader = instanceReaderAddress;
284
234
  }
285
235
 
286
- // TODO access restriction
287
- function upgradeInstanceReader(NftId instanceNftId) external {
236
+ function upgradeInstanceReader(NftId instanceNftId)
237
+ external
238
+ onlyInstanceOwner(instanceNftId)
239
+ {
288
240
  IRegistry registry = getRegistry();
289
241
  IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
290
242
  Instance instance = Instance(instanceInfo.objectAddress);
291
- address owner = instance.getOwner();
292
-
293
- if (msg.sender != owner) {
294
- revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
295
- }
296
243
 
297
244
  InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
298
- upgradedInstanceReaderClone.initialize(address(registry), address(instance));
245
+ upgradedInstanceReaderClone.initialize(address(instance));
299
246
  instance.setInstanceReader(upgradedInstanceReaderClone);
300
247
  }
301
248
 
302
- function getMasterInstanceReader() external view returns (address) {
303
- return _masterInstanceReader;
304
- }
305
249
 
306
- function getMasterInstance() external view returns (address) {
307
- return _masterInstance;
250
+ function createGifTarget(
251
+ NftId instanceNftId,
252
+ address targetAddress,
253
+ string memory targetName,
254
+ bytes4[][] memory selectors,
255
+ RoleId[] memory roles
256
+ )
257
+ external
258
+ virtual
259
+ restricted()
260
+ {
261
+ _createGifTarget(
262
+ instanceNftId,
263
+ targetAddress,
264
+ targetName,
265
+ roles,
266
+ selectors
267
+ );
308
268
  }
309
269
 
310
- function getMasterInstanceAccessManager() external view returns (address) {
311
- return _masterInstanceAccessManager;
312
- }
313
270
 
314
- function getMasterInstanceBundleManager() external view returns (address) {
315
- return _masterInstanceBundleManager;
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
+ );
316
289
  }
317
290
 
318
- // From IService
319
- function getDomain() public pure override(Service, IService) returns(ObjectType) {
320
- return INSTANCE();
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
304
+ (
305
+ IInstance instance, // or instanceInfo
306
+ // or targetInfo
307
+ ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
308
+
309
+ InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
310
+ instanceAdmin.createGifTarget(targetAddress, targetName);
311
+ // set proposed target config
312
+ // TODO restriction: gif targets are set only once and only here?
313
+ // assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
314
+ for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
315
+ instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
316
+ }
321
317
  }
322
318
 
323
319
  /// @dev top level initializer
@@ -329,107 +325,38 @@ contract InstanceService is Service, IInstanceService {
329
325
  initializer
330
326
  virtual override
331
327
  {
332
- address initialOwner;
333
- address registryAddress;
334
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
335
- // TODO while InstanceService is not deployed in InstanceServiceManager constructor
336
- // owner is InstanceServiceManager deployer
337
- _initializeService(registryAddress, owner);
338
-
339
- _registerInterface(type(IInstanceService).interfaceId);
340
- }
328
+ (
329
+ address registryAddress,,
330
+ //address managerAddress
331
+ address authority
332
+ ) = abi.decode(data, (address, address, address));
341
333
 
342
- function hasRole(address account, RoleId role, address instanceAddress) public view returns (bool) {
343
- Instance instance = Instance(instanceAddress);
344
- InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
345
- return accessManager.hasRole(role, account);
346
- }
347
-
348
- function createGifTarget(NftId instanceNftId, address targetAddress, string memory targetName) external onlyRegisteredService {
349
- IRegistry registry = getRegistry();
350
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
351
- Instance instance = Instance(instanceInfo.objectAddress);
352
- InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
353
- accessManager.createGifTarget(targetAddress, targetName);
354
- }
355
-
356
- function grantDistributionDefaultPermissions(NftId instanceNftId, address distributionAddress, string memory distributionName) external onlyRegisteredService {
357
- IRegistry registry = getRegistry();
358
- IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionAddress);
359
-
360
- if (distributionInfo.objectType != DISTRIBUTION()) {
361
- revert ErrorInstanceServiceInvalidComponentType(distributionAddress, DISTRIBUTION(), distributionInfo.objectType);
362
- }
363
-
364
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
365
- Instance instance = Instance(instanceInfo.objectAddress);
366
- InstanceAccessManager instanceAccessManager = InstanceAccessManager(instance.authority());
334
+ initializeService(registryAddress, authority, owner);
367
335
 
368
- bytes4[] memory fctSelectors = new bytes4[](1);
369
- fctSelectors[0] = IDistributionComponent.setFees.selector;
370
- instanceAccessManager.setTargetFunctionRole(distributionName, fctSelectors, DISTRIBUTION_OWNER_ROLE());
336
+ _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
337
+ _stakingService = IStakingService(_getServiceAddress(STAKING()));
371
338
 
372
- bytes4[] memory fctSelectors2 = new bytes4[](2);
373
- fctSelectors2[0] = IDistributionComponent.processSale.selector;
374
- fctSelectors2[1] = IDistributionComponent.processRenewal.selector;
375
- instanceAccessManager.setTargetFunctionRole(distributionName, fctSelectors2, PRODUCT_SERVICE_ROLE());
339
+ registerInterface(type(IInstanceService).interfaceId);
376
340
  }
377
341
 
378
- function grantPoolDefaultPermissions(NftId instanceNftId, address poolAddress, string memory poolName) external onlyRegisteredService {
379
- IRegistry registry = getRegistry();
380
- IRegistry.ObjectInfo memory poolInfo = registry.getObjectInfo(poolAddress);
381
-
382
- if (poolInfo.objectType != POOL()) {
383
- revert ErrorInstanceServiceInvalidComponentType(poolAddress, POOL(), poolInfo.objectType);
384
- }
385
-
386
- IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
387
- Instance instance = Instance(instanceInfo.objectAddress);
388
- InstanceAccessManager instanceAccessManager = InstanceAccessManager(instance.authority());
389
-
390
- bytes4[] memory fctSelectors = new bytes4[](1);
391
- fctSelectors[0] = IPoolComponent.setFees.selector;
392
- instanceAccessManager.setTargetFunctionRole(poolName, fctSelectors, POOL_OWNER_ROLE());
393
342
 
394
- bytes4[] memory fctSelectors2 = new bytes4[](1);
395
- fctSelectors2[0] = IPoolComponent.underwrite.selector;
396
- instanceAccessManager.setTargetFunctionRole(poolName, fctSelectors2, POLICY_SERVICE_ROLE());
397
- }
398
-
399
- function grantProductDefaultPermissions(NftId instanceNftId, address productAddress, string memory productName) external onlyRegisteredService {
343
+ function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
344
+ internal
345
+ view
346
+ returns (IInstance instance, NftId componentNftId)
347
+ {
400
348
  IRegistry registry = getRegistry();
401
- IRegistry.ObjectInfo memory productInfo = registry.getObjectInfo(productAddress);
402
-
403
- if (productInfo.objectType != PRODUCT()) {
404
- revert ErrorInstanceServiceInvalidComponentType(productAddress, PRODUCT(), productInfo.objectType);
405
- }
406
-
407
349
  IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
408
- Instance instance = Instance(instanceInfo.objectAddress);
409
- InstanceAccessManager instanceAccessManager = InstanceAccessManager(instance.authority());
410
-
411
- bytes4[] memory fctSelectors = new bytes4[](1);
412
- fctSelectors[0] = IProductComponent.setFees.selector;
413
- instanceAccessManager.setTargetFunctionRole(productName, fctSelectors, PRODUCT_OWNER_ROLE());
414
- }
350
+ if(instanceInfo.objectType != INSTANCE()) {
351
+ revert ErrorInstanceServiceNotInstance(instanceNftId);
352
+ }
415
353
 
416
- function setTargetLocked(string memory targetName, bool locked) external {
417
- address componentAddress = msg.sender;
418
- IRegistry registry = getRegistry();
419
354
  IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
420
- if (componentInfo.nftId.eqz()) {
421
- revert ErrorInstanceServiceComponentNotRegistered(componentAddress);
355
+ if(componentInfo.parentNftId != instanceNftId) {
356
+ revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
422
357
  }
423
358
 
424
- // TODO validate component type
425
-
426
-
427
- address instanceAddress = registry.getObjectInfo(componentInfo.parentNftId).objectAddress;
428
- IInstance instance = IInstance(instanceAddress);
429
-
430
- InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
431
- accessManager.setTargetClosed(targetName, locked);
359
+ instance = Instance(instanceInfo.objectAddress);
360
+ componentNftId = componentInfo.nftId;
432
361
  }
433
-
434
- }
435
-
362
+ }