@etherisc/gif-next 0.0.2-da2c7dd-538 → 0.0.2-da87b00-860

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 (469) hide show
  1. package/README.md +57 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +106 -38
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +91 -45
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +58 -6
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +573 -288
  10. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
  11. package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
  12. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
  13. package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +8 -39
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +295 -47
  16. package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
  17. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
  18. package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +452 -210
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +119 -14
  21. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
  22. package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
  23. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
  24. package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
  25. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
  26. package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +64 -142
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +275 -59
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +21 -88
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +448 -148
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +143 -77
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +20 -87
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +296 -20
  39. package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
  40. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
  41. package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +109 -100
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +274 -58
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +145 -124
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +274 -58
  48. package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
  49. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
  50. package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +126 -166
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +274 -58
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +39 -63
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +130 -138
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +274 -58
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +333 -180
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +274 -58
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +427 -28
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +335 -12
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +430 -62
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +822 -402
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +299 -58
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +619 -402
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +367 -64
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -55
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +448 -374
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
  87. package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
  88. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
  89. package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
  90. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
  91. package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
  92. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
  93. package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +20 -20
  96. package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
  97. package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
  98. package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
  99. package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
  100. package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
  101. package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
  102. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
  103. package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +33 -35
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +294 -53
  106. package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
  107. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
  108. package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -21
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -21
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +87 -42
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +96 -50
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +59 -69
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +274 -58
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +300 -123
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -58
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +186 -33
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +29 -31
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +238 -19
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +29 -31
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +100 -34
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +346 -87
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +121 -63
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +273 -50
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +103 -41
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +46 -48
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +274 -58
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +113 -75
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +208 -1
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +50 -0
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +40 -42
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +224 -18
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +511 -21
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +118 -72
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +116 -114
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +100 -70
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +40 -42
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +258 -44
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +84 -42
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
  182. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
  184. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
  185. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  186. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  187. package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
  188. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  189. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +704 -472
  190. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  191. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
  192. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  193. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +47 -18
  194. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +76 -38
  196. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
  197. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +710 -407
  198. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  199. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  200. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +184 -128
  202. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  204. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  205. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
  206. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  207. package/artifacts/contracts/shared/Component.sol/Component.json +19 -21
  208. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  209. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +212 -232
  210. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -71
  212. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +130 -39
  214. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  216. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
  218. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  219. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -21
  220. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +119 -147
  222. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -21
  224. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
  226. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  227. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  228. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  229. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  230. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  231. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
  232. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
  235. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  236. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  237. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -21
  239. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  240. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  241. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  242. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  243. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  244. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  246. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  247. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  248. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  249. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
  250. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  251. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  252. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  253. package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
  254. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  255. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
  258. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
  260. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  261. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1450 -140
  262. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +161 -110
  264. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
  265. package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +1624 -272
  268. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
  270. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +135 -68
  272. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
  274. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +200 -157
  276. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +86 -52
  278. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1600 -818
  280. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
  281. package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +159 -87
  284. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  285. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.json +10 -10
  287. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
  289. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
  290. package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
  291. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  293. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  295. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Fee.sol/FeeLib.json +93 -37
  297. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  298. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  299. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
  300. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
  301. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
  303. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  304. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  305. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  307. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  309. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  311. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  313. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
  317. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  318. package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
  319. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  320. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  323. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +60 -36
  328. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +56 -2
  332. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  334. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  336. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  338. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  340. package/contracts/accounting/AccountingService.sol +15 -3
  341. package/contracts/accounting/IAccountingService.sol +4 -2
  342. package/contracts/authorization/AccessAdmin.sol +389 -298
  343. package/contracts/authorization/AccessAdminLib.sol +396 -0
  344. package/contracts/authorization/AccessManagerCloneable.sol +40 -31
  345. package/contracts/authorization/Authorization.sol +60 -228
  346. package/contracts/authorization/IAccess.sol +25 -7
  347. package/contracts/authorization/IAccessAdmin.sol +81 -80
  348. package/contracts/authorization/IAuthorization.sol +3 -51
  349. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  350. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  351. package/contracts/distribution/BasicDistribution.sol +6 -6
  352. package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
  353. package/contracts/distribution/Distribution.sol +10 -52
  354. package/contracts/distribution/DistributionService.sol +154 -64
  355. package/contracts/distribution/IDistributionComponent.sol +3 -10
  356. package/contracts/distribution/IDistributionService.sol +24 -10
  357. package/contracts/examples/fire/FirePool.sol +0 -4
  358. package/contracts/examples/fire/FireProduct.sol +6 -10
  359. package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
  360. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  361. package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
  362. package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -23
  363. package/contracts/instance/IInstance.sol +87 -12
  364. package/contracts/instance/IInstanceService.sol +52 -7
  365. package/contracts/instance/Instance.sol +148 -48
  366. package/contracts/instance/InstanceAdmin.sol +227 -281
  367. package/contracts/instance/InstanceAuthorizationV3.sol +79 -26
  368. package/contracts/instance/InstanceReader.sol +375 -380
  369. package/contracts/instance/InstanceService.sol +230 -134
  370. package/contracts/instance/RiskSet.sol +10 -2
  371. package/contracts/instance/base/BalanceStore.sol +4 -6
  372. package/contracts/instance/base/ObjectLifecycle.sol +2 -6
  373. package/contracts/instance/module/IBundle.sol +6 -5
  374. package/contracts/instance/module/IComponents.sol +16 -5
  375. package/contracts/instance/module/IDistribution.sol +19 -7
  376. package/contracts/instance/module/IPolicy.sol +28 -8
  377. package/contracts/instance/module/IRisk.sol +2 -0
  378. package/contracts/oracle/BasicOracle.sol +2 -4
  379. package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
  380. package/contracts/oracle/IOracle.sol +9 -4
  381. package/contracts/oracle/Oracle.sol +2 -4
  382. package/contracts/oracle/OracleService.sol +8 -8
  383. package/contracts/pool/BasicPool.sol +3 -16
  384. package/contracts/pool/BasicPoolAuthorization.sol +10 -5
  385. package/contracts/pool/BundleService.sol +34 -43
  386. package/contracts/pool/IBundleService.sol +14 -13
  387. package/contracts/pool/IPoolService.sol +7 -2
  388. package/contracts/pool/Pool.sol +4 -16
  389. package/contracts/pool/PoolLib.sol +127 -2
  390. package/contracts/pool/PoolService.sol +41 -184
  391. package/contracts/product/ApplicationService.sol +83 -15
  392. package/contracts/product/BasicProduct.sol +1 -3
  393. package/contracts/product/BasicProductAuthorization.sol +11 -4
  394. package/contracts/product/ClaimService.sol +56 -58
  395. package/contracts/product/IApplicationService.sol +24 -2
  396. package/contracts/product/IClaimService.sol +5 -4
  397. package/contracts/product/IPolicyService.sol +9 -2
  398. package/contracts/product/IPricingService.sol +1 -0
  399. package/contracts/product/IRiskService.sol +21 -3
  400. package/contracts/product/PolicyService.sol +31 -68
  401. package/contracts/product/PolicyServiceLib.sol +79 -5
  402. package/contracts/product/PricingService.sol +33 -31
  403. package/contracts/product/Product.sol +38 -14
  404. package/contracts/product/RiskService.sol +55 -9
  405. package/contracts/registry/IRegistry.sol +15 -9
  406. package/contracts/registry/IRelease.sol +6 -3
  407. package/contracts/registry/Registry.sol +15 -9
  408. package/contracts/registry/RegistryAdmin.sol +100 -263
  409. package/contracts/registry/RegistryAuthorization.sol +336 -0
  410. package/contracts/registry/RegistryService.sol +1 -1
  411. package/contracts/registry/ReleaseAdmin.sol +62 -112
  412. package/contracts/registry/ReleaseRegistry.sol +57 -43
  413. package/contracts/registry/ServiceAuthorizationV3.sol +128 -33
  414. package/contracts/registry/TokenRegistry.sol +56 -52
  415. package/contracts/shared/Component.sol +18 -31
  416. package/contracts/shared/ComponentService.sol +239 -244
  417. package/contracts/shared/ContractLib.sol +134 -75
  418. package/contracts/shared/IComponent.sol +1 -4
  419. package/contracts/shared/IComponentService.sol +21 -22
  420. package/contracts/shared/IKeyValueStore.sol +1 -1
  421. package/contracts/shared/INftOwnable.sol +2 -0
  422. package/contracts/shared/IRegisterable.sol +0 -1
  423. package/contracts/shared/InitializableERC165.sol +9 -1
  424. package/contracts/shared/InstanceLinkedComponent.sol +4 -7
  425. package/contracts/shared/KeyValueStore.sol +3 -3
  426. package/contracts/shared/NftOwnable.sol +4 -2
  427. package/contracts/shared/PolicyHolder.sol +3 -2
  428. package/contracts/shared/Registerable.sol +1 -4
  429. package/contracts/shared/Service.sol +6 -4
  430. package/contracts/shared/TokenHandler.sol +5 -4
  431. package/contracts/staking/IStaking.sol +266 -64
  432. package/contracts/staking/IStakingService.sol +44 -82
  433. package/contracts/staking/ITargetLimitHandler.sol +17 -0
  434. package/contracts/staking/Staking.sol +473 -202
  435. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  436. package/contracts/staking/StakingManager.sol +4 -3
  437. package/contracts/staking/StakingReader.sol +58 -77
  438. package/contracts/staking/StakingService.sol +49 -158
  439. package/contracts/staking/StakingServiceManager.sol +1 -0
  440. package/contracts/staking/StakingStore.sol +1089 -330
  441. package/contracts/staking/TargetHandler.sol +132 -0
  442. package/contracts/staking/TargetManagerLib.sol +69 -46
  443. package/contracts/type/Amount.sol +4 -0
  444. package/contracts/type/Blocknumber.sol +15 -15
  445. package/contracts/type/ChainId.sol +101 -0
  446. package/contracts/type/Fee.sol +8 -8
  447. package/contracts/type/NftId.sol +3 -3
  448. package/contracts/type/ObjectType.sol +21 -17
  449. package/contracts/type/RoleId.sol +57 -59
  450. package/contracts/type/Seconds.sol +19 -0
  451. package/contracts/type/String.sol +12 -0
  452. package/contracts/type/Timestamp.sol +4 -2
  453. package/contracts/type/UFixed.sol +28 -10
  454. package/contracts/type/Version.sol +39 -0
  455. package/contracts/upgradeability/IVersionable.sol +3 -0
  456. package/contracts/upgradeability/ProxyManager.sol +25 -11
  457. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  458. package/contracts/upgradeability/Versionable.sol +6 -3
  459. package/package.json +2 -2
  460. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  461. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
  462. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  463. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
  464. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  465. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  466. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
  467. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
  468. package/contracts/shared/ComponentVerifyingService.sol +0 -128
  469. package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -4,27 +4,25 @@ pragma solidity ^0.8.20;
