@etherisc/gif-next 0.0.2-92c50c2-136 → 0.0.2-92cdbc9-533

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 (353) hide show
  1. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  3. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  5. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  7. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  9. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  10. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  11. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  13. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  15. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  16. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
  17. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  19. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  21. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  23. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  25. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
  27. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +106 -90
  29. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +55 -55
  31. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
  33. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
  35. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
  37. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +0 -13
  39. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +27 -39
  41. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  42. package/artifacts/contracts/instance/Instance.sol/Instance.json +29 -90
  43. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  45. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  47. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
  49. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +61 -121
  51. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
  53. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
  55. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  57. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  58. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  60. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +6 -6
  62. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  63. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
  64. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  65. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  70. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  72. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  74. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  76. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  77. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  78. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  79. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  80. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  81. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  83. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  84. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  85. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  86. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  87. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  88. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  89. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  90. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  91. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  92. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +44 -44
  93. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  94. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +40 -40
  95. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  96. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  98. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  99. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  100. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  101. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  102. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -36
  103. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  104. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
  105. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  106. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
  107. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  108. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
  109. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  110. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  111. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  112. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  113. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  114. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +72 -72
  115. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
  117. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  118. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  120. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  122. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  123. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  124. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  125. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +50 -50
  126. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  127. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
  128. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  129. package/artifacts/contracts/product/PricingService.sol/PricingService.json +58 -58
  130. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  131. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
  132. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  133. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  134. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  135. package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
  136. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  137. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
  138. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  139. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  140. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  141. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
  142. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  143. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  144. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  145. package/artifacts/contracts/registry/Registry.sol/Registry.json +24 -68
  146. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  147. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +233 -388
  148. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  149. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  150. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  151. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  152. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  153. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +6 -6
  154. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  155. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +53 -71
  156. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  157. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
  158. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  159. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  160. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  161. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  162. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +62 -86
  163. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  164. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -61
  165. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  166. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  168. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  169. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  172. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  173. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  174. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  175. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  176. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  177. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  180. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  181. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  182. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  183. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  184. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  185. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  186. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +22 -22
  187. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  188. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  189. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  190. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  191. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  192. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -14
  193. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  194. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  195. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  196. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  197. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  198. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  199. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  200. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  201. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  202. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  203. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  204. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  205. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  206. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
  207. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  208. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
  209. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +6 -6
  211. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  212. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -40
  213. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  214. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  215. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  216. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  217. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  218. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  219. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  220. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +131 -131
  221. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  222. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  223. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  224. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  225. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  226. package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
  227. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  228. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  229. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  230. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  231. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  232. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  233. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  234. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  235. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  236. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  237. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  238. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  239. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  240. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  241. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  242. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  243. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  244. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  245. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  246. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  247. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  248. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  249. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  250. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  251. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  252. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  253. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  254. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  255. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  256. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  257. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  259. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  261. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  263. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
  265. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  267. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  268. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  269. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  271. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  272. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  273. package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
  274. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  275. package/contracts/authorization/Authorization.sol +218 -0
  276. package/contracts/authorization/IAccess.sol +48 -0
  277. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  278. package/contracts/authorization/IAuthorization.sol +54 -0
  279. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  280. package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
  281. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  282. package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
  283. package/contracts/distribution/BasicDistribution.sol +149 -0
  284. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  285. package/contracts/distribution/Distribution.sol +126 -104
  286. package/contracts/distribution/DistributionService.sol +10 -5
  287. package/contracts/distribution/IDistributionComponent.sol +17 -35
  288. package/contracts/distribution/IDistributionService.sol +5 -1
  289. package/contracts/instance/IInstance.sol +3 -4
  290. package/contracts/instance/IInstanceService.sol +7 -12
  291. package/contracts/instance/Instance.sol +58 -67
  292. package/contracts/instance/InstanceAdmin.sol +202 -267
  293. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  294. package/contracts/instance/InstanceReader.sol +22 -9
  295. package/contracts/instance/InstanceService.sol +66 -62
  296. package/contracts/instance/InstanceStore.sol +5 -1
  297. package/contracts/instance/base/ObjectManager.sol +7 -8
  298. package/contracts/oracle/BasicOracle.sol +48 -0
  299. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  300. package/contracts/oracle/IOracle.sol +16 -0
  301. package/contracts/oracle/Oracle.sol +61 -49
  302. package/contracts/pool/BasicPool.sol +164 -0
  303. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  304. package/contracts/pool/IPoolComponent.sol +0 -60
  305. package/contracts/pool/Pool.sol +143 -131
  306. package/contracts/pool/PoolService.sol +1 -1
  307. package/contracts/product/BasicProduct.sol +82 -0
  308. package/contracts/product/BasicProductAuthorization.sol +40 -0
  309. package/contracts/product/IProductComponent.sol +6 -9
  310. package/contracts/product/Product.sol +103 -88
  311. package/contracts/registry/IRegistry.sol +5 -8
  312. package/contracts/registry/Registry.sol +1 -5
  313. package/contracts/registry/RegistryAdmin.sol +101 -71
  314. package/contracts/registry/ReleaseManager.sol +53 -69
  315. package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
  316. package/contracts/shared/ComponentService.sol +19 -58
  317. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  318. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  319. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  320. package/contracts/type/ObjectType.sol +34 -0
  321. package/contracts/type/RoleId.sol +55 -82
  322. package/contracts/type/UFixed.sol +6 -0
  323. package/package.json +1 -1
  324. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  325. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  326. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  327. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  328. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
  329. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  330. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  331. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  332. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  333. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  334. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  335. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  336. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  337. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  338. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  339. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  340. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  341. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  342. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  343. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  344. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  345. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  346. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  347. package/contracts/shared/AccessManagerCustom.sol +0 -741
  348. package/contracts/shared/AccessManagerExtended.sol +0 -481
  349. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  350. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  351. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  352. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  353. package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -9,6 +9,7 @@ import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
