@etherisc/gif-next 0.0.2-e94f4c7-084 → 0.0.2-e964d24-516

Sign up to get free protection for your applications and to get access to all the features.
Files changed (406) hide show
  1. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
  2. package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +45 -14
  3. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
  4. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1556 -0
  5. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
  6. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +780 -0
  7. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
  8. package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +45 -14
  9. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
  10. package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +24 -274
  11. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  12. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +6 -6
  13. package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +1 -1
  14. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  15. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +252 -2210
  16. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  17. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +21 -38
  18. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  19. package/artifacts/contracts/instance/Instance.sol/Instance.json +352 -2691
  20. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +1 -1
  21. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +71 -53
  22. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
  23. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +124 -0
  24. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  25. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +233 -67
  26. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  27. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -226
  28. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  29. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +39 -124
  30. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
  31. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2788 -0
  32. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  33. package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +2 -2
  34. package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  35. package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  36. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  37. package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +6 -6
  38. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  39. package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +4 -4
  40. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  41. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  42. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  43. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  44. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  45. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  46. package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +1 -1
  47. package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +1 -1
  48. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
  49. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1288 -0
  50. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
  51. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +696 -0
  52. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
  53. package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +57 -31
  54. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
  55. package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +56 -25
  56. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
  57. package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +153 -36
  58. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
  59. package/artifacts/contracts/{components → pool}/Pool.sol/Pool.json +56 -25
  60. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
  61. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1622 -0
  62. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
  63. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +708 -0
  64. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
  65. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +918 -0
  66. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
  67. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +648 -0
  68. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
  69. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1376 -0
  70. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
  71. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +748 -0
  72. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
  73. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +493 -0
  74. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
  75. package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +230 -89
  76. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
  77. package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +36 -354
  78. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
  79. package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +37 -154
  80. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
  81. package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +53 -22
  82. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
  83. package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +6 -14
  84. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
  85. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1281 -0
  86. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
  87. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +740 -0
  88. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
  89. package/artifacts/contracts/product/PricingService.sol/PricingService.json +1004 -0
  90. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
  91. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +688 -0
  92. package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
  93. package/artifacts/contracts/{components → product}/Product.sol/Product.json +53 -22
  94. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
  95. package/artifacts/contracts/product/ProductService.sol/ProductService.json +864 -0
  96. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
  97. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +640 -0
  98. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  99. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  100. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  101. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +5 -13
  102. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  103. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  104. package/artifacts/contracts/registry/Registry.sol/Registry.json +6 -6
  105. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +1 -1
  106. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +4 -4
  107. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  108. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +21 -29
  109. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  110. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -40
  111. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  112. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +9 -9
  113. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  114. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +14 -27
  115. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +4 -0
  116. package/artifacts/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +3 -3
  117. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
  118. package/artifacts/contracts/{components → shared}/Component.sol/Component.json +38 -7
  119. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
  120. package/artifacts/contracts/{instance/base → shared}/ComponentService.sol/ComponentService.json +38 -14
  121. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  122. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
  123. package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +38 -7
  124. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  125. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +0 -13
  126. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  127. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +69 -9
  128. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  129. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +0 -13
  130. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  131. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
  132. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  133. package/artifacts/contracts/shared/IService.sol/IService.json +5 -13
  134. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  135. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  136. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +8 -21
  137. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  138. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +80 -26
  139. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  140. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +20 -33
  141. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  142. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -21
  143. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  144. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  145. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  146. package/artifacts/contracts/shared/Service.sol/Service.json +5 -13
  147. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  148. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +24 -6
  149. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  150. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  151. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  152. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
  153. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +523 -0
  154. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
  155. package/artifacts/contracts/staking/StakeingServiceManager.sol/StakingServiceManager.json +628 -0
  156. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
  157. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +767 -0
  158. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
  159. package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
  160. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
  161. package/artifacts/contracts/type/Amount.sol/AmountLib.json +281 -0
  162. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
  163. package/artifacts/contracts/{types → type}/Blocknumber.sol/BlocknumberLib.json +3 -3
  164. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
  165. package/artifacts/contracts/{types → type}/ClaimId.sol/ClaimIdLib.json +5 -5
  166. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
  167. package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
  168. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
  169. package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
  170. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
  171. package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
  172. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
  173. package/artifacts/contracts/{types → type}/NftId.sol/NftIdLib.json +5 -5
  174. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
  175. package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
  176. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
  177. package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
  178. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
  179. package/artifacts/contracts/{types → type}/PayoutId.sol/PayoutIdLib.json +5 -5
  180. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
  181. package/artifacts/contracts/{types → type}/Referral.sol/ReferralLib.json +5 -5
  182. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
  183. package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
  184. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
  185. package/artifacts/contracts/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
  186. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
  187. package/artifacts/contracts/{types → type}/Seconds.sol/SecondsLib.json +3 -3
  188. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
  189. package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
  190. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
  191. package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +5 -5
  192. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
  193. package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
  194. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
  195. package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
  196. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
  197. package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
  198. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
  199. package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
  200. package/contracts/{components → distribution}/Distribution.sol +15 -14
  201. package/contracts/{instance/service → distribution}/DistributionService.sol +80 -163
  202. package/contracts/{instance/service → distribution}/DistributionServiceManager.sol +5 -5
  203. package/contracts/{components → distribution}/IDistributionComponent.sol +7 -7
  204. package/contracts/{instance/service → distribution}/IDistributionService.sol +18 -30
  205. package/contracts/instance/BundleManager.sol +4 -4
  206. package/contracts/instance/IInstance.sol +37 -62
  207. package/contracts/instance/IInstanceService.sol +18 -13
  208. package/contracts/instance/Instance.sol +94 -175
  209. package/contracts/instance/InstanceAccessManager.sol +38 -24
  210. package/contracts/instance/InstanceAuthorizationsLib.sol +308 -0
  211. package/contracts/instance/InstanceReader.sol +68 -17
  212. package/contracts/instance/InstanceService.sol +96 -266
  213. package/contracts/instance/InstanceServiceManager.sol +1 -1
  214. package/contracts/instance/InstanceStore.sol +211 -0
  215. package/contracts/instance/ObjectManager.sol +4 -4
  216. package/contracts/instance/base/IKeyValueStore.sol +5 -5
  217. package/contracts/instance/base/ILifecycle.sol +3 -3
  218. package/contracts/instance/base/KeyValueStore.sol +6 -37
  219. package/contracts/instance/base/Lifecycle.sol +8 -5
  220. package/contracts/instance/module/IAccess.sol +2 -2
  221. package/contracts/instance/module/IBundle.sol +5 -5
  222. package/contracts/instance/module/IComponents.sol +8 -8
  223. package/contracts/instance/module/IDistribution.sol +7 -6
  224. package/contracts/instance/module/IPolicy.sol +12 -12
  225. package/contracts/instance/module/IRisk.sol +1 -1
  226. package/contracts/instance/module/ISetup.sol +4 -4
  227. package/contracts/instance/module/ITreasury.sol +2 -2
  228. package/contracts/{instance/service → pool}/BundleService.sol +84 -145
  229. package/contracts/{instance/service → pool}/BundleServiceManager.sol +5 -5
  230. package/contracts/{instance/service → pool}/IBundleService.sol +41 -25
  231. package/contracts/{components → pool}/IPoolComponent.sol +13 -12
  232. package/contracts/{instance/service → pool}/IPoolService.sol +26 -14
  233. package/contracts/{components → pool}/Pool.sol +18 -18
  234. package/contracts/{instance/service → pool}/PoolService.sol +125 -58
  235. package/contracts/{instance/service → pool}/PoolServiceManager.sol +5 -5
  236. package/contracts/product/ApplicationService.sol +186 -0
  237. package/contracts/{instance/service → product}/ApplicationServiceManager.sol +2 -2
  238. package/contracts/product/ClaimService.sol +437 -0
  239. package/contracts/{instance/service → product}/ClaimServiceManager.sol +2 -2
  240. package/contracts/{instance/service → product}/IApplicationService.sol +12 -28
  241. package/contracts/product/IClaimService.sol +90 -0
  242. package/contracts/product/IPolicyService.sol +80 -0
  243. package/contracts/product/IPricingService.sol +37 -0
  244. package/contracts/{components → product}/IProductComponent.sol +11 -10
  245. package/contracts/{instance/service → product}/IProductService.sol +10 -10
  246. package/contracts/product/PolicyService.sol +376 -0
  247. package/contracts/{instance/service → product}/PolicyServiceManager.sol +5 -5
  248. package/contracts/product/PricingService.sol +275 -0
  249. package/contracts/product/PricingServiceManager.sol +51 -0
  250. package/contracts/{components → product}/Product.sol +37 -33
  251. package/contracts/{instance/service → product}/ProductService.sol +46 -46
  252. package/contracts/{instance/service → product}/ProductServiceManager.sol +5 -5
  253. package/contracts/registry/IRegistry.sol +4 -4
  254. package/contracts/registry/IRegistryService.sol +4 -6
  255. package/contracts/registry/Registry.sol +3 -3
  256. package/contracts/registry/RegistryAccessManager.sol +1 -1
  257. package/contracts/registry/RegistryService.sol +23 -20
  258. package/contracts/registry/RegistryServiceManager.sol +0 -2
  259. package/contracts/registry/ReleaseManager.sol +5 -5
  260. package/contracts/registry/TokenRegistry.sol +2 -2
  261. package/contracts/{components → shared}/Component.sol +26 -8
  262. package/contracts/{instance/base → shared}/ComponentService.sol +63 -34
  263. package/contracts/{components → shared}/IComponent.sol +19 -5
  264. package/contracts/shared/INftOwnable.sol +1 -1
  265. package/contracts/shared/IPolicyHolder.sol +24 -10
  266. package/contracts/shared/IRegistryLinked.sol +0 -1
  267. package/contracts/shared/IService.sol +3 -1
  268. package/contracts/shared/IVersionable.sol +1 -1
  269. package/contracts/shared/NftOwnable.sol +1 -3
  270. package/contracts/shared/PolicyHolder.sol +31 -18
  271. package/contracts/shared/ProxyManager.sol +3 -3
  272. package/contracts/shared/Registerable.sol +12 -11
  273. package/contracts/shared/RegistryLinked.sol +0 -5
  274. package/contracts/shared/Service.sol +3 -3
  275. package/contracts/shared/TokenHandler.sol +4 -2
  276. package/contracts/shared/Versionable.sol +1 -1
  277. package/contracts/staking/IStakingService.sol +102 -0
  278. package/contracts/staking/StakeingServiceManager.sol +37 -0
  279. package/contracts/staking/StakingService.sol +166 -0
  280. package/contracts/{types → type}/Amount.sol +39 -0
  281. package/contracts/{types → type}/Fee.sol +7 -6
  282. package/contracts/{types → type}/NftIdSet.sol +1 -1
  283. package/contracts/{types → type}/ObjectType.sol +5 -1
  284. package/package.json +1 -1
  285. package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
  286. package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
  287. package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
  288. package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
  289. package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
  290. package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
  291. package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
  292. package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
  293. package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  294. package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
  295. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
  296. package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1060
  297. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
  298. package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -681
  299. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
  300. package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1289
  301. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
  302. package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -725
  303. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
  304. package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1040
  305. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
  306. package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -685
  307. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
  308. package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1774
  309. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
  310. package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
  311. package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
  312. package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
  313. package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
  314. package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
  315. package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
  316. package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
  317. package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
  318. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
  319. package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1543
  320. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
  321. package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -741
  322. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
  323. package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1449
  324. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
  325. package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -709
  326. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
  327. package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
  328. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  329. package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
  330. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
  331. package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
  332. package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
  333. package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
  334. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
  335. package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
  336. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
  337. package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
  338. package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
  339. package/artifacts/contracts/test/TestService.sol/TestService.json +0 -596
  340. package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
  341. package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
  342. package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
  343. package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
  344. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
  345. package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
  346. package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
  347. package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
  348. package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
  349. package/artifacts/contracts/types/Amount.sol/AmountLib.dbg.json +0 -4
  350. package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -209
  351. package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
  352. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
  353. package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
  354. package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
  355. package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
  356. package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
  357. package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -288
  358. package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
  359. package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
  360. package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
  361. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
  362. package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
  363. package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
  364. package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
  365. package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
  366. package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
  367. package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
  368. package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
  369. package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
  370. package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
  371. package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
  372. package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
  373. package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
  374. package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
  375. package/contracts/instance/service/ApplicationService.sol +0 -355
  376. package/contracts/instance/service/ClaimService.sol +0 -239
  377. package/contracts/instance/service/IClaimService.sol +0 -92
  378. package/contracts/instance/service/IPolicyService.sol +0 -139
  379. package/contracts/instance/service/PolicyService.sol +0 -571
  380. package/contracts/shared/ContractDeployerLib.sol +0 -72
  381. package/contracts/test/TestFee.sol +0 -25
  382. package/contracts/test/TestRegisterable.sol +0 -18
  383. package/contracts/test/TestRoleId.sol +0 -14
  384. package/contracts/test/TestService.sol +0 -25
  385. package/contracts/test/TestToken.sol +0 -26
  386. package/contracts/test/TestVersion.sol +0 -44
  387. package/contracts/test/TestVersionable.sol +0 -17
  388. package/contracts/test/Usdc.sol +0 -26
  389. package/contracts/types/ChainId.sol +0 -38
  390. package/contracts/types/NumberId.sol +0 -52
  391. /package/contracts/{instance → shared}/AccessManagerUpgradeableInitializeable.sol +0 -0
  392. /package/contracts/{types → type}/AddressSet.sol +0 -0
  393. /package/contracts/{types → type}/Blocknumber.sol +0 -0
  394. /package/contracts/{types → type}/ClaimId.sol +0 -0
  395. /package/contracts/{types → type}/DistributorType.sol +0 -0
  396. /package/contracts/{types → type}/Key32.sol +0 -0
  397. /package/contracts/{types → type}/NftId.sol +0 -0
  398. /package/contracts/{types → type}/PayoutId.sol +0 -0
  399. /package/contracts/{types → type}/Referral.sol +0 -0
  400. /package/contracts/{types → type}/RiskId.sol +0 -0
  401. /package/contracts/{types → type}/RoleId.sol +0 -0
  402. /package/contracts/{types → type}/Seconds.sol +0 -0
  403. /package/contracts/{types → type}/StateId.sol +0 -0
  404. /package/contracts/{types → type}/Timestamp.sol +0 -0
  405. /package/contracts/{types → type}/UFixed.sol +0 -0
  406. /package/contracts/{types → type}/Version.sol +0 -0