4
4
  import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
5
5
  import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
6
6
 
7
- import {ContractLib} from "../shared/ContractLib.sol";
8
- import {NftId} from "../type/NftId.sol";
9
- import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
10
- import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
11
- import {Seconds} from "../type/Seconds.sol";
12
- import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "../type/StateId.sol";
13
- import {VersionPart, VersionPartLib} from "../type/Version.sol";
14
-
15
- import {IService} from "../shared/IService.sol";
16
-
17
7
  import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
18
8
  import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
19
-
20
9
  import {IRegistry} from "./IRegistry.sol";
21
10
  import {IRelease} from "./IRelease.sol";
22
11
  import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
12
+ import {IService} from "../shared/IService.sol";
23
13
  import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
14
+
15
+ import {ContractLib} from "../shared/ContractLib.sol";
16
+ import {NftId} from "../type/NftId.sol";
17
+ import {ObjectType, ObjectTypeLib, COMPONENT, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
24
18
  import {RegistryAdmin} from "./RegistryAdmin.sol";
25
19
  import {Registry} from "./Registry.sol";
26
- import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
27
20
  import {ReleaseAdmin} from "./ReleaseAdmin.sol";
21
+ import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
22
+ import {Seconds} from "../type/Seconds.sol";
23
+ import {StateId, SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED} from "../type/StateId.sol";
24
+ import {TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
25
+ import {VersionPart, VersionPartLib} from "../type/Version.sol";
28
26
 
29
27
  /// @dev The ReleaseRegistry manages the lifecycle of major GIF releases and their services.
30
28
  /// The creation of a new GIF release is a multi-step process:
@@ -73,7 +71,7 @@ contract ReleaseRegistry is
73
71
  error ErrorReleaseRegistryServiceSelfRegistration(IService service);
74
72
  error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
75
73
 
76
- RegistryAdmin public immutable _admin;
74
+ RegistryAdmin public immutable _registryAdmin;
77
75
  Registry public immutable _registry;
78
76
 
79
77
  mapping(VersionPart release => IRelease.ReleaseInfo info) internal _releaseInfo;
@@ -87,6 +85,7 @@ contract ReleaseRegistry is
87
85
  uint256 internal _registeredServices = 0;
88
86
  uint256 internal _servicesToRegister = 0;
89
87
 
88
+ // TODO move master relase admin outside constructor (same construction as for registry admin)
90
89
  constructor(Registry registry)
91
90
  AccessManaged(msg.sender)
92
91
  {
@@ -97,9 +96,9 @@ contract ReleaseRegistry is
97
96
  setAuthority(registry.getAuthority());
98
97
 
99
98
  _registry = registry;
100
- _admin = RegistryAdmin(_registry.getRegistryAdminAddress());
101
-
102
- _masterReleaseAdmin = new ReleaseAdmin();
99
+ _registryAdmin = RegistryAdmin(_registry.getRegistryAdminAddress());
100
+ _masterReleaseAdmin = new ReleaseAdmin(
101
+ _cloneNewAccessManager());
103
102
 
104
103
  _next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
105
104
  }
@@ -151,7 +150,7 @@ contract ReleaseRegistry is
151
150
  uint256 serviceDomainsCount = _verifyServiceAuthorization(serviceAuthorization, releaseVersion, salt);
152
151
 
153
152
  // create and initialize release admin
154
- releaseAdmin = _cloneNewReleaseAdmin(releaseVersion);
153
+ releaseAdmin = _cloneNewReleaseAdmin(serviceAuthorization, releaseVersion);
155
154
  releaseSalt = salt;
156
155
 
157
156
  // ensures unique salt
@@ -183,8 +182,8 @@ contract ReleaseRegistry is
183
182
  checkTransition(_releaseInfo[releaseVersion].state, RELEASE(), DEPLOYING(), DEPLOYED());
184
183
 
185
184
  address releaseAuthority = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin).authority();
186
- IServiceAuthorization releaseAuth = _releaseInfo[releaseVersion].auth;
187
- ObjectType expectedDomain = releaseAuth.getServiceDomain(_registeredServices);
185
+ IServiceAuthorization releaseAuthz = _releaseInfo[releaseVersion].auth;
186
+ ObjectType expectedDomain = releaseAuthz.getServiceDomain(_registeredServices);
188
187
 
189
188
  // service can work with release registry and release version
190
189
  (
@@ -217,7 +216,6 @@ contract ReleaseRegistry is
217
216
  ReleaseAdmin releaseAdmin = ReleaseAdmin(_releaseInfo[releaseVersion].releaseAdmin);
218
217
  releaseAdmin.setReleaseLocked(false);
219
218
  releaseAdmin.authorizeService(
220
- releaseAuth,
221
219
  service,
222
220
  serviceDomain,
223
221
  releaseVersion);
@@ -241,7 +239,7 @@ contract ReleaseRegistry is
241
239
 
242
240
  _latest = release;
243
241
  _releaseInfo[release].state = ACTIVE();
244
- _releaseInfo[release].activatedAt = TimestampLib.blockTimestamp();
242
+ _releaseInfo[release].activatedAt = TimestampLib.current();
245
243
  _releaseInfo[release].disabledAt = TimestampLib.max();
246
244
 
247
245
  // grant special roles for registry/staking/pool services
@@ -253,16 +251,21 @@ contract ReleaseRegistry is
253
251
  revert ErrorReleaseRegistryRegistryServiceMissing(release);
254
252
  }
255
253
 
256
- _admin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
254
+ _registryAdmin.grantServiceRoleForAllVersions(IService(service), REGISTRY());
257
255
 
258
256
  service = _registry.getServiceAddress(STAKING(), release);
259
257
  if(service != address(0)) {
260
- _admin.grantServiceRoleForAllVersions(IService(service), STAKING());
258
+ _registryAdmin.grantServiceRoleForAllVersions(IService(service), STAKING());
259
+ }
260
+
261
+ service = _registry.getServiceAddress(COMPONENT(), release);
262
+ if(service != address(0)) {
263
+ _registryAdmin.grantServiceRoleForAllVersions(IService(service), COMPONENT());
261
264
  }
262
265
 
263
266
  service = _registry.getServiceAddress(POOL(), release);
264
267
  if(service != address(0)) {
265
- _admin.grantServiceRoleForAllVersions(IService(service), POOL());
268
+ _registryAdmin.grantServiceRoleForAllVersions(IService(service), POOL());
266
269
  }
267
270
 
268
271
  _setReleaseLocked(release, false);
@@ -285,7 +288,7 @@ contract ReleaseRegistry is
285
288
  } else {
286
289
  checkTransition(state, RELEASE(), ACTIVE(), PAUSED());
287
290
  _releaseInfo[release].state = PAUSED();
288
- _releaseInfo[release].disabledAt = TimestampLib.blockTimestamp();
291
+ _releaseInfo[release].disabledAt = TimestampLib.current();
289
292
  emit LogReleaseDisabled(release);
290
293
  }
