@etherisc/gif-next 0.0.2-7340474-070 → 0.0.2-742eda3-807

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 (366) hide show
  1. package/README.md +30 -2
  2. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
  3. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
  4. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
  5. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
  6. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
  7. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
  8. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
  9. package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
  10. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
  11. package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
  12. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
  13. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
  14. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
  15. package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
  16. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
  17. package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +29 -10
  18. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
  19. package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
  20. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
  21. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
  22. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
  23. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
  24. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
  25. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
  26. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  27. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +106 -90
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +55 -55
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
  36. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
  37. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
  38. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  39. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +0 -13
  40. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  41. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +27 -39
  42. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  43. package/artifacts/contracts/instance/Instance.sol/Instance.json +29 -90
  44. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  45. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
  46. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  47. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  48. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  49. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
  50. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  51. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +60 -120
  52. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  53. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
  54. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  55. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +84 -91
  56. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  57. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  58. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  59. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  60. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  61. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  62. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  63. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
  64. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
  65. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  66. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  67. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  68. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  69. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  70. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  71. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  72. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  73. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  74. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
  75. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  76. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  77. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  78. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
  79. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  80. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
  81. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  82. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  83. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
  84. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  85. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
  86. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  87. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
  88. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  89. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
  90. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  91. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  92. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  93. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +44 -44
  94. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  95. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +40 -40
  96. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  97. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  98. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
  99. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  100. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  101. package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
  102. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  103. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -36
  104. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  105. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
  106. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  107. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
  108. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  109. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
  110. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  111. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
  112. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  113. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  114. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  115. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +72 -72
  116. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  117. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
  118. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  119. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  120. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  121. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  122. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  123. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
  124. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
  125. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  126. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +50 -50
  127. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  128. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
  129. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  130. package/artifacts/contracts/product/PricingService.sol/PricingService.json +58 -58
  131. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  132. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
  133. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  134. package/artifacts/contracts/product/Product.sol/Product.json +13 -153
  135. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
  136. package/artifacts/contracts/product/ProductService.sol/ProductService.json +20 -20
  137. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
  139. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  140. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  141. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  142. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
  143. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  144. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  145. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  146. package/artifacts/contracts/registry/Registry.sol/Registry.json +24 -68
  147. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  148. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +233 -388
  149. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  150. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
  151. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  152. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
  153. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  154. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  155. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
  156. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +148 -207
  157. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  158. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -16
  159. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  160. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
  161. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  162. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  163. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +62 -86
  164. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  165. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -61
  166. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  167. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
  168. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
  169. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  170. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  171. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  172. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
  173. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  174. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
  175. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  176. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  177. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  178. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  179. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  180. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  181. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  182. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
  183. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
  184. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  185. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
  186. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  187. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
  188. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  189. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  190. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
  191. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +22 -22
  192. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  193. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
  194. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  195. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
  196. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -14
  198. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
  200. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  201. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  202. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  203. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  204. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
  205. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  206. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
  207. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
  208. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  209. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  210. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
  211. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
  212. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  213. package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
  214. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  215. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  216. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  217. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -40
  218. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  219. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
  220. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  221. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
  222. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  223. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
  224. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  225. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +142 -166
  226. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  227. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -22
  228. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  229. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  230. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  231. package/artifacts/contracts/type/Amount.sol/AmountLib.json +8 -8
  232. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  233. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
  234. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  235. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  236. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  237. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  238. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  239. package/artifacts/contracts/type/Fee.sol/FeeLib.json +12 -12
  240. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  241. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  242. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  243. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
  244. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  246. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  247. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
  248. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  249. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  250. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  251. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  252. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  253. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
  254. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  255. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  256. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  257. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
  258. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  259. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -2
  260. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  261. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
  262. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  263. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  264. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  265. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  266. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  267. package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
  268. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  269. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +4 -4
  270. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  271. package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
  272. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  273. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
  274. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  275. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  276. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  277. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +2 -2
  278. package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
  279. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  280. package/contracts/authorization/Authorization.sol +218 -0
  281. package/contracts/authorization/IAccess.sol +48 -0
  282. package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
  283. package/contracts/authorization/IAuthorization.sol +54 -0
  284. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  285. package/contracts/{registry → authorization}/IServiceAuthorization.sol +8 -5
  286. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  287. package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
  288. package/contracts/distribution/BasicDistribution.sol +149 -0
  289. package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
  290. package/contracts/distribution/Distribution.sol +126 -104
  291. package/contracts/distribution/DistributionService.sol +10 -5
  292. package/contracts/distribution/IDistributionComponent.sol +17 -35
  293. package/contracts/distribution/IDistributionService.sol +5 -1
  294. package/contracts/instance/IInstance.sol +3 -4
  295. package/contracts/instance/IInstanceService.sol +7 -12
  296. package/contracts/instance/Instance.sol +58 -67
  297. package/contracts/instance/InstanceAdmin.sol +202 -267
  298. package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
  299. package/contracts/instance/InstanceReader.sol +22 -9
  300. package/contracts/instance/InstanceService.sol +66 -62
  301. package/contracts/instance/InstanceStore.sol +11 -4
  302. package/contracts/instance/base/ObjectLifecycle.sol +106 -0
  303. package/contracts/instance/base/ObjectManager.sol +7 -8
  304. package/contracts/oracle/BasicOracle.sol +48 -0
  305. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  306. package/contracts/oracle/IOracle.sol +16 -0
  307. package/contracts/oracle/Oracle.sol +61 -49
  308. package/contracts/pool/BasicPool.sol +164 -0
  309. package/contracts/pool/BasicPoolAuthorization.sol +49 -0
  310. package/contracts/pool/IPoolComponent.sol +0 -60
  311. package/contracts/pool/Pool.sol +143 -131
  312. package/contracts/pool/PoolService.sol +1 -1
  313. package/contracts/product/BasicProduct.sol +82 -0
  314. package/contracts/product/BasicProductAuthorization.sol +40 -0
  315. package/contracts/product/IProductComponent.sol +6 -9
  316. package/contracts/product/Product.sol +103 -88
  317. package/contracts/registry/IRegistry.sol +5 -8
  318. package/contracts/registry/Registry.sol +1 -5
  319. package/contracts/registry/RegistryAdmin.sol +103 -71
  320. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  321. package/contracts/registry/ReleaseManager.sol +127 -167
  322. package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
  323. package/contracts/shared/ComponentService.sol +20 -56
  324. package/contracts/shared/ComponentVerifyingService.sol +1 -1
  325. package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
  326. package/contracts/shared/IKeyValueStore.sol +1 -0
  327. package/contracts/shared/ILifecycle.sol +1 -2
  328. package/contracts/shared/InstanceLinkedComponent.sol +26 -19
  329. package/contracts/shared/KeyValueStore.sol +6 -2
  330. package/contracts/shared/Lifecycle.sol +16 -69
  331. package/contracts/staking/StakingLifecycle.sol +23 -0
  332. package/contracts/staking/StakingStore.sol +3 -1
  333. package/contracts/type/ObjectType.sol +34 -0
  334. package/contracts/type/RoleId.sol +55 -82
  335. package/contracts/type/UFixed.sol +6 -0
  336. package/package.json +6 -3
  337. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  338. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
  339. package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
  340. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
  341. package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
  342. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
  343. package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
  344. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
  345. package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
  346. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
  347. package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
  348. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
  349. package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
  350. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
  351. package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
  352. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
  353. package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
  354. package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
  355. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
  356. package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
  357. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
  358. package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
  359. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
  360. package/contracts/shared/AccessManagerCustom.sol +0 -741
  361. package/contracts/shared/AccessManagerExtended.sol +0 -481
  362. package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
  363. package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
  364. package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
  365. package/contracts/shared/IAccessManagerExtended.sol +0 -74
  366. 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,27 +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[](2);
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");
228
+ functions[2] = toFunction(ReleaseManager.pauseRelease.selector, "pauseRelease");
229
+ functions[3] = toFunction(ReleaseManager.unpauseRelease.selector, "unpauseRelease");
230
230
  _authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