@@ -4,33 +4,47 @@ 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 {NftId} from "../type/NftId.sol";
8
+ import {RoleId} from "../type/RoleId.sol";
9
+ 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";
10
+ import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../type/ObjectType.sol";
11
+
12
+ import {Service} from "../shared/Service.sol";
13
+ import {IService} from "../shared/IService.sol";
14
+ import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
15
+
16
+ import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
17
+ import {IPoolComponent} from "../pool/IPoolComponent.sol";
18
+ import {IProductComponent} from "../product/IProductComponent.sol";
19
+
20
+ import {IRegistry} from "../registry/IRegistry.sol";
21
+ import {IRegistryService} from "../registry/IRegistryService.sol";
22
+ import {ChainNft} from "../registry/ChainNft.sol";
23
+
7
24
  import {Instance} from "./Instance.sol";
8
25
  import {IInstance} from "./IInstance.sol";
9
26
  import {InstanceAccessManager} from "./InstanceAccessManager.sol";
10
27
  import {IInstanceService} from "./IInstanceService.sol";
11
28
  import {InstanceReader} from "./InstanceReader.sol";
12
29
  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";
30
+ import {InstanceStore} from "./InstanceStore.sol";
31
+ import {InstanceAuthorizationsLib} from "./InstanceAuthorizationsLib.sol";
21
32
 