291
294
 
@@ -350,7 +353,7 @@ contract ReleaseRegistry is
350
353
  }
351
354
 
352
355
  function getRegistryAdmin() external view returns (address) {
353
- return address(_admin);
356
+ return address(_registryAdmin);
354
357
  }
355
358
 
356
359
  //--- IRegistryLinked ------------------------------------------------------//
@@ -368,34 +371,45 @@ contract ReleaseRegistry is
368
371
  _releaseInfo[release].releaseAdmin).setReleaseLocked(locked);
369
372
  }
370
373
 
371
-
372
- function _cloneNewReleaseAdmin(VersionPart release)
374
+ function _cloneNewReleaseAdmin(
375
+ IServiceAuthorization serviceAuthorization,
376
+ VersionPart release
377
+ )
373
378
  private
374
379
  returns (ReleaseAdmin clonedAdmin)
375
380
  {
376
- AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
377
- Clones.clone(
378
- _masterReleaseAdmin.authority()
379
- )
380
- );
381
-
381
+ // clone and setup release specific release admin
382
382
  clonedAdmin = ReleaseAdmin(
383
- Clones.clone(
384
- address(_masterReleaseAdmin)
385
- )
386
- );
383
+ Clones.clone(address(_masterReleaseAdmin)));
384
+
385
+ string memory releaseAdminName = string(
386
+ abi.encodePacked(
387
+ "ReleaseAdminV",
388
+ release.toString()));
389
+
390
+ clonedAdmin.initialize(
391
+ address(_cloneNewAccessManager()),
392
+ releaseAdminName);
387
393
 