9
9
  import {Fee, FeeLib} from "../type/Fee.sol";
10
10
  import {IRisk} from "../instance/module/IRisk.sol";
11
11
  import {IApplicationService} from "./IApplicationService.sol";
12
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
12
13
  import {IComponentService} from "../shared/IComponentService.sol";
13
14
  import {IPolicyService} from "./IPolicyService.sol";
14
15
  import {IProductService} from "./IProductService.sol";
@@ -52,9 +53,92 @@ abstract contract Product is
52
53
  Distribution _distribution;
53
54
  }
54
55
 
55
- function initializeProduct(
56
+
57
+ function calculatePremium(
58
+ Amount sumInsuredAmount,
59
+ RiskId riskId,
60
+ Seconds lifetime,
61
+ bytes memory applicationData,
62
+ NftId bundleNftId,
63
+ ReferralId referralId
64
+ )
65
+ external
66
+ view
67
+ override
68
+ returns (Amount premiumAmount)
69
+ {
70
+ IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
71
+ getNftId(),
72
+ riskId,
73
+ sumInsuredAmount,
74
+ lifetime,
75
+ applicationData,
76
+ bundleNftId,
77
+ referralId
78
+ );
79
+
80
+ return AmountLib.toAmount(premium.premiumAmount);
81
+ }
82
+
83
+ function calculateNetPremium(
84
+ Amount sumInsuredAmount,
85
+ RiskId riskId,
86
+ Seconds lifetime,
87
+ bytes memory applicationData
88
+ )
89
+ external
90
+ view
91
+ virtual override
92
+ returns (Amount netPremiumAmount)
93
+ {
94
+ // default 10% of sum insured
95
+ return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
96
+ }
97
+
98
+
99
+ function register()
100
+ external
101
+ virtual
102
+ onlyOwner()
103
+ {
104
+ _getProductStorage()._componentService.registerProduct();
105
+ }
106
+
107
+
108
+ function getInitialProductInfo()
109
+ public
110
+ virtual
111
+ view
112
+ returns (IComponents.ProductInfo memory poolInfo)
113
+ {
114
+ ProductStorage storage $ = _getProductStorage();
115
+
116
+ return IComponents.ProductInfo({
117
+ distributionNftId: $._distributionNftId,
118
+ poolNftId: $._poolNftId,
119
+ productFee: FeeLib.zero(),
120
+ processingFee: FeeLib.zero(),
121
+ distributionFee: FeeLib.zero(),
122
+ minDistributionOwnerFee: FeeLib.zero(),
123
+ poolFee: FeeLib.zero(),
124
+ stakingFee: FeeLib.zero(),
125
+ performanceFee: FeeLib.zero()
126
+ });
127
+ }
128
+
129
+ function getPoolNftId() external view override returns (NftId poolNftId) {
130
+ return getRegistry().getNftId(address(_getProductStorage()._pool));
131
+ }
132
+
133
+ function getDistributionNftId() external view override returns (NftId distributionNftId) {
134
+ return getRegistry().getNftId(address(_getProductStorage()._distribution));
135
+ }
136
+
137
+
138
+ function _initializeProduct(
56
139
  address registry,
57
140
  NftId instanceNftId,
141
+ IAuthorization authorization,
58
142
  address initialOwner,
59
143
  string memory name,
60
144
  address token,
@@ -64,11 +148,21 @@ abstract contract Product is
64
148
  bytes memory registryData, // writeonly data that will saved in the object info record of the registry
65
149
  bytes memory componentData // writeonly data that will saved in the object info record of the registry
66
150
  )