22
33
  contract InstanceService is
23
34
  Service,
24
35
  IInstanceService
25
36
  {
37
+
38
+ // TODO update to real hash when instance is stable
39
+ bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
40
+
41
+ IRegistryService internal _registryService;
26
42
  address internal _masterOzAccessManager;
27
43
  address internal _masterInstanceAccessManager;
28
44
  address internal _masterInstance;
29
45
  address internal _masterInstanceReader;
30
46
  address internal _masterInstanceBundleManager;
31
-
32
- // TODO update to real hash when instance is stable
33
- bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
47
+ address internal _masterInstanceStore;
34
48
 
35
49
  modifier onlyInstanceOwner(NftId instanceNftId) {
36
50
  if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
@@ -57,21 +71,12 @@ contract InstanceService is
57
71
  function createInstanceClone()
58
72
  external
59
73
  returns (
60
- AccessManagerUpgradeableInitializeable clonedOzAccessManager,
61
- InstanceAccessManager clonedInstanceAccessManager,
62
74
  Instance clonedInstance,
63
- NftId clonedInstanceNftId,
64
- InstanceReader clonedInstanceReader,
65
- BundleManager clonedBundleManager
75
+ NftId clonedInstanceNftId
66
76
  )
67
77
  {
68
78
  address instanceOwner = msg.sender;
69
- IRegistry registry = getRegistry();
70
- IRegistryService registryService = IRegistryService(
71
- registry.getServiceAddress(
72
- REGISTRY(), getVersion().toMajorPart()));
73
-
74
- clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
79
+ AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
75
80
  Clones.clone(_masterOzAccessManager));
76
81
 
77
82
  // initially grants ADMIN_ROLE to this (being the instance service).
@@ -83,239 +88,54 @@ contract InstanceService is
83
88
  clonedInstance = Instance(Clones.clone(_masterInstance));
84
89
  clonedInstance.initialize(
85
90
  address(clonedOzAccessManager),
86
- address(registry),
91
+ address(getRegistry()),
87
92
  instanceOwner);
93
+ // initialize and set before instance reader
94
+ InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
95
+ clonedInstanceStore.initialize(address(clonedInstance));
96
+ clonedInstance.setInstanceStore(clonedInstanceStore);
88
97
 
89
- clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
98
+ InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
90
99
  clonedInstanceReader.initialize(address(clonedInstance));
91
100
  clonedInstance.setInstanceReader(clonedInstanceReader);
92
101
 
93
- clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
102
+ BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
94
103
  clonedBundleManager.initialize(address(clonedInstance));
95
104
  clonedInstance.setBundleManager(clonedBundleManager);
96
105
 
97
- clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
106
+ InstanceAccessManager clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
98
107
  clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
99
108
  clonedInstanceAccessManager.initialize(address(clonedInstance));
100
109
  clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
101
110
 
102
111
  // TODO amend setters with instance specific , policy manager ...
103
112
 
104
- _grantInitialAuthorizations(clonedInstanceAccessManager, clonedInstance, clonedBundleManager, instanceOwner);
113
+ // TODO library does external calls -> but it is registry and access manager -> find out is it best practice
114
+ InstanceAuthorizationsLib.grantInitialAuthorizations(
115
+ clonedInstanceAccessManager,
116
+ clonedInstance,
117
+ clonedBundleManager,
118
+ clonedInstanceStore,
119
+ instanceOwner,
120
+ getRegistry(),
121
+ getVersion().toMajorPart());
105
122
 
106
123
  clonedOzAccessManager.renounceRole(ADMIN_ROLE().toInt(), address(this));
107
124
 
108
- IRegistry.ObjectInfo memory info = registryService.registerInstance(clonedInstance, instanceOwner);
125
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
109
126
  clonedInstanceNftId = info.nftId;
110
127
 
111
128
  emit LogInstanceCloned(
112
129
  address(clonedOzAccessManager),
113
130
  address(clonedInstanceAccessManager),
114
- address(clonedInstance),
131
+ address(clonedInstance),
132
+ address(clonedInstanceStore),
115
133
  address(clonedBundleManager),
116
134
  address(clonedInstanceReader),
117
135
  clonedInstanceNftId);
118
136
  }
119
137
 
120
- function _grantInitialAuthorizations(
121
- InstanceAccessManager clonedAccessManager,
122
- Instance clonedInstance,
123
- BundleManager clonedBundleManager,
124
- address instanceOwner)
125
- internal
126
- {
127
- _createCoreAndGifRoles(clonedAccessManager);
128
- _createCoreTargets(clonedAccessManager, clonedInstance, clonedBundleManager);
129
- _grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstance);
130
- _grantPoolServiceAuthorizations(clonedAccessManager, clonedInstance);
131
- _grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
132
- _grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
133
- _grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
134
- _grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
135
- _grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
136
- _grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
137
- _grantInstanceOwnerAuthorizations(clonedAccessManager, instanceOwner);
138
- }
139
-
140
- function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
141
- // default roles controlled by ADMIN_ROLE -> core roles
142
- // all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
143
- clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
144
- clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
145
- clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
146
- clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
147
- clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
148
- clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
149
- clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
150
- clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
151
- // default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
152
- clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
153
- clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
154
- clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
155
- }
156
-
157
- function _createCoreTargets(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
158
- clonedAccessManager.createCoreTarget(address(clonedAccessManager), "InstanceAccessManager");
159
- clonedAccessManager.createCoreTarget(address(clonedInstance), "Instance");
160
- clonedAccessManager.createCoreTarget(address(clonedBundleManager), "BundleManager");
161
- }
162
-
163
- function _grantDistributionServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
164
- // configure authorization for distribution service on instance
165
- address distributionServiceAddress = getRegistry().getServiceAddress(DISTRIBUTION(), getVersion().toMajorPart());
166
- clonedAccessManager.grantRole(DISTRIBUTION_SERVICE_ROLE(), distributionServiceAddress);
167
- bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](11);
168
- instanceDistributionServiceSelectors[0] = clonedInstance.createDistributionSetup.selector;
169
- instanceDistributionServiceSelectors[1] = clonedInstance.updateDistributionSetup.selector;
170
- instanceDistributionServiceSelectors[2] = clonedInstance.createDistributorType.selector;
171
- instanceDistributionServiceSelectors[3] = clonedInstance.updateDistributorType.selector;
172
- instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
173
- instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
174
- instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
175
- instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
176
- instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
177
- instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
178
- instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
179
- clonedAccessManager.setCoreTargetFunctionRole(
180
- "Instance",
181
- instanceDistributionServiceSelectors,
182
- DISTRIBUTION_SERVICE_ROLE());
183
- }
184
-
185
- function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
186
- // configure authorization for pool service on instance
187
- address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
188
- clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
189
- bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
190
- instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
191
- instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
192
- clonedAccessManager.setCoreTargetFunctionRole(
193
- "Instance",
194
- instancePoolServiceSelectors,
195
- POOL_SERVICE_ROLE());
196
- }
197
-
198
- function _grantProductServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
199
- // configure authorization for product service on instance
200
- address productServiceAddress = getRegistry().getServiceAddress(PRODUCT(), getVersion().toMajorPart());
201
- clonedAccessManager.grantRole(PRODUCT_SERVICE_ROLE(), address(productServiceAddress));
202
- bytes4[] memory instanceProductServiceSelectors = new bytes4[](5);
203
- instanceProductServiceSelectors[0] = clonedInstance.createProductSetup.selector;
204
- instanceProductServiceSelectors[1] = clonedInstance.updateProductSetup.selector;
205
- instanceProductServiceSelectors[2] = clonedInstance.createRisk.selector;
206
- instanceProductServiceSelectors[3] = clonedInstance.updateRisk.selector;
207
- instanceProductServiceSelectors[4] = clonedInstance.updateRiskState.selector;
208
- clonedAccessManager.setCoreTargetFunctionRole(
209
- "Instance",
210
- instanceProductServiceSelectors,
211
- PRODUCT_SERVICE_ROLE());
212
- }
213
-
214
- function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
215
- // configure authorization for application services on instance
216
- address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getVersion().toMajorPart());
217
- clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
218
- bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
219
- instanceApplicationServiceSelectors[0] = clonedInstance.createApplication.selector;
220
- instanceApplicationServiceSelectors[1] = clonedInstance.updateApplication.selector;
221
- instanceApplicationServiceSelectors[2] = clonedInstance.updateApplicationState.selector;
222
- clonedAccessManager.setCoreTargetFunctionRole(
223
- "Instance",
224
- instanceApplicationServiceSelectors,
225
- APPLICATION_SERVICE_ROLE());
226
- }
227
-
228
- function _grantPolicyServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
229
- // configure authorization for policy services on instance
230
- address policyServiceAddress = getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart());
231
- clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), policyServiceAddress);
232
- bytes4[] memory instancePolicyServiceSelectors = new bytes4[](2);
233
- instancePolicyServiceSelectors[0] = clonedInstance.updatePolicy.selector;
234
- instancePolicyServiceSelectors[1] = clonedInstance.updatePolicyState.selector;
235
- clonedAccessManager.setCoreTargetFunctionRole(
236
- "Instance",
237
- instancePolicyServiceSelectors,
238
- POLICY_SERVICE_ROLE());
239
- }
240
-
241
- function _grantClaimServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
242
- // configure authorization for claim/payout services on instance
243
- address claimServiceAddress = getRegistry().getServiceAddress(CLAIM(), getVersion().toMajorPart());
244
- clonedAccessManager.grantRole(CLAIM_SERVICE_ROLE(), claimServiceAddress);
245
- bytes4[] memory instanceClaimServiceSelectors = new bytes4[](4);
246
- instanceClaimServiceSelectors[0] = clonedInstance.createClaim.selector;
247
- instanceClaimServiceSelectors[1] = clonedInstance.updateClaim.selector;
248
- instanceClaimServiceSelectors[2] = clonedInstance.createPayout.selector;
249
- instanceClaimServiceSelectors[3] = clonedInstance.updatePayout.selector;
250
- clonedAccessManager.setCoreTargetFunctionRole(
251
- "Instance",
252
- instanceClaimServiceSelectors,
253
- CLAIM_SERVICE_ROLE());
254
- }
255
-
256
- function _grantBundleServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
257
- // configure authorization for bundle service on instance
258
- address bundleServiceAddress = getRegistry().getServiceAddress(BUNDLE(), getVersion().toMajorPart());
259
- clonedAccessManager.grantRole(BUNDLE_SERVICE_ROLE(), address(bundleServiceAddress));
260
- bytes4[] memory instanceBundleServiceSelectors = new bytes4[](3);
261
- instanceBundleServiceSelectors[0] = clonedInstance.createBundle.selector;
262
- instanceBundleServiceSelectors[1] = clonedInstance.updateBundle.selector;
263
- instanceBundleServiceSelectors[2] = clonedInstance.updateBundleState.selector;
264
- clonedAccessManager.setCoreTargetFunctionRole(
265
- "Instance",
266
- instanceBundleServiceSelectors,
267
- BUNDLE_SERVICE_ROLE());
268
-
269
- // configure authorization for bundle service on bundle manager
270
- bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
271
- bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
272
- bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
273
- bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
274
- bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
275
- bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
276
- clonedAccessManager.setCoreTargetFunctionRole(
277
- "BundleManager",
278
- bundleManagerBundleServiceSelectors,
279
- BUNDLE_SERVICE_ROLE());
280
- }
281
-
282
- function _grantInstanceServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
283
- // configure authorization for instance service on instance
284
- address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getVersion().toMajorPart());
285
- clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
286
- bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
287
- instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
288
- clonedAccessManager.setCoreTargetFunctionRole(
289
- "Instance",
290
- instanceInstanceServiceSelectors,
291
- INSTANCE_SERVICE_ROLE());
292
-
293
- // configure authorizations for instance service on instance access manager
294
- bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](3);
295
- accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
296
- accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLocked.selector;
297
- accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
298
- clonedAccessManager.setCoreTargetFunctionRole(
299
- "InstanceAccessManager",
300
- accessManagerInstanceServiceSelectors,
301
- INSTANCE_SERVICE_ROLE());
302
- }
303
-
304
- function _grantInstanceOwnerAuthorizations(InstanceAccessManager clonedAccessManager, address instanceOwner) internal {
305
- // configure authorization for instance owner on instance access manager
306
- // instance owner role is granted/revoked ONLY by INSTANCE_ROLE
307
- bytes4[] memory accessManagerInstanceOwnerSelectors = new bytes4[](3);
308
- accessManagerInstanceOwnerSelectors[0] = clonedAccessManager.createRole.selector;
309
- accessManagerInstanceOwnerSelectors[1] = clonedAccessManager.createTarget.selector;
310
- accessManagerInstanceOwnerSelectors[2] = clonedAccessManager.setTargetFunctionRole.selector;
311
- clonedAccessManager.setCoreTargetFunctionRole(
312
- "InstanceAccessManager",
313
- accessManagerInstanceOwnerSelectors,
314
- INSTANCE_OWNER_ROLE());
315
- }
316
-
317
-
318
- function setAndRegisterMasterInstance(address instanceAddress)
138
+ function setAndRegisterMasterInstance(address instanceAddress)
319
139
  external