231
231
 
232
- // for Staking
232
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
233
233
  }
234
234
 
235
235
  function _setupGifManagerRole(address gifManager) private {
236
- _createRole(GIF_MANAGER_ROLE(), GIF_ADMIN_ROLE(), GIF_MANAGER_ROLE_NAME, 1, false);
237
- _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}));
238
244
 
239
245
  // for TokenRegistry
240
- Function[] memory functions;
241
- functions = new Function[](5);
246
+ FunctionInfo[] memory functions;
247
+ functions = new FunctionInfo[](5);
242
248
  functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
243
249
  functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
244
250
  functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
@@ -248,41 +254,54 @@ contract RegistryAdmin is
248
254
  _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
249
255
 
250
256
  // for ReleaseManager
251
- functions = new Function[](2);
257
+ functions = new FunctionInfo[](2);
252
258
  functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
253
259
  functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
254
260
  _authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
255
261
 
256
- // for Staking
262
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
257
263
  }
258
264
 
259
265
 
260
266
  function _setupReleaseManager() private {
261
- _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
262
267
 
263
- RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
264
- _createRole(releaseManagerRoleId, ADMIN_ROLE(), RELEASE_MANAGER_TARGET_NAME, 1, true);
265
- _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
268
+ _createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME, true, false);
266
269
 
