@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-ead1eb0-841

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