320
140
  onlyOwner
321
141
  returns(NftId masterInstanceNftId)
@@ -328,37 +148,36 @@ contract InstanceService is
328
148
  if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
329
149
 
330
150
  IInstance instance = IInstance(instanceAddress);
331
- AccessManagerUpgradeableInitializeable ozAccessManager = AccessManagerUpgradeableInitializeable(instance.authority());
332
- address ozAccessManagerAddress = address(ozAccessManager);
333
151
  InstanceAccessManager instanceAccessManager = instance.getInstanceAccessManager();
334
152
  address instanceAccessManagerAddress = address(instanceAccessManager);
335
153
  InstanceReader instanceReader = instance.getInstanceReader();
336
154
  address instanceReaderAddress = address(instanceReader);
337
155
  BundleManager bundleManager = instance.getBundleManager();
338
156
  address bundleManagerAddress = address(bundleManager);
157
+ InstanceStore instanceStore = instance.getInstanceStore();
158
+ address instanceStoreAddress = address(instanceStore);
339
159
 
340
- if(ozAccessManagerAddress == address(0)) { revert ErrorInstanceServiceOzAccessManagerZero();}
341
160
  if(instanceAccessManagerAddress == address(0)) { revert ErrorInstanceServiceInstanceAccessManagerZero(); }