67
- public
151
+ internal
68
152
  virtual
69
153
  onlyInitializing()
70
154
  {
71
- initializeInstanceLinkedComponent(registry, instanceNftId, name, token, PRODUCT(), isInterceptor, initialOwner, registryData, componentData);
155
+ _initializeInstanceLinkedComponent(
156
+ registry,
157
+ instanceNftId,
158
+ name,
159
+ token,
160
+ PRODUCT(),
161
+ authorization,
162
+ isInterceptor,
163
+ initialOwner,
164
+ registryData,
165
+ componentData);
72
166
 
73
167
  ProductStorage storage $ = _getProductStorage();
74
168
  // TODO add validation
@@ -88,27 +182,17 @@ abstract contract Product is
88
182
  }
89
183
 
90
184
 
91
- function register()
92
- external
93
- virtual
94
- onlyOwner()
95
- {
96
- _getProductStorage()._componentService.registerProduct();
97
- }
98
-
99
-
100
- function setFees(
185
+ function _setFees(
101
186
  Fee memory productFee,
102
187
  Fee memory processingFee
103
188
  )
104
- external
105
- onlyOwner
106
- restricted()
107
- override
189
+ internal
190
+ virtual
108
191
  {
109
192
  _getProductStorage()._componentService.setProductFees(productFee, processingFee);
110
193
  }
111
194
 
195
+
112
196
  function _createRisk(
113
197
  RiskId id,
114
198
  bytes memory data
@@ -139,10 +223,12 @@ abstract contract Product is
139
223
  );
140
224
  }
141
225
 
226
+
142
227
  function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
143
228
  return getInstance().getInstanceReader().getRiskInfo(id);
144
229
  }
145
230
 
231
+
146
232
  function _createApplication(
147
233
  address applicationOwner,
148
234
  RiskId riskId,
@@ -290,77 +376,6 @@ abstract contract Product is
290
376
  payoutId);
291
377
  }
292
378
 
293
- function calculatePremium(
294
- Amount sumInsuredAmount,
295
- RiskId riskId,
296
- Seconds lifetime,
297
- bytes memory applicationData,
298
- NftId bundleNftId,
299
- ReferralId referralId
300
- )
301
- external
302
- view
303
- override
304
- returns (Amount premiumAmount)
305
- {
306
- IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
307
- getNftId(),
308
- riskId,
309
- sumInsuredAmount,
310
- lifetime,
311
- applicationData,
312
- bundleNftId,
313
- referralId
314
- );
315
-
316
- return AmountLib.toAmount(premium.premiumAmount);
317
- }
318
-
319
- function calculateNetPremium(
320
- Amount sumInsuredAmount,
321
- RiskId riskId,
322
- Seconds lifetime,
323
- bytes memory applicationData
324
- )
325
- external
326
- view
327
- virtual override
328
- returns (Amount netPremiumAmount)
329
- {
330
- // default 10% of sum insured
331
- return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
332
- }
333
-
334
-
335
- function getInitialProductInfo()
336
- public
337
- virtual
338
- view
339
- returns (IComponents.ProductInfo memory poolInfo)
340
- {
341
- ProductStorage storage $ = _getProductStorage();
342
-
343
- return IComponents.ProductInfo({
344
- distributionNftId: $._distributionNftId,
345
- poolNftId: $._poolNftId,
346
- productFee: FeeLib.zero(),
347
- processingFee: FeeLib.zero(),
348
- distributionFee: FeeLib.zero(),
349
- minDistributionOwnerFee: FeeLib.zero(),
350
- poolFee: FeeLib.zero(),
351
- stakingFee: FeeLib.zero(),
352
- performanceFee: FeeLib.zero()
353
- });
354
- }
355
-
356
- function getPoolNftId() external view override returns (NftId poolNftId) {
357
- return getRegistry().getNftId(address(_getProductStorage()._pool));
358
- }
359
-
360
- function getDistributionNftId() external view override returns (NftId distributionNftId) {
361
- return getRegistry().getNftId(address(_getProductStorage()._distribution));
362
- }
363
-
364
379
  function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