388
- clonedAdmin.initialize(clonedAccessManager);
389
394
  clonedAdmin.completeSetup(
390
395
  address(_registry),
391
- address(this), // release registry (this contract)
392
- release);
396
+ address(serviceAuthorization),
397
+ release,
398
+ address(this)); // release registry (this contract)
393
399
 
394
400
  // lock release (remains locked until activation)
395
401
  clonedAdmin.setReleaseLocked(true);
396
402
  }
397
403
 
398
404
 
405
+ function _cloneNewAccessManager()
406
+ private
407
+ returns (address accessManager)
408
+ {
409
+ return Clones.clone(address(_registryAdmin.authority()));
410
+ }
411
+
412
+
399
413
  function _verifyServiceAuthorization(
400
414
  IServiceAuthorization serviceAuthorization,
401
415
  VersionPart releaseVersion,
@@ -406,8 +420,8 @@ contract ReleaseRegistry is
406
420
  returns (uint256 serviceDomainsCount)
407
421
  {
408
422
  // authorization contract supports IServiceAuthorization interface
409
- if(!serviceAuthorization.supportsInterface(type(IServiceAuthorization).interfaceId)) {
410
- revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
423
+ if(!ContractLib.supportsInterface(address(serviceAuthorization), type(IServiceAuthorization).interfaceId)) {
424
+ revert ErrorReleaseRegistryNotServiceAuth(address(serviceAuthorization));
411
425
  }
412
426
 
413
427
  // authorizaions contract version matches with release version
@@ -2,19 +2,24 @@
2
2
  pragma solidity ^0.8.20;
3
3
 
4
4
  import {
5
- ALL, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
5
+ ALL, RELEASE, ACCOUNTING, REGISTRY, RISK, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE, STAKING, PRICE
6
6
  } from "../../contracts/type/ObjectType.sol";
7
7
 
8
8
  import {IAccess} from "../authorization/IAccess.sol";
9
9
  import {IAccountingService} from "../accounting/IAccountingService.sol";
10
+ import {IApplicationService} from "../product/IApplicationService.sol";
10
11
  import {IBundleService} from "../pool/IBundleService.sol";
11
12
  import {IClaimService} from "../product/IClaimService.sol";
13
+ import {IComponentService} from "../shared/IComponentService.sol";
12
14
  import {IDistributionService} from "../distribution/IDistributionService.sol";
13
15
  import {IInstanceService} from "../instance/IInstanceService.sol";
16
+ import {IOracleService} from "../oracle/IOracleService.sol";
17
+ import {IPolicyService} from "../product/IPolicyService.sol";
14
18
  import {IPoolService} from "../pool/IPoolService.sol";
15
19
  import {IStakingService} from "../staking/IStakingService.sol";
16
20
  import {IRegistryService} from "./IRegistryService.sol";
17
21
  import {IRiskService} from "../product/IRiskService.sol";
22
+
18
23
  import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
19
24
 
20
25
 
@@ -23,27 +28,31 @@ contract ServiceAuthorizationV3
23
28
  {
24
29
 
25
30
  constructor(string memory commitHash)
26
- ServiceAuthorization(commitHash, 3)
31
+ ServiceAuthorization(
32
+ "ReleaseAdmin",
33
+ RELEASE(),
34
+ 3,
35
+ commitHash)
27
36
  {}
28
37
 
29
38
  function _setupDomains()
30
39
  internal
31
40
  override
32
41
  {
33
- _authorizeDomain(REGISTRY(), address(1));
34
- _authorizeDomain(STAKING(), address(2));
35
- _authorizeDomain(INSTANCE(), address(3));
36
- _authorizeDomain(ACCOUNTING(), address(4));
37
- _authorizeDomain(COMPONENT(), address(5));
38
- _authorizeDomain(DISTRIBUTION(), address(6));
39
- _authorizeDomain(PRICE(), address(7));
40
- _authorizeDomain(BUNDLE(), address(8));
41
- _authorizeDomain(POOL(), address(9));
42
- _authorizeDomain(ORACLE(), address(10));
43
- _authorizeDomain(RISK(), address(11));
44
- _authorizeDomain(POLICY(), address(12));
45
- _authorizeDomain(CLAIM(), address(13));
46
- _authorizeDomain(APPLICATION(), address(14));
42
+ _authorizeServiceDomain(REGISTRY(), address(1));
43
+ _authorizeServiceDomain(STAKING(), address(2));
44
+ _authorizeServiceDomain(INSTANCE(), address(3));
45
+ _authorizeServiceDomain(ACCOUNTING(), address(4));
46
+ _authorizeServiceDomain(COMPONENT(), address(5));
47
+ _authorizeServiceDomain(DISTRIBUTION(), address(6));
48
+ _authorizeServiceDomain(PRICE(), address(7));
49
+ _authorizeServiceDomain(BUNDLE(), address(8));
50
+ _authorizeServiceDomain(POOL(), address(9));
51
+ _authorizeServiceDomain(ORACLE(), address(10));
52
+ _authorizeServiceDomain(RISK(), address(11));
53
+ _authorizeServiceDomain(POLICY(), address(12));
54
+ _authorizeServiceDomain(CLAIM(), address(13));
55
+ _authorizeServiceDomain(APPLICATION(), address(14));
47
56
  }
48
57
 
49
58
 
@@ -51,10 +60,9 @@ contract ServiceAuthorizationV3
51
60
  internal
52
61
  override
53
62
  {
54
- _setupIRegistryServiceAuthorization();
63
+ _setupRegistryServiceAuthorization();
55
64
  _setupStakingServiceAuthorization();
56
65
  _setupInstanceServiceAuthorization();
57
- _setupInstanceServiceAuthorization();
58
66
  _setupAccountingServiceAuthorization();
59
67
  _setupComponentServiceAuthorization();
60
68
  _setupClaimServiceAuthorization();
@@ -62,12 +70,15 @@ contract ServiceAuthorizationV3
62
70
  _setupDistributionServiceAuthorization();
63
71
  _setupPoolServiceAuthorization();
64
72
  _setupBundleServiceAuthorization();
73
+ _setupOracleServiceAuthorization();
74
+ _setupApplicationServiceAuthorization();
75
+ _setupPolicyServiceAuthorization();
65
76
  }
66
77
 
67
78
 
68
79
  /// @dev registry service authorization.
69
80
  /// authorized functions MUST be implemented with a restricted modifier
70
- function _setupIRegistryServiceAuthorization()
81
+ function _setupRegistryServiceAuthorization()
71
82
  internal
72
83
  {
73
84
  IAccess.FunctionInfo[] storage functions;
@@ -104,16 +115,14 @@ contract ServiceAuthorizationV3
104
115
  _authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
105
116
  _authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
106
117
  _authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
118
+ _authorize(functions, IStakingService.setInstanceMaxStakedAmount.selector, "setInstanceMaxStakedAmount");
107
119
  _authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
108
120
  _authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
109
121
 
110
122
  functions = _authorizeForService(STAKING(), ALL());
111
- _authorize(functions, IStakingService.create.selector, "create");
112
- _authorize(functions, IStakingService.stake.selector, "stake");
113
- _authorize(functions, IStakingService.restakeToNewTarget.selector, "restakeToNewTarget");
114
- _authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
115
- _authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
116
- _authorize(functions, IStakingService.unstake.selector, "unstake");
123
+ _authorize(functions, IStakingService.createStakeObject.selector, "createStakeObject");
124
+ _authorize(functions, IStakingService.pullDipToken.selector, "pullDipToken");
125
+ _authorize(functions, IStakingService.pushDipToken.selector, "pushDipToken");
117
126
  }
118
127
 
119
128
 
@@ -123,14 +132,26 @@ contract ServiceAuthorizationV3
123
132
  {
124
133
  IAccess.FunctionInfo[] storage functions;
125
134
  functions = _authorizeForService(INSTANCE(), ALL());
135
+ _authorize(functions, IInstanceService.createRole.selector, "createRole");
136
+ _authorize(functions, IInstanceService.setRoleActive.selector, "setRoleActive");
137
+ _authorize(functions, IInstanceService.grantRole.selector, "grantRole");
138
+ _authorize(functions, IInstanceService.revokeRole.selector, "revokeRole");
139
+
140
+ _authorize(functions, IInstanceService.createTarget.selector, "createTarget");
141
+ _authorize(functions, IInstanceService.authorizeFunctions.selector, "authorizeFunctions");
142
+ _authorize(functions, IInstanceService.unauthorizeFunctions.selector, "unauthorizeFunctions");
143
+ _authorize(functions, IInstanceService.setTargetLocked.selector, "setTargetLocked");
144
+ _authorize(functions, IInstanceService.setInstanceLocked.selector, "setInstanceLocked");
145
+
126
146
  _authorize(functions, IInstanceService.createInstance.selector, "createInstance");
127
147
  _authorize(functions, IInstanceService.upgradeInstanceReader.selector, "upgradeInstanceReader");
128
148
  _authorize(functions, IInstanceService.upgradeMasterInstanceReader.selector, "upgradeMasterInstanceReader");
129
149
 
130
150
  _authorize(functions, IInstanceService.setStakingLockingPeriod.selector, "setStakingLockingPeriod");
131
151
  _authorize(functions, IInstanceService.setStakingRewardRate.selector, "setStakingRewardRate");
132
- _authorize(functions, IInstanceService.refillStakingRewardReserves.selector, "refillStakingRewardReserves");
133
- _authorize(functions, IInstanceService.withdrawStakingRewardReserves.selector, "withdrawStakingRewardReserves");
152
+ _authorize(functions, IInstanceService.setStakingMaxAmount.selector, "setStakingMaxAmount");
153
+ _authorize(functions, IInstanceService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
154
+ _authorize(functions, IInstanceService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
134
155
  }
135
156
 
136
157
  /// @dev Accounting service function authorization.
@@ -143,9 +164,6 @@ contract ServiceAuthorizationV3
143
164
  _authorize(functions, IAccountingService.increaseBundleBalance.selector, "increaseBundleBalance");
144
165
  _authorize(functions, IAccountingService.decreaseBundleBalance.selector, "decreaseBundleBalance");
145
166
 
146
- functions = _authorizeForService(ACCOUNTING(), POOL());
147
- _authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
148
-
149
167
  functions = _authorizeForService(ACCOUNTING(), COMPONENT());
150
168
  _authorize(functions, IAccountingService.decreaseComponentFees.selector, "decreaseComponentFees");
151
169
 
@@ -163,6 +181,7 @@ contract ServiceAuthorizationV3
163
181
  _authorize(functions, IAccountingService.decreasePoolBalance.selector, "decreasePoolBalance");
164
182
  _authorize(functions, IAccountingService.increaseBundleBalanceForPool.selector, "increaseBundleBalanceForPool");
165
183
  _authorize(functions, IAccountingService.decreaseBundleBalanceForPool.selector, "decreaseBundleBalanceForPool");
184
+ _authorize(functions, IAccountingService.increaseProductFeesForPool.selector, "increaseProductFeesForPool");
166
185
 
167
186
  }
168
187
 
@@ -171,6 +190,19 @@ contract ServiceAuthorizationV3
171
190
  function _setupComponentServiceAuthorization()
172
191
  internal
173
192
  {
193
+ IAccess.FunctionInfo[] storage functions;
194
+
195
+ functions = _authorizeForService(COMPONENT(), ALL());
196
+ _authorize(functions, IComponentService.registerComponent.selector, "registerComponent");
197
+ _authorize(functions, IComponentService.approveTokenHandler.selector, "approveTokenHandler");
198
+ _authorize(functions, IComponentService.setWallet.selector, "setWallet");
199
+ _authorize(functions, IComponentService.setLocked.selector, "setLocked");
200
+ _authorize(functions, IComponentService.withdrawFees.selector, "withdrawFees");
201
+ _authorize(functions, IComponentService.registerProduct.selector, "registerProduct");
202
+ _authorize(functions, IComponentService.setProductFees.selector, "setProductFees");
203
+ _authorize(functions, IComponentService.setDistributionFees.selector, "setDistributionFees");
204
+ _authorize(functions, IComponentService.setPoolFees.selector, "setPoolFees");
205
+
174
206
  }
175
207
 
176
208
  /// @dev Distribution service function authorization.
@@ -181,7 +213,8 @@ contract ServiceAuthorizationV3
181
213
  functions = _authorizeForService(RISK(), ALL());
182
214
  _authorize(functions, IRiskService.createRisk.selector, "createRisk");
183
215
  _authorize(functions, IRiskService.updateRisk.selector, "updateRisk");
184
- _authorize(functions, IRiskService.updateRiskState.selector, "updateRiskState");
216
+ _authorize(functions, IRiskService.setRiskLocked.selector, "setRiskLocked");
217
+ _authorize(functions, IRiskService.closeRisk.selector, "closeRisk");
185
218
  }
186
219
 
187
220
  /// @dev Distribution service function authorization.
@@ -191,6 +224,14 @@ contract ServiceAuthorizationV3
191
224
  IAccess.FunctionInfo[] storage functions;
192
225
  functions = _authorizeForService(CLAIM(), ALL());
193
226
  _authorize(functions, IClaimService.submit.selector, "submit");
227
+ _authorize(functions, IClaimService.confirm.selector, "confirm");
228
+ _authorize(functions, IClaimService.decline.selector, "decline");
229
+ _authorize(functions, IClaimService.revoke.selector, "revoke");
230
+ _authorize(functions, IClaimService.cancelConfirmedClaim.selector, "cancelConfirmedClaim");
231
+ _authorize(functions, IClaimService.createPayoutForBeneficiary.selector, "createPayoutForBeneficiary");
232
+ _authorize(functions, IClaimService.createPayout.selector, "createPayout");
233
+ _authorize(functions, IClaimService.processPayout.selector, "processPayout");
234
+ _authorize(functions, IClaimService.cancelPayout.selector, "cancelPayout");
194
235
  }
195
236
 
196
237
  /// @dev Distribution service function authorization.
@@ -201,6 +242,13 @@ contract ServiceAuthorizationV3
201
242
  functions = _authorizeForService(DISTRIBUTION(), POLICY());
202
243
  _authorize(functions, IDistributionService.processSale.selector, "processSale");
203
244
  _authorize(functions, IDistributionService.processReferral.selector, "processReferral");
245
+
246
+ functions = _authorizeForService(DISTRIBUTION(), ALL());
247
+ _authorize(functions, IDistributionService.createDistributorType.selector, "createDistributorType");
248
+ _authorize(functions, IDistributionService.createDistributor.selector, "createDistributor");
249
+ _authorize(functions, IDistributionService.changeDistributorType.selector, "changeDistributorType");
250
+ _authorize(functions, IDistributionService.createReferral.selector, "createReferral");
251
+ _authorize(functions, IDistributionService.withdrawCommission.selector, "withdrawCommission");
204
252
  }
205
253
 
206
254
 
@@ -219,6 +267,13 @@ contract ServiceAuthorizationV3
219
267
  _authorize(functions, IPoolService.processPayout.selector, "processPayout");
220
268
 
221
269
  functions = _authorizeForService(POOL(), ALL());
270
+ _authorize(functions, IPoolService.setMaxBalanceAmount.selector, "setMaxBalanceAmount");
271
+ _authorize(functions, IPoolService.closeBundle.selector, "closeBundle");
272
+ _authorize(functions, IPoolService.processFundedClaim.selector, "processFundedClaim");
273
+ _authorize(functions, IPoolService.stake.selector, "stake");
274
+ _authorize(functions, IPoolService.unstake.selector, "unstake");
275
+ _authorize(functions, IPoolService.fundPoolWallet.selector, "fundPoolWallet");
276
+ _authorize(functions, IPoolService.defundPoolWallet.selector, "defundPoolWallet");
222
277
  _authorize(functions, IPoolService.withdrawBundleFees.selector, "withdrawBundleFees");
223
278
  }
224
279
 
@@ -239,9 +294,49 @@ contract ServiceAuthorizationV3
239
294
  functions = _authorizeForService(BUNDLE(), ALL());
240
295
  _authorize(functions, IBundleService.create.selector, "create");
241
296
  _authorize(functions, IBundleService.extend.selector, "extend");
242
- _authorize(functions, IBundleService.lock.selector, "lock");
243
- _authorize(functions, IBundleService.unlock.selector, "unlock");
297
+ _authorize(functions, IBundleService.setLocked.selector, "setLocked");
244
298
  _authorize(functions, IBundleService.setFee.selector, "setFee");
245
299
  }