342
161
  if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
343
162
  if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleManagerZero(); }
163
+ if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
344
164
 
345
165
  if(instance.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
346
166
  if(bundleManager.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceBundleManagerAuthorityMismatch(); }
347
- if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
167
+ if(instanceStore.authority() != instanceAccessManager.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
348
168
  if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
169
+ if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
349
170
 
350
- _masterOzAccessManager = ozAccessManagerAddress;
171
+ _masterOzAccessManager = instance.authority();
351
172
  _masterInstanceAccessManager = instanceAccessManagerAddress;
352
173
  _masterInstance = instanceAddress;
353
174
  _masterInstanceReader = instanceReaderAddress;
354
175
  _masterInstanceBundleManager = bundleManagerAddress;
176
+ _masterInstanceStore = instanceStoreAddress;
355
177
 
356
- IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getVersion().toMajorPart()));
357
178
  IInstance masterInstance = IInstance(_masterInstance);
358
- IRegistry.ObjectInfo memory info = registryService.registerInstance(masterInstance, getOwner());
179
+ IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
359
180
  masterInstanceNftId = info.nftId;
360
-
361
- // masterInstance.linkToRegisteredNftId();
362
181
  }
363
182
 
364
183
  function setMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
@@ -385,32 +204,6 @@ contract InstanceService is
385
204
  instance.setInstanceReader(upgradedInstanceReaderClone);