365
380
  return RiskIdLib.toRiskId(riskName);
366
381
  }
@@ -40,17 +40,16 @@ interface IRegistry is IERC165 {
40
40
  bytes data;
41
41
  }
42
42
 
43
-
44
43
  struct ReleaseInfo {
45
44
  VersionPart version;
46
45
  bytes32 salt;
47
46
  address[] addresses;
48
47
  string[] names;
49
- RoleId[][] serviceRoles;
50
- string[][] serviceRoleNames;
51
- RoleId[][] functionRoles;
52
- string[][] functionRoleNames;
53
- bytes4[][][] selectors;
48
+ // RoleId[][] serviceRoles;
49
+ // string[][] serviceRoleNames;
50
+ // RoleId[][] functionRoles;
51
+ // string[][] functionRoleNames;
52
+ // bytes4[][][] selectors;
54
53
  ObjectType[] domains;
55
54
  Timestamp activatedAt;
56
55
  Timestamp disabledAt;
@@ -112,8 +111,6 @@ interface IRegistry is IERC165 {
112
111
 
113
112
  function getReleaseManagerAddress() external view returns (address);
114
113
 
115
- function getReleaseAccessManagerAddress(VersionPart version) external view returns (address);
116
-
117
114
  function getStakingAddress() external view returns (address);
118
115
 
119
116
  function getTokenRegistryAddress() external view returns (address);
@@ -64,7 +64,7 @@ contract Registry is
64
64
  // 1). Registry and ReleaseManager must be treated as whole single entity.
65
65
  // But current limitations of EVM does not allow it -> require it to be splitted
66
66
  // 2). Keep onlyReleaseManager modifier
67
- // 3). Delete onlyRegistryService in favor of restricted, introduce aditional "domain role", REGISTRY_SERVICE_ROLE
67
+ // 3). Delete onlyRegistryService in favor of restricted
68
68
  // 4). (For GlobalRegistry ONLY) make registerChainRegistry() restricted to GIF_ADMIN_ROLE
69
69
  modifier onlyRegistryService() {
70
70
  if(!_releaseManager.isActiveRegistryService(msg.sender)) {
@@ -298,10 +298,6 @@ contract Registry is
298
298
  service = _service[releaseVersion][serviceDomain];
299
299
  }
300
300
 
301
- function getReleaseAccessManagerAddress(VersionPart version) external view returns (address) {
302
- return address(_releaseManager.getReleaseAccessManager(version));
303
- }
304
-
305
301
  function getReleaseManagerAddress() external view returns (address) {
306
302
  return address(_releaseManager);
307
303
  }
@@ -1,11 +1,11 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessAdmin} from "../shared/AccessAdmin.sol";
5
- import {IAccessAdmin} from "../shared/IAccessAdmin.sol";
4
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
+ import {IAccess} from "../authorization/IAccess.sol";
6
6
  import {IRegistry} from "./IRegistry.sol";
7
7
  import {IService} from "../shared/IService.sol";
8
- import {IServiceAuthorization} from "./IServiceAuthorization.sol";
8
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
9
  import {IStaking} from "../staking/IStaking.sol";
10
10
  import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
11
11
  import {ReleaseManager} from "./ReleaseManager.sol";
@@ -38,13 +38,17 @@ contract RegistryAdmin is
38
38
 
39
39
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
40
40
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
41
- string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
42
41
  string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
42
+ string public constant RELEASE_MANAGER_ROLE_NAME = "ReleaseManagerRole";
43
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
44
+ string public constant STAKING_ROLE_NAME = "StakingRole";
43
45
 
44
- string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManagerTarget";
45
- string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistryTarget";
46
- string public constant STAKING_TARGET_NAME = "StakingTarget";
47
- string public constant STAKING_STORE_TARGET_NAME = "StakingStoreTarget";
46
+ string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
47
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
48
+ string public constant STAKING_TARGET_NAME = "Staking";
49
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
50
+
51
+ uint8 public constant MAX_NUM_RELEASES = 99;
48
52
 
49
53
  mapping(address service => VersionPart majorVersion) private _ServiceRelease;
50
54
 
@@ -74,7 +78,7 @@ contract RegistryAdmin is
74
78
  IStaking(_staking).getStakingStore());
75
79
 
76
80
  // at this moment all registry contracts are deployed and fully intialized
77
- _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
81
+ _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
78
82
 
79
83
  _setupGifAdminRole(gifAdmin);
80
84
  _setupGifManagerRole(gifManager);
@@ -112,50 +116,39 @@ contract RegistryAdmin is
112
116
  function _createServiceTargetAndRole(IService service)
113
117
  private
114
118
  {
115
- ObjectType domain = service.getDomain();
116
- string memory baseName = ObjectTypeLib.toName(domain);
119
+ ObjectType serviceDomain = service.getDomain();
120
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
117
121
  VersionPart version = service.getVersion().toMajorPart();
118
122
  uint256 versionInt = version.toInt();
119
- string memory versionName = "_v0";
120
- string memory versionNumber = ObjectTypeLib.toString(versionInt);
121
-
122
- if (versionInt >= 10) {
123
- versionName = "_v";
124
- }
125
123
 
126
124
  // create service target
127
- string memory serviceTargetName = string(
128
- abi.encodePacked(
129
- baseName,
130
- "Service",
131
- versionName,
132
- versionNumber));
125
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
126
+ baseName, "Service", versionInt);
133
127
 
134
128
  _createTarget(
135
129
  address(service),
136
- serviceTargetName);
130
+ serviceTargetName,
131
+ true,
132
+ false);
137
133
 
