@etherisc/gif-next 0.0.2-fd4931b-974 → 0.0.2-fd5f17a-625

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 (499) hide show
  1. package/README.md +51 -5
  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/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
  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/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
  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 +1342 -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 +65 -463
  28. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  29. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +291 -234
  30. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  31. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +88 -100
  32. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  33. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +102 -165
  34. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  35. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +171 -47
  36. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
  37. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1411 -0
  38. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
  39. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1171 -0
  40. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
  41. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1517 -0
  42. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
  43. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +1978 -0
  44. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
  45. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
  46. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  47. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +77 -78
  48. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  49. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +149 -52
  50. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  51. package/artifacts/contracts/instance/Instance.sol/Instance.json +75 -205
  52. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
  53. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
  54. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
  55. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
  56. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  57. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +410 -130
  58. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  59. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +191 -206
  60. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  61. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +60 -92
  62. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  63. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +387 -268
  64. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  65. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  66. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  67. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
  68. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
  69. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
  70. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
  71. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
  72. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
  73. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
  74. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
  75. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
  76. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  77. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  78. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  79. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  80. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  81. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  82. package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
  83. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
  84. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +979 -0
  85. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
  86. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
  87. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
  88. package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
  89. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
  90. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +765 -0
  91. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
  92. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
  93. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
  94. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +871 -0
  95. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
  96. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +922 -0
  97. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
  98. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +679 -0
  99. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
  100. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1248 -0
  101. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
  102. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
  103. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  104. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +440 -169
  105. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  106. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +132 -84
  107. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  108. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +225 -2
  109. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  110. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +56 -295
  111. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  112. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +255 -101
  113. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  114. package/artifacts/contracts/pool/Pool.sol/Pool.json +102 -627
  115. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  116. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +309 -251
  117. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  118. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +57 -81
  119. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  120. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -160
  121. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  122. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +55 -87
  123. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
  124. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1096 -0
  125. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
  126. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
  127. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  128. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +229 -168
  129. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  130. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +82 -94
  131. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  132. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +25 -1
  133. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  134. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +134 -1
  135. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  136. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +204 -120
  137. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  138. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +63 -44
  139. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  140. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +43 -84
  141. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
  142. package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +22 -3
  143. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  144. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +273 -301
  145. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  146. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +77 -93
  147. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  148. package/artifacts/contracts/product/PricingService.sol/PricingService.json +134 -243
  149. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +70 -110
  151. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  152. package/artifacts/contracts/product/Product.sol/Product.json +53 -390
  153. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
  154. package/artifacts/contracts/product/RiskService.sol/RiskService.json +583 -0
  155. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
  156. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +651 -0
  157. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  158. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
  159. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  160. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +302 -61
  161. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  162. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -184
  163. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  164. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  165. package/artifacts/contracts/registry/Registry.sol/Registry.json +645 -123
  166. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
  167. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1861 -0
  168. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  169. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +66 -124
  170. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  171. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +46 -81
  172. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
  173. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
  174. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
  175. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1169 -0
  176. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
  177. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
  178. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  179. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +46 -177
  180. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  181. package/artifacts/contracts/shared/Component.sol/Component.json +18 -223
  182. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  183. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +271 -164
  184. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  185. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +83 -95
  186. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  187. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +14 -107
  188. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  189. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +11 -31
  190. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  191. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +180 -1
  192. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  193. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +43 -42
  194. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  195. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
  196. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  197. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
  198. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  199. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
  200. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  201. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +0 -42
  202. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  203. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
  204. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  205. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  206. package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
  207. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
  208. package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
  209. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
  210. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
  211. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  212. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +50 -287
  213. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  214. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
  215. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  216. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
  217. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
  218. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
  219. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  220. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +10 -55
  221. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  222. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +4 -136
  223. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  224. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +11 -94
  225. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  226. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
  227. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  228. package/artifacts/contracts/shared/Service.sol/Service.json +14 -107
  229. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  230. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
  231. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
  232. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
  233. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  234. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +273 -605
  235. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  236. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +471 -62
  237. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
  238. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
  239. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  240. package/artifacts/contracts/staking/Staking.sol/Staking.json +332 -1004
  241. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
  242. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
  243. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  244. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +73 -203
  245. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  246. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +368 -39
  247. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  248. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +484 -213
  249. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  250. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +57 -84
  251. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
  252. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2242 -0
  253. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  254. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +318 -19
  255. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  256. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
  257. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  258. package/artifacts/contracts/type/Amount.sol/AmountLib.json +97 -4
  259. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  260. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -2
  261. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  262. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
  263. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  264. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
  265. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  266. package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
  267. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  268. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  269. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  270. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +28 -4
  271. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  272. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  273. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  274. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +149 -2
  275. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  276. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
  277. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  278. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
  279. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
  280. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
  281. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  282. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
  283. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  284. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
  285. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +100 -2
  287. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
  288. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
  289. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
  291. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
  293. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
  294. package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
  295. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
  297. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
  298. package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
  299. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
  301. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  303. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
  305. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
  306. package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
  307. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
  308. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +566 -0
  309. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
  310. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
  311. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
  312. package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
  313. package/contracts/authorization/AccessAdmin.sol +589 -0
  314. package/contracts/authorization/AccessManagerCloneable.sol +16 -0
  315. package/contracts/authorization/Authorization.sol +217 -0
  316. package/contracts/authorization/IAccess.sol +48 -0
  317. package/contracts/authorization/IAccessAdmin.sol +136 -0
  318. package/contracts/authorization/IAuthorization.sol +54 -0
  319. package/contracts/authorization/IModuleAuthorization.sol +21 -0
  320. package/contracts/authorization/IServiceAuthorization.sol +38 -0
  321. package/contracts/authorization/ModuleAuthorization.sol +78 -0
  322. package/contracts/authorization/ServiceAuthorization.sol +90 -0
  323. package/contracts/distribution/BasicDistribution.sol +138 -0
  324. package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
  325. package/contracts/distribution/Distribution.sol +146 -114
  326. package/contracts/distribution/DistributionService.sol +84 -46
  327. package/contracts/distribution/DistributionServiceManager.sol +2 -17
  328. package/contracts/distribution/IDistributionComponent.sol +26 -40
  329. package/contracts/distribution/IDistributionService.sol +24 -4
  330. package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
  331. package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
  332. package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
  333. package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
  334. package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
  335. package/contracts/instance/IInstance.sol +29 -43
  336. package/contracts/instance/IInstanceService.sol +36 -27
  337. package/contracts/instance/Instance.sol +117 -116
  338. package/contracts/instance/InstanceAdmin.sol +285 -0
  339. package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
  340. package/contracts/instance/InstanceReader.sol +82 -18
  341. package/contracts/instance/InstanceService.sol +206 -106
  342. package/contracts/instance/InstanceServiceManager.sol +2 -6
  343. package/contracts/instance/InstanceStore.sol +49 -22
  344. package/contracts/instance/base/BalanceStore.sol +11 -6
  345. package/contracts/instance/base/Cloneable.sol +2 -25
  346. package/contracts/instance/base/ObjectCounter.sol +21 -0
  347. package/contracts/instance/base/ObjectLifecycle.sol +111 -0
  348. package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
  349. package/contracts/instance/module/IAccess.sol +2 -10
  350. package/contracts/instance/module/IBundle.sol +1 -1
  351. package/contracts/instance/module/IComponents.sol +1 -7
  352. package/contracts/instance/module/IDistribution.sol +0 -1
  353. package/contracts/instance/module/IPolicy.sol +22 -22
  354. package/contracts/mock/Dip.sol +1 -1
  355. package/contracts/oracle/BasicOracle.sol +48 -0
  356. package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
  357. package/contracts/oracle/IOracle.sol +36 -0
  358. package/contracts/oracle/IOracleComponent.sol +33 -0
  359. package/contracts/oracle/IOracleService.sol +65 -0
  360. package/contracts/oracle/Oracle.sol +167 -0
  361. package/contracts/oracle/OracleService.sol +279 -0
  362. package/contracts/oracle/OracleServiceManager.sol +39 -0
  363. package/contracts/pool/BasicPool.sol +166 -0
  364. package/contracts/pool/BasicPoolAuthorization.sol +58 -0
  365. package/contracts/pool/BundleService.sol +211 -69
  366. package/contracts/pool/BundleServiceManager.sol +2 -5
  367. package/contracts/pool/IBundleService.sol +34 -6
  368. package/contracts/pool/IPoolComponent.sol +6 -60
  369. package/contracts/pool/IPoolService.sol +40 -27
  370. package/contracts/pool/Pool.sol +165 -138
  371. package/contracts/pool/PoolService.sol +199 -114
  372. package/contracts/pool/PoolServiceManager.sol +2 -5
  373. package/contracts/product/ApplicationService.sol +59 -65
  374. package/contracts/product/ApplicationServiceManager.sol +2 -2
  375. package/contracts/product/BasicProduct.sol +53 -0
  376. package/contracts/product/BasicProductAuthorization.sol +43 -0
  377. package/contracts/product/ClaimService.sol +132 -82
  378. package/contracts/product/ClaimServiceManager.sol +2 -2
  379. package/contracts/product/IApplicationService.sol +2 -1
  380. package/contracts/product/IClaimService.sol +32 -3
  381. package/contracts/product/IPolicyService.sol +28 -33
  382. package/contracts/product/IPricingService.sol +8 -8
  383. package/contracts/product/IProductComponent.sol +7 -10
  384. package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -2
  385. package/contracts/product/PolicyService.sol +289 -189
  386. package/contracts/product/PolicyServiceManager.sol +2 -5
  387. package/contracts/product/PricingService.sol +52 -52
  388. package/contracts/product/PricingServiceManager.sol +2 -5
  389. package/contracts/product/Product.sol +163 -115
  390. package/contracts/product/{ProductService.sol → RiskService.sol} +18 -45
  391. package/contracts/product/RiskServiceManager.sol +39 -0
  392. package/contracts/registry/ChainNft.sol +65 -31
  393. package/contracts/registry/IRegistry.sol +79 -29
  394. package/contracts/registry/IRegistryService.sol +7 -6
  395. package/contracts/registry/Registry.sol +354 -215
  396. package/contracts/registry/RegistryAdmin.sol +464 -0
  397. package/contracts/registry/RegistryService.sol +14 -90
  398. package/contracts/registry/RegistryServiceManager.sol +3 -22
  399. package/contracts/registry/ReleaseLifecycle.sol +27 -0
  400. package/contracts/registry/ReleaseRegistry.sol +491 -0
  401. package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
  402. package/contracts/registry/TokenRegistry.sol +58 -62
  403. package/contracts/shared/Component.sol +35 -53
  404. package/contracts/shared/ComponentService.sol +127 -81
  405. package/contracts/shared/ComponentServiceManager.sol +2 -2
  406. package/contracts/shared/ComponentVerifyingService.sol +14 -8
  407. package/contracts/shared/IComponent.sol +7 -11
  408. package/contracts/shared/IComponentService.sol +26 -9
  409. package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
  410. package/contracts/shared/IKeyValueStore.sol +2 -1
  411. package/contracts/shared/ILifecycle.sol +1 -2
  412. package/contracts/shared/INftOwnable.sol +1 -1
  413. package/contracts/shared/IPolicyHolder.sol +0 -9
  414. package/contracts/shared/IService.sol +9 -2
  415. package/contracts/shared/InitializableCustom.sol +177 -0
  416. package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
  417. package/contracts/shared/InstanceLinkedComponent.sol +51 -24
  418. package/contracts/shared/KeyValueStore.sol +7 -6
  419. package/contracts/shared/Lifecycle.sol +16 -60
  420. package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +3 -7
  421. package/contracts/shared/NftOwnable.sol +9 -20
  422. package/contracts/shared/PolicyHolder.sol +8 -53
  423. package/contracts/shared/Registerable.sol +4 -4
  424. package/contracts/shared/RegistryLinked.sol +3 -2
  425. package/contracts/shared/Service.sol +33 -28
  426. package/contracts/shared/TokenHandler.sol +100 -19
  427. package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
  428. package/contracts/staking/IStaking.sol +96 -41
  429. package/contracts/staking/IStakingService.sol +78 -40
  430. package/contracts/staking/StakeManagerLib.sol +224 -0
  431. package/contracts/staking/Staking.sol +305 -155
  432. package/contracts/staking/StakingLifecycle.sol +23 -0
  433. package/contracts/staking/StakingManager.sol +21 -23
  434. package/contracts/staking/StakingReader.sol +119 -28
  435. package/contracts/staking/StakingService.sol +190 -77
  436. package/contracts/staking/StakingServiceManager.sol +4 -4
  437. package/contracts/staking/StakingStore.sol +605 -0
  438. package/contracts/staking/TargetManagerLib.sol +83 -13
  439. package/contracts/type/AddressSet.sol +1 -1
  440. package/contracts/type/Amount.sol +24 -3
  441. package/contracts/type/Blocknumber.sol +20 -2
  442. package/contracts/type/Fee.sol +1 -1
  443. package/contracts/type/NftId.sol +9 -9
  444. package/contracts/type/NftIdSet.sol +1 -1
  445. package/contracts/type/ObjectType.sol +174 -68
  446. package/contracts/type/Referral.sol +2 -1
  447. package/contracts/type/RequestId.sol +75 -0
  448. package/contracts/type/RiskId.sol +1 -1
  449. package/contracts/type/RoleId.sol +104 -73
  450. package/contracts/type/Seconds.sol +39 -1
  451. package/contracts/type/Selector.sol +102 -0
  452. package/contracts/type/StateId.sol +13 -0
  453. package/contracts/type/String.sol +53 -0
  454. package/contracts/type/Timestamp.sol +17 -3
  455. package/contracts/type/UFixed.sol +34 -9
  456. package/contracts/type/Version.sol +4 -2
  457. package/contracts/{shared → upgradeability}/ProxyManager.sol +9 -6
  458. package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
  459. package/package.json +8 -5
  460. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
  461. package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
  462. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
  463. package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
  464. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
  465. package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
  466. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
  467. package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
  468. package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
  469. package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
  470. package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -673
  471. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
  472. package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -675
  473. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
  474. package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -298
  475. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
  476. package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1112
  477. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
  478. package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
  479. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
  480. package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
  481. package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
  482. package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
  483. package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
  484. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
  485. package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -314
  486. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
  487. package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -598
  488. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
  489. package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
  490. package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
  491. package/contracts/instance/InstanceAccessManager.sol +0 -543
  492. package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
  493. package/contracts/product/ProductServiceManager.sol +0 -42
  494. package/contracts/registry/RegistryAccessManager.sol +0 -167
  495. package/contracts/registry/ReleaseManager.sol +0 -530
  496. package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
  497. package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
  498. /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
  499. /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,530 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