386
205
  }
387
206
 
388
- function getMasterInstanceReader() external view returns (address) {
389
- return _masterInstanceReader;
390
- }
391
-
392
- // From IService
393
- function getDomain() public pure override returns(ObjectType) {
394
- return INSTANCE();
395
- }
396
-
397
- /// @dev top level initializer
398
- function _initialize(
399
- address owner,
400
- bytes memory data
401
- )
402
- internal
403
- initializer
404
- virtual override
405
- {
406
- address initialOwner;
407
- address registryAddress;
408
- (registryAddress, initialOwner) = abi.decode(data, (address, address));
409
- // TODO while InstanceService is not deployed in InstanceServiceManager constructor
410
- // owner is InstanceServiceManager deployer
411
- initializeService(registryAddress, address(0), owner);
412
- registerInterface(type(IInstanceService).interfaceId);
413
- }
414
207
 
415
208
  // all gif targets MUST be childs of instanceNftId
416
209
  function createGifTarget(
@@ -425,13 +218,13 @@ contract InstanceService is
425
218
  {
426
219
  (
427
220
  IInstance instance, // or instanceInfo
428
- NftId targetNftId // or targetInfo
221
+ // or targetInfo
429
222
  ) = _validateInstanceAndComponent(instanceNftId, targetAddress);
430
223
 
431
224
  InstanceAccessManager accessManager = instance.getInstanceAccessManager();
432
225
  accessManager.createGifTarget(targetAddress, targetName);
433
226
  // set proposed target config
434
- // TODO restriction: for gif targets can set only once and only here?
227
+ // TODO restriction: gif targets are set only once and only here?
435
228
  // assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
436
229
  for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
437
230
  {
@@ -439,6 +232,7 @@ contract InstanceService is
439
232
  }
440
233
  }
441
234
 
235
+
442
236
  // TODO called by component, but target can be component helper...so needs target name
443
237
  // TODO check that targetName associated with component...how???
444
238
  function setComponentLocked(bool locked) onlyComponent external {
@@ -451,11 +245,47 @@ contract InstanceService is
451
245
  registry.getObjectInfo(
452
246
  instanceNftId).objectAddress);
453
247
 
454
- instance.getInstanceAccessManager().setTargetLocked(
248
+ instance.getInstanceAccessManager().setTargetLockedByService(
455
249
  componentAddress,
456
250
  locked);
457
251
  }
458
252
 
253
+
254
+ function getMasterInstanceReader() external view returns (address) {
255
+ return _masterInstanceReader;
256
+ }
257
+
258
+ // From IService
259
+ function getDomain() public pure override returns(ObjectType) {
260
+ return INSTANCE();
261
+ }
262
+
263
+ /// @dev top level initializer
264
+ function _initialize(
265
+ address owner,
266
+ bytes memory data
267
+ )
268
+ internal
269
+ initializer
270
+ virtual override
271
+ {
272
+ (
273
+ address registryAddress,
274
+ address initialOwner
275
+ ) = abi.decode(data, (address, address));
276
+
277
+ _registryService = IRegistryService(
278
+ IRegistry(registryAddress).getServiceAddress(
279
+ REGISTRY(),
280
+ getVersion().toMajorPart()));
281
+
282
+ // TODO while InstanceService is not deployed in InstanceServiceManager constructor
283
+ // owner is InstanceServiceManager deployer
284
+ initializeService(registryAddress, address(0), owner);
285
+ registerInterface(type(IInstanceService).interfaceId);
286
+ }
287
+
288
+
459
289
  function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
460
290
  internal
461
291
  view
@@ -7,7 +7,7 @@ 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