138
134
  // create service role
139
- string memory serviceRoleName = string(
140
- abi.encodePacked(
141
- baseName,
142
- "ServiceRole",
143
- versionName,
144
- versionNumber));
145
-
146
- RoleId roleId = RoleIdLib.roleForTypeAndVersion(
147
- domain,
135
+ RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
136
+ serviceDomain,
148
137
  version);
149
138
 
150
139
  _createRole(
151
- roleId,
152
- ADMIN_ROLE(),
153
- serviceRoleName,
154
- 1, // service roles must only be given to this unique service
155
- true); // it must not be possible to remove this role once granted
140
+ serviceRoleId,
141
+ toRole({
142
+ adminRoleId: ADMIN_ROLE(),
143
+ roleType: RoleType.Contract,
144
+ maxMemberCount: 1,
145
+ name: ObjectTypeLib.toVersionedName(
146
+ baseName,
147
+ "ServiceRole",
148
+ versionInt)}));
156
149
 
157
150
  _grantRoleToAccount(
158
- roleId,
151
+ serviceRoleId,
159
152
  address(service));
160
153
  }
161
154
 
@@ -186,7 +179,7 @@ contract RegistryAdmin is
186
179
  }
187
180
 
188
181
  // get authorized functions for authorized domain
189
- IAccessAdmin.Function[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
182
+ IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
190
183
  serviceDomain,
191
184
  authorizedDomain);
192
185
 
@@ -218,29 +211,40 @@ contract RegistryAdmin is
218
211
  //--- private functions -------------------------------------------------//
219
212
 
220
213
  function _setupGifAdminRole(address gifAdmin) private {
221
- // TODO decide on max member count
222
- _createRole(GIF_ADMIN_ROLE(), getAdminRole(), GIF_ADMIN_ROLE_NAME, 2, false);
223
- _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
214
+
215
+ _createRole(
216
+ GIF_ADMIN_ROLE(),
217
+ toRole({
218
+ adminRoleId: ADMIN_ROLE(),
219
+ roleType: RoleType.Gif,
220
+ maxMemberCount: 2, // TODO decide on max member count
221
+ name: GIF_ADMIN_ROLE_NAME}));
224
222
 
225
223
  // for ReleaseManager
226
- Function[] memory functions;
227
- functions = new Function[](4);
224
+ FunctionInfo[] memory functions;
225
+ functions = new FunctionInfo[](4);
228
226
  functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
229
227
  functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
230
228
  functions[2] = toFunction(ReleaseManager.pauseRelease.selector, "pauseRelease");
231
229
  functions[3] = toFunction(ReleaseManager.unpauseRelease.selector, "unpauseRelease");
232
230
  _authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
233
231
 
234
- // for Staking
232
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
235
233
  }
236
234
 