- import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
6
- import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
7
-
8
- import {AccessManagerUpgradeableInitializeable} from "../shared/AccessManagerUpgradeableInitializeable.sol";
9
- import {ILifecycle} from "../shared/ILifecycle.sol";
10
- import {IRegisterable} from "../shared/IRegisterable.sol";
11
- import {IRegistry} from "./IRegistry.sol";
12
- import {IRegistryService} from "./IRegistryService.sol";
13
- import {IService} from "../shared/IService.sol";
14
- import {IStaking} from "../staking/IStaking.sol";
15
- import {NftId} from "../type/NftId.sol";
16
- import {ObjectType, ObjectTypeLib, zeroObjectType, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
17
- import {Registry} from "./Registry.sol";
18
- import {RegistryAccessManager} from "./RegistryAccessManager.sol";
19
- import {RoleId, ADMIN_ROLE} from "../type/RoleId.sol";
20
- import {ServiceAuthorizationsLib} from "./ServiceAuthorizationsLib.sol";
21
- import {StateId, INITIAL, SCHEDULED, DEPLOYING, ACTIVE} from "../type/StateId.sol";
22
- import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
23
- import {TokenRegistry} from "./TokenRegistry.sol";
24
- import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
25
-
26
- // gif admin is not technical, should sent simple txs
27
- // foundation creates
28
- // other guy deployes
29
- // other guy checks (can precompute addresses and compare with what deployed)
30
- // foundation activates
31
- // TODO add function to deactivate releases
32
- // TODO in next pr add getVersion() to releaseAccessManager only, set in initialize()
33
- // TODO in next pr make single base for registry access manager, release access manager and instance access manager
34
-
35
- contract ReleaseManager is
36
- AccessManaged,
37
- ILifecycle
38
- {
39
- using ObjectTypeLib for ObjectType;
40
-
41
- event LogReleaseCreation(VersionPart version, bytes32 salt, AccessManagerUpgradeableInitializeable accessManager);
42
- event LogReleaseActivation(VersionPart version);
43
-
44
- // createNextRelease
45
- error ErrorReleaseManagerReleaseCreationDisallowed(StateId currentStateId);
46
-
47
- // prepareRelease
48
- error ErrorReleaseManagerReleasePreparationDisallowed(StateId currentStateId);
49
- error ErrorReleaseManagerReleaseEmpty();
50
- error ErrorReleaseManagerReleaseAlreadyCreated(VersionPart version);
51
-
52
- // register staking
53
- error ErrorReleaseManagerStakingAlreadySet(address stakingAddress);
54
-
55
- // registerService
56
- error ErrorReleaseManagerServiceRegistrationDisallowed(StateId currentStateId);
57
- error ErrorReleaseManagerNotService(IService service);
58
- error ErrorReleaseManagerServiceAddressInvalid(IService given, address expected);
59
-
60
- // activateNextRelease
61
- error ErrorReleaseManagerActivationDisallowed(StateId currentStateId);
62
- error ErrorReleaseManagerReleaseNotCreated(VersionPart releaseVersion);
63
- error ErrorReleaseManagerReleaseRegistrationNotFinished(VersionPart releaseVersion, uint awaitingRegistration);
64
- error ErrorReleaseManagerReleaseAlreadyActivated(VersionPart releaseVersion);
65
-
66
- // _verifyService
67
- error ErrorReleaseManagerServiceReleaseAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
68
- error ErrorReleaseManagerServiceReleaseVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
69
-
70
- // _verifyServiceInfo
71
- error ErrorReleaseManagerServiceInfoAddressInvalid(IService service, address expected);
72
- error ErrorReleaseManagerServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
73
- error ErrorReleaseManagerServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
74
- error ErrorReleaseManagerServiceInfoOwnerInvalid(IService service, address expected, address found);
75
- error ErrorReleaseManagerServiceSelfRegistration(IService service);
76
- error ErrorReleaseManagerServiceOwnerRegistered(IService service, address owner);
77
-
78
- // _verifyServiceAuthorizations
79
- error ErrorReleaseManagerServiceRoleInvalid(address service, RoleId role);
80
-
81
- RegistryAccessManager public immutable _accessManager;
82
- Registry public immutable _registry;
83
- TokenRegistry private immutable _tokenRegistry;
84
- IStaking private _staking;
85
-
86
- mapping(VersionPart version => AccessManagerUpgradeableInitializeable accessManager) internal _releaseAccessManager;
87
- mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
88
- mapping(address registryService => bool isActive) internal _active;// have access to registry
89
-
90
- VersionPart immutable internal _initial;// first active version
91
- VersionPart internal _latest; // latest active version
92
- VersionPart internal _next; // version to create and activate
93
- StateId internal _state; // current state of release manager
94
-
95
- uint256 internal _awaitingRegistration; // "services left to register" counter
96
-
97
-
98
- constructor(
99
- RegistryAccessManager accessManager,
100
- VersionPart initialVersion,
101
- address dipTokenAddress
102
- )
103
- AccessManaged(accessManager.authority())
104
- {
105
- _accessManager = accessManager;
106
- _initial = initialVersion;
107
- _next = VersionPartLib.toVersionPart(initialVersion.toInt() - 1);
108
- _state = getInitialState(RELEASE());
109
-
110
- _registry = new Registry();
111
- _tokenRegistry = new TokenRegistry(
112
- address(_registry),
113
- dipTokenAddress);
114
-
115
- _registry.setTokenRegistry(address(_tokenRegistry));
116
- }
117
-
118
-
119
- /// @dev skips previous release if was not activated
120
- /// sets release manager into state SCHEDULED
121
- function createNextRelease()
122
- external
123
- restricted // GIF_ADMIN_ROLE
124
- returns(VersionPart version)
125
- {
126
- if (!isValidTransition(RELEASE(), _state, SCHEDULED())) {
127
- revert ErrorReleaseManagerReleaseCreationDisallowed(_state);
128
- }
129
-
130
- _next = VersionPartLib.toVersionPart(_next.toInt() + 1);
131
- _awaitingRegistration = 0;
132
- _state = SCHEDULED();
133
- }
134
-
135
-
136
- function prepareNextRelease(
137
- address[] memory addresses,
138
- RoleId[][] memory serviceRoles,
139
- RoleId[][] memory functionRoles,
140
- bytes4[][][] memory selectors,
141
- bytes32 salt
142
- )
143
- external
144
- restricted() // GIF_MANAGER_ROLE
145
- returns(
146
- address releaseAccessManagerAddress,
147
- VersionPart version,
148
- bytes32 releaseSalt
149
- )
150
- {
151
- if (!isValidTransition(RELEASE(), _state, DEPLOYING())) {
152
- revert ErrorReleaseManagerReleasePreparationDisallowed(_state);
153
- }
154
-
155
- if(addresses.length == 0) {
156
- revert ErrorReleaseManagerReleaseEmpty();
157
- }
158
-
159
- if(_awaitingRegistration > 0) {
160
- revert ErrorReleaseManagerReleaseAlreadyCreated(version);
161
- }
162
-
163
- _verifyReleaseAuthorizations(addresses, serviceRoles, functionRoles, selectors);
164
-
165
- version = getNextVersion();
166
-
167
- _releaseInfo[version].version = version;
168
- _releaseInfo[version].addresses = addresses;
169
- _releaseInfo[version].serviceRoles = serviceRoles;
170
- _releaseInfo[version].functionRoles = functionRoles;
171
- _releaseInfo[version].selectors = selectors;
172
- _awaitingRegistration = addresses.length;
173
- _state = DEPLOYING();
174
-
175
- version = getNextVersion();
176
- // ensures unique salt
177
- releaseSalt = keccak256(
178
- bytes.concat(
179
- bytes32(version.toInt()),
180
- salt));
181
-
182
- releaseAccessManagerAddress = Clones.cloneDeterministic(_accessManager.authority(), releaseSalt);
183
- AccessManagerUpgradeableInitializeable releaseAccessManager = AccessManagerUpgradeableInitializeable(releaseAccessManagerAddress);
184
-
185
- _releaseAccessManager[version] = releaseAccessManager;
186
-
187
- releaseAccessManager.initialize(address(this));
188
-
189
- emit LogReleaseCreation(version, releaseSalt, releaseAccessManager);
190
- }
191
-
192
-
193
- function registerStaking(
194
- address stakingAddress,
195
- address stakingOwner
196
- )
197
- external
198
- restricted // GIF_ADMIN_ROLE
199
- returns(NftId nftId)
200
- {
201
- // TODO add verify staking contract
202
- _staking = IStaking(stakingAddress);
203
-
204
- nftId = _registry.registerStaking(
205
- stakingAddress,
206
- stakingOwner);
207
-
208
- _staking.linkToRegisteredNftId();
209
- }
210
-
211
-
212
- function registerService(IService service)
213
- external
214
- restricted // GIF_MANAGER_ROLE
215
- returns(NftId nftId)
216
- {
217
- if (!isValidTransition(RELEASE(), _state, DEPLOYING())) {
218
- revert ErrorReleaseManagerServiceRegistrationDisallowed(_state);
219
- }
220
-
221
- (
222
- IRegistry.ObjectInfo memory info,
223
- ObjectType domain,
224
- VersionPart version
225
- ) = _verifyService(service);
226
-
227
- require(_awaitingRegistration > 0, "_awaitingRegistration == 0");
228
-
229
- uint serviceIdx = _awaitingRegistration - 1;
230
- address serviceAddress = _releaseInfo[version].addresses[serviceIdx];
231
- // TODO temp, while typescript addresses computation is not implemented
232
- /*if(address(service) != serviceAddress) {
233
- revert ErrorReleaseManagerServiceAddressInvalid(service, serviceAddress);
234
- }*/
235
-
236
- _setServiceAuthorizations(
237
- _releaseAccessManager[version],
238
- // TODO temp, while typescript addresses computation is not implemented
239
- address(service),//serviceAddress,
240
- _releaseInfo[version].serviceRoles[serviceIdx],
241
- _releaseInfo[version].functionRoles[serviceIdx],
242
- _releaseInfo[version].selectors[serviceIdx]);
243
-
244
- // TODO decide for one of the approaches
245
- // // service to service authorization
246
- // ServiceAuthorizationsLib.ServiceAuthorization memory authz = ServiceAuthorizationsLib.getAuthorizations(domain);
247
- // for(uint8 idx = 0; idx < authz.authorizedRole.length; idx++) {
248
- // _accessManager.setTargetFunctionRole(
249
- // address(service),
250
- // authz.authorizedSelectors[idx],
251
- // authz.authorizedRole[idx]);
252
- // }
253
-
254
- _awaitingRegistration = serviceIdx;
255
- _state = DEPLOYING();
256
-
257
- // checked in registry
258
- _releaseInfo[version].domains.push(domain);
259
-
260
- nftId = _registry.registerService(info, version, domain);
261
-
262
- service.linkToRegisteredNftId();
263
- }
264
-
265
-
266
- function activateNextRelease()
267
- external
268
- restricted // GIF_ADMIN_ROLE
269
- {
270
- if (!isValidTransition(RELEASE(), _state, ACTIVE())) {
271
- revert ErrorReleaseManagerActivationDisallowed(_state);
272
- }
273
-
274
- VersionPart version = _next;
275
- address service = _registry.getServiceAddress(REGISTRY(), version);
276
-
277
- // release exists, registry service is a MUST
278
- //if(_releaseAccessManager[version] == address(0)) {
279
- if(service == address(0)) {
280
- revert ErrorReleaseManagerReleaseNotCreated(version);
281
- }
282
-
283
- // release fully deployed
284
- if(_awaitingRegistration > 0) {
285
- revert ErrorReleaseManagerReleaseRegistrationNotFinished(version, _awaitingRegistration);
286
- }
287
-
288
- // release is not activated
289
- if(_releaseInfo[version].activatedAt.gtz()) {
290
- revert ErrorReleaseManagerReleaseAlreadyActivated(version);
291
- }
292
-
293
- _latest = version;
294
- _state = ACTIVE();
295
-
296
- _active[service] = true;
297
- _releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
298
-
299
- emit LogReleaseActivation(version);
300
- }
301
-
302
- //--- view functions ----------------------------------------------------//
303
-
304
- function predictDeterministicAddress(
305
- address implementation,
306
- bytes32 salt,
307
- address deployer
308
- ) external pure returns (address predicted) {
309
- return Clones.predictDeterministicAddress(implementation, salt, deployer);
310
- }
311
-
312
- function isActiveRegistryService(address service) external view returns(bool) {
313
- return _active[service];
314
- }
315
-
316
- function isValidRelease(VersionPart version) external view returns(bool) {
317
- return _releaseInfo[version].activatedAt.gtz();
318
- }
319
-
320
- function getRegistryAddress() external view returns(address) {
321
- return (address(_registry));
322
- }
323
-
324
- function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
325
- return _releaseInfo[version];
326
- }
327
-
328
- function getNextVersion() public view returns(VersionPart) {
329
- return _next;
330
- }
331
-
332
- function getLatestVersion() external view returns(VersionPart) {
333
- return _latest;
334
- }
335
-
336
- function getInitialVersion() external view returns(VersionPart) {
337
- return _initial;
338
- }
339
-
340
- function getState() external view returns (StateId stateId) {
341
- return _state;
342
- }
343
-
344
- function getRemainingServicesToRegister() external view returns (uint256 services) {
345
- return _awaitingRegistration;
346
- }
347
-
348
- function getReleaseAccessManager(VersionPart version) external view returns(AccessManagerUpgradeableInitializeable) {
349
- return _releaseAccessManager[version];
350
- }
351
-
352
- //--- ILifecycle -----------------------------------------------------------//
353
-
354
- function hasLifecycle(ObjectType objectType) external view returns (bool) { return objectType == RELEASE(); }
355
-
356
- function getInitialState(ObjectType objectType) public view returns (StateId stateId) {
357
- if (objectType == RELEASE()) {
358
- stateId = INITIAL();
359
- }
360
- }
361
-
362
- function isValidTransition(
363
- ObjectType objectType,
364
- StateId fromId,
365
- StateId toId
366
- )
367
- public
368
- view
369
- returns (bool isValid)
370
- {
371
- if (objectType != RELEASE()) { return false; }
372
-
373
- if (fromId == INITIAL() && toId == SCHEDULED()) { return true; }
374
- if (fromId == SCHEDULED() && toId == DEPLOYING()) { return true; }
375
- if (fromId == DEPLOYING() && toId == SCHEDULED()) { return true; }
376
- if (fromId == DEPLOYING() && toId == DEPLOYING()) { return true; }
377
- if (fromId == DEPLOYING() && toId == ACTIVE()) { return true; }
378
-
379
- return false;
380
- }
381
-
382
- //--- private functions ----------------------------------------------------//
383
-
384
- function _verifyService(IService service)
385
- internal
386
- returns(
387
- IRegistry.ObjectInfo memory serviceInfo,
388
- ObjectType serviceDomain,
389
- VersionPart serviceVersion
390
- )
391
- {
392
- if(!service.supportsInterface(type(IService).interfaceId)) {
393
- revert ErrorReleaseManagerNotService(service);
394
- }
395
-
396
- address owner = msg.sender;
397
- address serviceAuthority = service.authority();
398
- serviceVersion = service.getVersion().toMajorPart();
399
- serviceDomain = service.getDomain();// checked in registry
400
- serviceInfo = service.getInitialInfo();
401
-
402
- _verifyServiceInfo(service, serviceInfo, owner);
403
-
404
- VersionPart releaseVersion = getNextVersion(); // never 0
405
- address releaseAuthority = address(_releaseAccessManager[releaseVersion]); // can be zero if registering service when release is not created
406
-
407
- // IMPORTANT: can not guarantee service access is actually controlled by authority
408
- if(serviceAuthority != releaseAuthority) {
409
- revert ErrorReleaseManagerServiceReleaseAuthorityMismatch(
410
- service,
411
- serviceAuthority,
412
- releaseAuthority);
413
- }
414
-
415
- if(serviceVersion != releaseVersion) {
416
- revert ErrorReleaseManagerServiceReleaseVersionMismatch(
417
- service,
418
- serviceVersion,
419
- releaseVersion);
420
- }
421
- }
422
-
423
-
424
- function _verifyServiceInfo(
425
- IService service,
426
- IRegistry.ObjectInfo memory info,
427
- address expectedOwner // assume always valid, can not be 0
428
- )
429
- internal
430
- view
431
- {
432
- if(info.objectAddress != address(service)) {
433
- revert ErrorReleaseManagerServiceInfoAddressInvalid(service, address(service));
434
- }
435
-
436
- if(info.isInterceptor != false) { // service is never interceptor
437
- revert ErrorReleaseManagerServiceInfoInterceptorInvalid(service, info.isInterceptor);
438
- }
439
-
440
- if(info.objectType != SERVICE()) {// type is checked in registry anyway...but service logic may depend on expected value
441
- revert ErrorReleaseManagerServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
442
- }
443
-
444
- address owner = info.initialOwner;
445
-
446
- if(owner != expectedOwner) { // registerable owner protection
447
- revert ErrorReleaseManagerServiceInfoOwnerInvalid(service, expectedOwner, owner);
448
- }
449
-
450
- if(owner == address(service)) {
451
- revert ErrorReleaseManagerServiceSelfRegistration(service);
452
- }
453
-
454
- if(_registry.isRegistered(owner)) {
455
- revert ErrorReleaseManagerServiceOwnerRegistered(service, owner);
456
- }
457
- }
458
-
459
-
460
- function _verifyReleaseAuthorizations(
461
- address[] memory serviceAddress,
462
- RoleId[][] memory serviceRoles,
463
- RoleId[][] memory functionRoles,
464
- bytes4[][][] memory selectors
465
- )
466
- internal
467
- view
468
- {
469
- for(uint serviceIdx = 0; serviceIdx < serviceAddress.length; serviceIdx++)
470
- {
471
- for(uint roleIdx = 0; roleIdx < serviceRoles[serviceIdx].length; roleIdx++)
472
- {
473
- RoleId role = serviceRoles[serviceIdx][roleIdx];
474
- if(role == ADMIN_ROLE()) {
475
- revert ErrorReleaseManagerServiceRoleInvalid(serviceAddress[serviceIdx], role);
476
- }
477
- }
478
- }
479
-
480
- // TODO no duplicate service "domain" role per release
481
- // TODO no duplicate service roles per service
482
- // TODO no duplicate service function roles per service
483
- // TODO no duplicate service function selectors per service
484
- }
485
-
486
- function _setServiceAuthorizations(
487
- IAccessManager accessManager,
488
- address serviceAddress,
489
- RoleId[] memory serviceRoles,
490
- RoleId[] memory functionRoles,
491
- bytes4[][] memory selectors
492
- )
493
- internal
494
- {
495
- for(uint idx = 0; idx < functionRoles.length; idx++)
496
- {
497
- accessManager.setTargetFunctionRole(
498
- serviceAddress,
499
- selectors[idx],
500
- functionRoles[idx].toInt());
501
-
502
- // TODO check/figure out which approach to take
503
- // ObjectType domain = config[idx].serviceDomain;
504
- // // not "registry service" / zero domain
505
- // if(
506
- // domain == REGISTRY() ||
507
- // domain.eqz()
508
- // ) { revert ConfigServiceDomainInvalid(idx, domain); }
509
-
510
- // bytes4[] memory selectors = config[idx].authorizedSelectors;
511
-
512
- // // TODO can be zero -> e.g. duplicate domain, first with zero selector, second with non zero selector -> need to check _release[version].domains.contains(domain) instead
513
- // // no overwrite
514
- // if(_selectors[version][domain].length > 0) {
515
- // revert SelectorAlreadyExists(version, domain);
516
- // }
517
-
518
- // _selectors[version][domain] = selectors;
519
- // _release[version].domains.push(domain);
520
- }
521
-
522
- for(uint idx = 0; idx < serviceRoles.length; idx++)
523
- {
524
- accessManager.grantRole(
525
- serviceRoles[idx].toInt(),
526
- serviceAddress,
527
- 0);
528
- }
529
- }
530
- }
@@ -1,173 +0,0 @@
1
- // SPDX-License-Identifier: Apache-2.0
2
- pragma solidity ^0.8.20;
3
-
4
- import {
5
- RoleId,
6
- PRODUCT_OWNER_ROLE, POOL_OWNER_ROLE, ORACLE_OWNER_ROLE,
7
- APPLICATION_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, COMPONENT_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, INSTANCE_SERVICE_ROLE, POLICY_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, STAKING_SERVICE_ROLE
8
- } from "../../contracts/type/RoleId.sol";
9
-
10
- import {
11
- ObjectType,
12
- REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE
13
- } from "../../contracts/type/ObjectType.sol";
14
-
15
- import {ComponentService} from "../shared/ComponentService.sol";
16
- import {InstanceService} from "../instance/InstanceService.sol";
17
- import {RegistryService} from "./RegistryService.sol";
18
-
19
- library ServiceAuthorizationsLib {
20
-
21
- struct ServiceAuthorization {
22
- RoleId[] authorizedRole;
23
- bytes4[][] authorizedSelectors;
24
- }
25
-
26
- /// @dev returns the full list of gif service domains for this release.
27
- /// services need to be registered for the release in revers order of this list.
28
- function getDomains()
29
- external
30
- pure
31
- returns(
32
- ObjectType[] memory domain
33
- )
34
- {
35
- domain = new ObjectType[](11);
36
- domain[0] = POLICY();
37
- domain[1] = APPLICATION();
38
- domain[2] = CLAIM();
39
- domain[3] = PRODUCT();
40
- domain[4] = POOL();
41
- domain[5] = BUNDLE();
42
- domain[6] = PRICE();
43
- domain[7] = DISTRIBUTION();
44
- domain[8] = COMPONENT();
45
- domain[9] = INSTANCE();
46
- domain[10] = STAKING();
47
- }
48
-
49
-
50
- /// @dev given the target domain this function returns the list of authorized function signatures per authorized domain.
51
- function getAuthorizations(ObjectType domain)
52
- external
53
- pure
54
- returns(
55
- ServiceAuthorization memory authorizations
56
- )
57
- {
58
- if(domain == REGISTRY()) { return _getRegistryServiceAuthorization(); }
59
- if(domain == INSTANCE()) { return _getInstanceServiceAuthorization(); }
60
- if(domain == COMPONENT()) { return _getComponentServiceAuthorization(); }
61
-
62
- // disallows access to all functions with a restricted modifier
63
- return _getDefaultAuthorizations();
64
- }
65
-
66
-
67
- /// @dev registry service authorization.
68
- /// returns all authorized function signatures per authorized domain.
69
- /// all listed functions MUST be implemented with a restricted modifier
70
- function _getRegistryServiceAuthorization()
71
- internal
72
- pure
73
- returns (ServiceAuthorization memory authz)
74
- {
75
- uint8 authorizedRoles = 8;
76
- authz.authorizedRole = new RoleId[](authorizedRoles);
77
- authz.authorizedSelectors = new bytes4[][](authorizedRoles);
78
-
79
- // TODO role ids need to have a stable setup, this is not the case currently
80
- authz.authorizedRole[0] = APPLICATION_SERVICE_ROLE();
81
- authz.authorizedSelectors[0] = new bytes4[](1);
82
- authz.authorizedSelectors[0][0] = RegistryService.registerPolicy.selector;
83
-
84
- authz.authorizedRole[1] = POOL_SERVICE_ROLE();
85
- authz.authorizedSelectors[1] = new bytes4[](1);
86
- authz.authorizedSelectors[1][0] = RegistryService.registerPool.selector;
87
-
88
- authz.authorizedRole[2] = BUNDLE_SERVICE_ROLE();
89
- authz.authorizedSelectors[2] = new bytes4[](1);
90
- authz.authorizedSelectors[2][0] = RegistryService.registerBundle.selector;
91
-
92
- authz.authorizedRole[3] = DISTRIBUTION_SERVICE_ROLE();
93
- authz.authorizedSelectors[3] = new bytes4[](2);
94
- authz.authorizedSelectors[3][0] = RegistryService.registerDistribution.selector;
95
- authz.authorizedSelectors[3][1] = RegistryService.registerDistributor.selector;
96
-
97
- authz.authorizedRole[4] = COMPONENT_SERVICE_ROLE();
98
- authz.authorizedSelectors[4] = new bytes4[](1);
99
- authz.authorizedSelectors[4][0] = RegistryService.registerComponent.selector;
100
-
101
- authz.authorizedRole[5] = INSTANCE_SERVICE_ROLE();
102
- authz.authorizedSelectors[5] = new bytes4[](1);
103
- authz.authorizedSelectors[5][0] = RegistryService.registerInstance.selector;
104
-
105
- authz.authorizedRole[6] = STAKING_SERVICE_ROLE();
106
- authz.authorizedSelectors[6] = new bytes4[](1);
107
- authz.authorizedSelectors[6][0] = RegistryService.registerStaking.selector;
108
-
109
- authz.authorizedRole[7] = PRODUCT_SERVICE_ROLE();
110
- authz.authorizedSelectors[7] = new bytes4[](1);
111
- authz.authorizedSelectors[7][0] = RegistryService.registerProduct.selector;
112
- }
113
-
114
-
115
- /// @dev instance service authorization.
116
- /// returns all authorized function signatures per authorized domain.
117
- /// all listed functions MUST be implemented with a restricted modifier
118
- function _getInstanceServiceAuthorization()
119
- internal
120
- pure
121
- returns (ServiceAuthorization memory authz)
122
- {
123
- uint8 authorizedRoles = 1;
124
- authz.authorizedRole = new RoleId[](authorizedRoles);
125
- authz.authorizedSelectors = new bytes4[][](authorizedRoles);
126
-
127
- authz.authorizedRole[0] = COMPONENT_SERVICE_ROLE();
128
- authz.authorizedSelectors[0] = new bytes4[](1);
129
- authz.authorizedSelectors[0][0] = InstanceService.createComponentTarget.selector;
130
- }
131
-
132
-
133
- /// @dev component service authorization.
134
- /// returns all authorized function signatures per authorized domain.
135
- /// all listed functions MUST be implemented with a restricted modifier
136
- function _getComponentServiceAuthorization()
137
- internal
138
- pure
139
- returns (ServiceAuthorization memory authz)
140
- {
141
- uint8 authorizedRoles = 4;
142
- authz.authorizedRole = new RoleId[](authorizedRoles);
143
- authz.authorizedSelectors = new bytes4[][](authorizedRoles);
144
-
145
- authz.authorizedRole[0] = POLICY_SERVICE_ROLE();
146
- authz.authorizedSelectors[0] = new bytes4[](1);
147
- authz.authorizedSelectors[0][0] = ComponentService.increaseProductFees.selector;
148
-
149
- authz.authorizedRole[1] = DISTRIBUTION_SERVICE_ROLE();
150
- authz.authorizedSelectors[1] = new bytes4[](1);
151
- authz.authorizedSelectors[1][0] = ComponentService.increaseDistributionBalance.selector;
152
-
153
- authz.authorizedRole[2] = POOL_SERVICE_ROLE();
154
- authz.authorizedSelectors[2] = new bytes4[](1);
155
- authz.authorizedSelectors[2][0] = ComponentService.increasePoolBalance.selector;
156
-
157
- authz.authorizedRole[3] = BUNDLE_SERVICE_ROLE();
158
- authz.authorizedSelectors[3] = new bytes4[](1);
159
- authz.authorizedSelectors[3][0] = ComponentService.increaseBundleBalance.selector;
160
- }
161
-
162
-
163
- function _getDefaultAuthorizations()
164
- internal
165
- pure
166
- returns (ServiceAuthorization memory authz)
167
- {
168
- uint8 authorizedRoles = 0;
169
- authz.authorizedRole = new RoleId[](authorizedRoles);
170
- authz.authorizedSelectors = new bytes4[][](authorizedRoles);
171
- }
172
- }
173
-