300
+
301
+ function _setupOracleServiceAuthorization()
302
+ internal
303
+ {
304
+ IAccess.FunctionInfo[] storage functions;
305
+
306
+ functions = _authorizeForService(ORACLE(), ALL());
307
+ _authorize(functions, IOracleService.request.selector, "request");
308
+ _authorize(functions, IOracleService.respond.selector, "respond");
309
+ _authorize(functions, IOracleService.resend.selector, "resend");
310
+ _authorize(functions, IOracleService.cancel.selector, "cancel");
311
+ }
312
+
313
+ function _setupApplicationServiceAuthorization()
314
+ internal
315
+ {
316
+ IAccess.FunctionInfo[] storage functions;
317
+
318
+ functions = _authorizeForService(APPLICATION(), ALL());
319
+ _authorize(functions, IApplicationService.create.selector, "create");
320
+ _authorize(functions, IApplicationService.renew.selector, "renew");
321
+ _authorize(functions, IApplicationService.adjust.selector, "adjust");
322
+ _authorize(functions, IApplicationService.revoke.selector, "revoke");
323
+ }
324
+
325
+ function _setupPolicyServiceAuthorization()
326
+ internal
327
+ {
328
+ IAccess.FunctionInfo[] storage functions;
329
+
330
+ functions = _authorizeForService(POLICY(), ALL());
331
+ _authorize(functions, IPolicyService.decline.selector, "decline");
332
+ _authorize(functions, IPolicyService.createPolicy.selector, "createPolicy");
333
+ _authorize(functions, IPolicyService.collectPremium.selector, "collectPremium");
334
+ _authorize(functions, IPolicyService.activate.selector, "activate");
335
+ _authorize(functions, IPolicyService.adjustActivation.selector, "adjustActivation");
336
+ _authorize(functions, IPolicyService.expire.selector, "expire");
337
+ _authorize(functions, IPolicyService.expirePolicy.selector, "expirePolicy");
338
+ _authorize(functions, IPolicyService.close.selector, "close");
339
+
340
+ }
246
341
  }
247
342