237
235
  function _setupGifManagerRole(address gifManager) private {
238
- _createRole(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE(), GIF_MANAGER_ROLE_NAME, 1, false);
239
- _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
236
+
237
+ _createRole(
238
+ GIF_MANAGER_ROLE(),
239
+ toRole({
240
+ adminRoleId: ADMIN_ROLE(),
241
+ roleType: RoleType.Gif,
242
+ maxMemberCount: 1,
243
+ name: GIF_MANAGER_ROLE_NAME}));
240
244
 
241
245
  // for TokenRegistry
242
- Function[] memory functions;
243
- functions = new Function[](5);
246
+ FunctionInfo[] memory functions;
247
+ functions = new FunctionInfo[](5);
244
248
  functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
245
249
  functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
246
250
  functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
@@ -250,41 +254,54 @@ contract RegistryAdmin is
250
254
  _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
251
255
 
252
256
  // for ReleaseManager
253
- functions = new Function[](2);
257
+ functions = new FunctionInfo[](2);
254
258
  functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
255
259
  functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
256
260
  _authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
257
261
 
258
- // for Staking
262
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
259
263
  }
260
264
 
261
265
 
262
266
  function _setupReleaseManager() private {
263
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
264
267
 
265
- RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
266
- _createRole(releaseManagerRoleId, ADMIN_ROLE(), RELEASE_MANAGER_TARGET_NAME, 1, true);
267
- _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
268
+ _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME, true, false);
268
269
 
269
- Function[] memory functions;
270
- functions = new Function[](2);
270
+ RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
271
+ _createRole(
272
+ releaseManagerRoleId,
273
+ toRole({
274
+ adminRoleId: ADMIN_ROLE(),
275
+ roleType: RoleType.Contract,
276
+ maxMemberCount: 1,
277
+ name: RELEASE_MANAGER_ROLE_NAME}));
278
+
279
+ FunctionInfo[] memory functions;
280
+ functions = new FunctionInfo[](2);
271
281
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
272
282
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
273
283
  _authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
284
+
285
+ _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
274
286
  }
275
287
 
276
288
 
277
289
  function _setupStaking() private {
278
- _createTarget(_staking, STAKING_TARGET_NAME);
279
- _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME);
280
-
290
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
291
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
281
292
 
282
293
  // staking function authorization for staking service
283
294
  RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
284
- _createRole(stakingServiceRoleId, ADMIN_ROLE(), STAKING_SERVICE_ROLE_NAME, 1, true);
285
-
286
- Function[] memory functions;
287
- functions = new Function[](13);
295
+ _createRole(
296
+ stakingServiceRoleId,
297
+ toRole({
298
+ adminRoleId: ADMIN_ROLE(),
299
+ roleType: RoleType.Contract,
300
+ maxMemberCount: MAX_NUM_RELEASES,
301
+ name: STAKING_SERVICE_ROLE_NAME}));
302
+
303
+ FunctionInfo[] memory functions;
304
+ functions = new FunctionInfo[](13);
288
305
  functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
289
306
  functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
290
307
  functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
@@ -302,20 +319,31 @@ contract RegistryAdmin is
302
319
 
303
320
  // staking function authorization for pool service
304
321
  RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
305
- _createRole(poolServiceRoleId, ADMIN_ROLE(), POOL_SERVICE_ROLE_NAME, 1, true);
322
+ _createRole(
323
+ poolServiceRoleId,
324
+ toRole({
325
+ adminRoleId: ADMIN_ROLE(),
326
+ roleType: RoleType.Contract,
327
+ maxMemberCount: MAX_NUM_RELEASES,
328
+ name: POOL_SERVICE_ROLE_NAME}));
306
329
 
307
330
  // staking function authorizations
308
- functions = new Function[](2);
331
+ functions = new FunctionInfo[](2);
309
332
  functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
310
333
  functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
311
334
  _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
312
335
 
313
336
  // staking store function authorizations
314
337
  RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
315
- _createRole(stakingRoleId, ADMIN_ROLE(), STAKING_TARGET_NAME, 1, true);
316
- _grantRoleToAccount(stakingRoleId, _staking);
317
-
318
- functions = new Function[](14);
338
+ _createRole(
339
+ stakingRoleId,
340
+ toRole({
341
+ adminRoleId: ADMIN_ROLE(),
342
+ roleType: RoleType.Contract,
343
+ maxMemberCount: 1,
344
+ name: STAKING_ROLE_NAME}));
345
+
346
+ functions = new FunctionInfo[](14);
319
347
  functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
320
348
  functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
321
349
  functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
@@ -331,5 +359,7 @@ contract RegistryAdmin is
331
359
  functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
332
360
  functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
333
361
  _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
362
+
363
+ _grantRoleToAccount(stakingRoleId, _staking);
334
364
  }
335
365
  }