267
- Function[] memory functions;
268
- 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);
269
281
  functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
270
282
  functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
271
283
  _authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
284
+
285
+ _grantRoleToAccount(releaseManagerRoleId, _releaseManager);
272
286
  }
273
287
 
274
288
 
275
289
  function _setupStaking() private {
276
- _createTarget(_staking, STAKING_TARGET_NAME);
277
- _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME);
278
-
290
+ _createTarget(_staking, STAKING_TARGET_NAME, true, false);
291
+ _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
279
292
 
280
293
  // staking function authorization for staking service
281
294
  RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
282
- _createRole(stakingServiceRoleId, ADMIN_ROLE(), STAKING_SERVICE_ROLE_NAME, 1, true);
283
-
284
- Function[] memory functions;
285
- 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);
286
305
  functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
287
306
  functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
288
307
  functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
@@ -300,20 +319,31 @@ contract RegistryAdmin is
300
319
 
301
320
  // staking function authorization for pool service
302
321
  RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
303
- _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}));
304
329
 
305
330
  // staking function authorizations
306
- functions = new Function[](2);
331
+ functions = new FunctionInfo[](2);
307
332
  functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
308
333
  functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
309
334
  _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
310
335
 
311
336
  // staking store function authorizations
312
337
  RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
313
- _createRole(stakingRoleId, ADMIN_ROLE(), STAKING_TARGET_NAME, 1, true);
314
- _grantRoleToAccount(stakingRoleId, _staking);
315
-
316
- 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);
317
347
  functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
318
348
  functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
319
349
  functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
@@ -329,5 +359,7 @@ contract RegistryAdmin is
329
359
  functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
330
360
  functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
331
361
  _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
362
+
363
+ _grantRoleToAccount(stakingRoleId, _staking);
332
364
  }
333
365
  }
@@ -0,0 +1,27 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {RELEASE} from "../type/ObjectType.sol";
5
+ import {SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED/*, FREE*/} from "../type/StateId.sol";
6
+ import {Lifecycle} from "../shared/Lifecycle.sol";
7
+
8
+ contract ReleaseLifecycle is
9
+ Lifecycle
10
+ {
11
+ constructor() {
12
+ _setupLifecycle();
13
+ }
14
+
15
+ function _setupLifecycle()
16
+ internal
17
+ override
18
+ {
19
+ setInitialState(RELEASE(), SCHEDULED());
20
+
21
+ setStateTransition(RELEASE(), SCHEDULED(), DEPLOYING());
22
+ setStateTransition(RELEASE(), DEPLOYING(), DEPLOYING());
23
+ setStateTransition(RELEASE(), DEPLOYING(), ACTIVE());
24
+ setStateTransition(RELEASE(), ACTIVE(), PAUSED());
25
+ setStateTransition(RELEASE(), PAUSED(), ACTIVE());
26
+ }
27
+ }