@etherisc/gif-next 0.0.2-c7609c4-545 → 0.0.2-c7ade86-552

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 (491) hide show
  1. package/README.md +81 -7
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1023 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +752 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
  8. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
  9. package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
  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 +202 -5
  14. package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
  15. package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
  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 +525 -213
  19. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
  20. package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
  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 +114 -291
  27. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
  28. package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
  29. package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
  30. package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +46 -164
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +388 -194
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +133 -67
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +32 -132
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +210 -71
  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 +121 -198
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +380 -45
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +287 -341
  46. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
  47. package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
  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 +185 -252
  51. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
  52. package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
  53. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
  54. package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +76 -155
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +239 -203
  57. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
  58. package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
  59. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
  60. package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +672 -362
  61. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
  62. package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
  63. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
  64. package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +193 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +502 -49
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +300 -12
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +531 -81
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1022 -326
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +393 -52
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1067 -479
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +321 -80
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +59 -47
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +676 -570
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
  85. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
  86. package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
  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 +16 -5
  94. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
  95. package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
  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 +66 -167
  104. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
  105. package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
  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 +36 -71
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +50 -103
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +128 -81
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +91 -41
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +69 -137
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +380 -45
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +145 -333
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +73 -99
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +62 -142
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -118
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +182 -235
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -149
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +538 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +350 -369
  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 +181 -57
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +76 -38
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +182 -215
  145. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
  146. package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
  147. package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
  148. package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +260 -179
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +96 -78
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +103 -10
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +48 -3
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +163 -178
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +58 -7
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +233 -194
  165. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
  166. package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
  167. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
  168. package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +103 -73
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +120 -100
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +68 -58
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +176 -209
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +143 -77
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +80 -38
  179. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
  180. package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
  181. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
  182. package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +60 -12
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
  187. package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
  188. package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
  189. package/artifacts/contracts/registry/Registry.sol/Registry.json +98 -50
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +726 -465
  192. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  193. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +56 -34
  198. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
  199. package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
  200. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
  201. package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
  202. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
  203. package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
  204. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
  205. package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
  206. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
  207. package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
  208. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Component.sol/Component.json +49 -88
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +239 -520
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +77 -75
  214. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
  216. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +544 -4
  218. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
  220. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
  221. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
  222. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  223. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  224. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +36 -57
  226. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +139 -347
  228. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  229. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +36 -71
  230. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  231. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  232. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  234. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
  236. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  237. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  238. package/artifacts/contracts/shared/IService.sol/IService.json +27 -3
  239. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  241. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  242. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +49 -102
  243. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  244. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  246. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  248. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  250. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  252. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  254. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  255. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  256. package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +327 -73
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
  260. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  262. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  264. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +125 -99
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  266. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +134 -10
  267. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  268. package/artifacts/contracts/staking/Staking.sol/Staking.json +225 -209
  269. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
  270. package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -0
  271. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  272. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  274. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +83 -59
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  276. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +40 -67
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  278. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +203 -56
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  280. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +73 -39
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  282. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +163 -149
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  284. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +61 -51
  285. package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
  286. package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
  287. package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
  288. package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
  289. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
  290. package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
  291. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
  292. package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
  293. package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
  294. package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
  295. package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
  296. package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
  297. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
  298. package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
  299. package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
  300. package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
  301. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
  302. package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
  303. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
  304. package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
  305. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
  306. package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
  307. package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
  308. package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
  309. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
  310. package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
  311. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
  312. package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +69 -7
  313. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  314. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  315. package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
  317. package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
  318. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  319. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  320. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  321. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  323. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
  325. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  326. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  327. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  328. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  329. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  330. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  331. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  332. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  333. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +32 -16
  334. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  336. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  337. package/contracts/accounting/AccountingService.sol +261 -0
  338. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  339. package/contracts/accounting/IAccountingService.sol +45 -0
  340. package/contracts/authorization/AccessAdmin.sol +426 -242
  341. package/contracts/authorization/AccessAdminLib.sol +396 -0
  342. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  343. package/contracts/authorization/Authorization.sol +142 -257
  344. package/contracts/authorization/IAccess.sol +25 -7
  345. package/contracts/authorization/IAccessAdmin.sol +87 -80
  346. package/contracts/authorization/IAuthorization.sol +9 -42
  347. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  348. package/contracts/authorization/ServiceAuthorization.sol +247 -33
  349. package/contracts/distribution/BasicDistribution.sol +18 -16
  350. package/contracts/distribution/BasicDistributionAuthorization.sol +30 -10
  351. package/contracts/distribution/Distribution.sol +38 -78
  352. package/contracts/distribution/DistributionService.sol +183 -96
  353. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  354. package/contracts/distribution/IDistributionComponent.sol +3 -10
  355. package/contracts/distribution/IDistributionService.sol +32 -24
  356. package/contracts/examples/fire/FirePool.sol +21 -8
  357. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  358. package/contracts/examples/fire/FireProduct.sol +32 -14
  359. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  360. package/contracts/examples/unpermissioned/SimpleDistribution.sol +39 -8
  361. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  362. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  363. package/contracts/examples/unpermissioned/SimplePool.sol +32 -6
  364. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  365. package/contracts/examples/unpermissioned/SimpleProduct.sol +49 -27
  366. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  367. package/contracts/instance/BundleSet.sol +42 -38
  368. package/contracts/instance/IInstance.sol +97 -18
  369. package/contracts/instance/IInstanceService.sol +50 -8
  370. package/contracts/instance/Instance.sol +170 -57
  371. package/contracts/instance/InstanceAdmin.sol +271 -165
  372. package/contracts/instance/InstanceAuthorizationV3.sol +114 -43
  373. package/contracts/instance/InstanceReader.sol +449 -312
  374. package/contracts/instance/InstanceService.sol +260 -163
  375. package/contracts/instance/InstanceServiceManager.sol +1 -1
  376. package/contracts/instance/InstanceStore.sol +13 -2
  377. package/contracts/instance/RiskSet.sol +118 -0
  378. package/contracts/instance/base/BalanceStore.sol +3 -5
  379. package/contracts/instance/base/ObjectCounter.sol +1 -2
  380. package/contracts/instance/base/ObjectLifecycle.sol +4 -2
  381. package/contracts/instance/base/ObjectSet.sol +31 -33
  382. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  383. package/contracts/instance/module/IBundle.sol +6 -5
  384. package/contracts/instance/module/IComponents.sol +20 -9
  385. package/contracts/instance/module/IDistribution.sol +21 -8
  386. package/contracts/instance/module/IPolicy.sol +28 -7
  387. package/contracts/instance/module/IRisk.sol +5 -0
  388. package/contracts/oracle/BasicOracle.sol +1 -3
  389. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  390. package/contracts/oracle/IOracle.sol +9 -4
  391. package/contracts/oracle/Oracle.sol +1 -3
  392. package/contracts/oracle/OracleService.sol +96 -77
  393. package/contracts/oracle/OracleServiceManager.sol +1 -1
  394. package/contracts/pool/BasicPool.sol +23 -4
  395. package/contracts/pool/BasicPoolAuthorization.sol +33 -8
  396. package/contracts/pool/BundleService.sol +47 -145
  397. package/contracts/pool/BundleServiceManager.sol +1 -1
  398. package/contracts/pool/IBundleService.sol +15 -43
  399. package/contracts/pool/IPoolComponent.sol +1 -7
  400. package/contracts/pool/IPoolService.sol +58 -60
  401. package/contracts/pool/Pool.sol +106 -98
  402. package/contracts/pool/PoolLib.sol +353 -0
  403. package/contracts/pool/PoolService.sol +271 -228
  404. package/contracts/pool/PoolServiceManager.sol +1 -1
  405. package/contracts/product/ApplicationService.sol +34 -15
  406. package/contracts/product/ApplicationServiceManager.sol +1 -1
  407. package/contracts/product/BasicProduct.sol +8 -12
  408. package/contracts/product/BasicProductAuthorization.sol +30 -11
  409. package/contracts/product/ClaimService.sol +167 -148
  410. package/contracts/product/ClaimServiceManager.sol +1 -1
  411. package/contracts/product/IApplicationService.sol +8 -2
  412. package/contracts/product/IClaimService.sol +14 -2
  413. package/contracts/product/IPolicyService.sol +26 -11
  414. package/contracts/product/IPricingService.sol +1 -0
  415. package/contracts/product/IProductComponent.sol +4 -1
  416. package/contracts/product/IRiskService.sol +7 -7
  417. package/contracts/product/PolicyService.sol +243 -294
  418. package/contracts/product/PolicyServiceLib.sol +139 -0
  419. package/contracts/product/PolicyServiceManager.sol +1 -1
  420. package/contracts/product/PricingService.sol +30 -21
  421. package/contracts/product/PricingServiceManager.sol +3 -3
  422. package/contracts/product/Product.sol +65 -53
  423. package/contracts/product/RiskService.sol +89 -31
  424. package/contracts/product/RiskServiceManager.sol +1 -1
  425. package/contracts/registry/ChainNft.sol +4 -2
  426. package/contracts/registry/IRegistry.sol +14 -15
  427. package/contracts/registry/IRelease.sol +29 -0
  428. package/contracts/registry/Registry.sol +16 -3
  429. package/contracts/registry/RegistryAdmin.sol +101 -361
  430. package/contracts/registry/RegistryAuthorization.sol +277 -0
  431. package/contracts/registry/RegistryService.sol +3 -3
  432. package/contracts/registry/RegistryServiceManager.sol +1 -1
  433. package/contracts/registry/ReleaseAdmin.sol +195 -0
  434. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  435. package/contracts/registry/ReleaseRegistry.sol +154 -135
  436. package/contracts/registry/ServiceAuthorizationV3.sol +196 -46
  437. package/contracts/registry/TokenRegistry.sol +12 -13
  438. package/contracts/shared/Component.sol +52 -107
  439. package/contracts/shared/ComponentService.sol +353 -420
  440. package/contracts/shared/ComponentServiceManager.sol +1 -1
  441. package/contracts/shared/ComponentVerifyingService.sol +16 -14
  442. package/contracts/shared/ContractLib.sol +276 -3
  443. package/contracts/shared/IComponent.sol +1 -17
  444. package/contracts/shared/IComponentService.sol +27 -37
  445. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  446. package/contracts/shared/IRegisterable.sol +15 -5
  447. package/contracts/shared/IService.sol +3 -5
  448. package/contracts/shared/InitializableERC165.sol +9 -1
  449. package/contracts/shared/InstanceLinkedComponent.sol +4 -23
  450. package/contracts/shared/NftOwnable.sol +6 -6
  451. package/contracts/shared/PolicyHolder.sol +1 -1
  452. package/contracts/shared/Registerable.sol +41 -20
  453. package/contracts/shared/RegistryLinked.sol +7 -13
  454. package/contracts/shared/Service.sol +13 -30
  455. package/contracts/shared/TokenHandler.sol +275 -72
  456. package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
  457. package/contracts/staking/IStaking.sol +23 -12
  458. package/contracts/staking/IStakingService.sol +19 -1
  459. package/contracts/staking/Staking.sol +99 -51
  460. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +80 -23
  461. package/contracts/staking/StakingReader.sol +6 -16
  462. package/contracts/staking/StakingService.sol +74 -14
  463. package/contracts/staking/StakingServiceManager.sol +5 -4
  464. package/contracts/staking/StakingStore.sol +2 -1
  465. package/contracts/staking/TargetManagerLib.sol +1 -1
  466. package/contracts/type/Fee.sol +8 -8
  467. package/contracts/type/Key32.sol +2 -2
  468. package/contracts/type/Key32Set.sol +62 -0
  469. package/contracts/type/NftId.sol +6 -0
  470. package/contracts/type/ObjectType.sol +69 -38
  471. package/contracts/type/RiskId.sol +26 -8
  472. package/contracts/type/RoleId.sol +63 -45
  473. package/contracts/type/Selector.sol +5 -0
  474. package/contracts/type/String.sol +12 -0
  475. package/contracts/type/Timestamp.sol +0 -5
  476. package/contracts/type/UFixed.sol +34 -127
  477. package/contracts/type/Version.sol +54 -5
  478. package/contracts/upgradeability/ProxyManager.sol +14 -12
  479. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
  480. package/contracts/upgradeability/Versionable.sol +4 -1
  481. package/package.json +4 -4
  482. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  483. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  484. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  485. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  486. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  487. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  488. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  489. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  490. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  491. package/contracts/instance/module/IAccess.sol +0 -46
@@ -0,0 +1,277 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IRegistry} from "../registry/IRegistry.sol";
6
+ import {IStaking} from "../staking/IStaking.sol";
7
+
8
+ import {Authorization} from "../authorization/Authorization.sol";
9
+ import {POOL, REGISTRY, STAKING} from "../../contracts/type/ObjectType.sol";
10
+ import {PUBLIC_ROLE} from "../type/RoleId.sol";
11
+ import {ReleaseRegistry} from "./ReleaseRegistry.sol";
12
+ import {RegistryAdmin} from "./RegistryAdmin.sol";
13
+ import {RoleIdLib, ADMIN_ROLE, GIF_ADMIN_ROLE, GIF_MANAGER_ROLE} from "../type/RoleId.sol";
14
+ import {StakingStore} from "../staking/StakingStore.sol";
15
+ import {TokenHandler} from "../shared/TokenHandler.sol";
16
+ import {TokenRegistry} from "../registry/TokenRegistry.sol";
17
+ import {VersionPartLib} from "../type/Version.sol";
18
+
19
+
20
+ contract RegistryAuthorization
21
+ is Authorization
22
+ {
23
+
24
+ /// @dev gif core roles
25
+ string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
26
+ string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
27
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
28
+ string public constant STAKING_ROLE_NAME = "StakingRole";
29
+
30
+ /// @dev gif roles for external contracts
31
+ string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
32
+ string public constant COMPONENT_SERVICE_ROLE_NAME = "ComponentServiceRole";
33
+ string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
34
+ string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
35
+
36
+ /// @dev gif core targets
37
+ string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
38
+ string public constant REGISTRY_TARGET_NAME = "Registry";
39
+ string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
40
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
41
+
42
+ string public constant STAKING_TARGET_NAME = "Staking";
43
+ string public constant STAKING_TH_TARGET_NAME = "StakingTh";
44
+ string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
45
+
46
+ constructor(string memory commitHash)
47
+ Authorization(
48
+ REGISTRY_TARGET_NAME,
49
+ REGISTRY(),
50
+ 3,
51
+ commitHash,
52
+ false, // isComponent
53
+ false) // includeTokenHandler
54
+ { }
55
+
56
+ /// @dev Sets up the GIF admin and manager roles.
57
+ function _setupRoles() internal override {
58
+
59
+ // max number of versioned contracts per generic service
60
+ uint32 maxReleases = uint32(VersionPartLib.releaseMax().toInt());
61
+
62
+ // service roles (for all releases)
63
+ _addRole(
64
+ RoleIdLib.toGenericServiceRoleId(REGISTRY()),
65
+ _toRoleInfo({
66
+ adminRoleId: ADMIN_ROLE(),
67
+ roleType: RoleType.Core,
68
+ maxMemberCount: maxReleases,
69
+ name: REGISTRY_SERVICE_ROLE_NAME}));
70
+
71
+ _addRole(
72
+ RoleIdLib.toGenericServiceRoleId(STAKING()),
73
+ _toRoleInfo({
74
+ adminRoleId: ADMIN_ROLE(),
75
+ roleType: RoleType.Core,
76
+ maxMemberCount: maxReleases,
77
+ name: STAKING_SERVICE_ROLE_NAME}));
78
+
79
+ _addRole(
80
+ RoleIdLib.toGenericServiceRoleId(POOL()),
81
+ _toRoleInfo({
82
+ adminRoleId: ADMIN_ROLE(),
83
+ roleType: RoleType.Core,
84
+ maxMemberCount: maxReleases,
85
+ name: POOL_SERVICE_ROLE_NAME}));
86
+
87
+ // gif admin role
88
+ _addRole(
89
+ GIF_ADMIN_ROLE(),
90
+ _toRoleInfo({
91
+ adminRoleId: ADMIN_ROLE(),
92
+ roleType: RoleType.Core,
93
+ maxMemberCount: 2, // TODO decide on max member count
94
+ name: GIF_ADMIN_ROLE_NAME}));
95
+
96
+ // gif manager role
97
+ _addRole(
98
+ GIF_MANAGER_ROLE(),
99
+ _toRoleInfo({
100
+ adminRoleId: ADMIN_ROLE(),
101
+ roleType: RoleType.Core,
102
+ maxMemberCount: 1, // TODO decide on max member count
103
+ name: GIF_MANAGER_ROLE_NAME}));
104
+
105
+ }
106
+
107
+ /// @dev Sets up the relevant (non-service) targets for the registry.
108
+ function _setupTargets() internal override {
109
+ _addGifTarget(REGISTRY_ADMIN_TARGET_NAME);
110
+ _addGifTarget(RELEASE_REGISTRY_TARGET_NAME);
111
+ _addGifTarget(TOKEN_REGISTRY_TARGET_NAME);
112
+
113
+ _addGifTarget(STAKING_TARGET_NAME);
114
+ _addGifTarget(STAKING_TH_TARGET_NAME);
115
+ _addGifTarget(STAKING_STORE_TARGET_NAME);
116
+ }
117
+
118
+
119
+ function _setupTargetAuthorizations()
120
+ internal
121
+ override
122
+ {
123
+ // registry
124
+ _setupRegistryAuthorization();
125
+ _setupRegistryAdminAuthorization();
126
+ _setupReleaseRegistryAuthorization();
127
+ _setupTokenRegistryAuthorization();
128
+
129
+ // staking
130
+ _setupStakingAuthorization();
131
+ _setupStakingThAuthorization();
132
+ _setupStakingStoreAuthorization();
133
+ }
134
+
135
+ event LogAccessAdminDebug(string message, string custom, uint256 value);
136
+
137
+ function _setupRegistryAuthorization() internal {
138
+ IAccess.FunctionInfo[] storage functions;
139
+
140
+ // gif admin role
141
+ functions = _authorizeForTarget(REGISTRY_TARGET_NAME, GIF_ADMIN_ROLE());
142
+ _authorize(functions, IRegistry.registerRegistry.selector, "registerRegistry");
143
+
144
+ // registry service role
145
+ functions = _authorizeForTarget(
146
+ REGISTRY_TARGET_NAME,
147
+ RoleIdLib.toGenericServiceRoleId(REGISTRY()));
148
+
149
+ _authorize(functions, IRegistry.register.selector, "register");
150
+ _authorize(functions, IRegistry.registerWithCustomType.selector, "registerWithCustomType");
151
+
152
+ // release registry role
153
+ functions = _authorizeForTarget(
154
+ REGISTRY_TARGET_NAME,
155
+ getTargetRole(getTarget(RELEASE_REGISTRY_TARGET_NAME)));
156
+
157
+ _authorize(functions, IRegistry.registerService.selector, "registerService");
158
+ }
159
+
160
+
161
+ function _setupRegistryAdminAuthorization() internal {
162
+ IAccess.FunctionInfo[] storage functions;
163
+
164
+ // release registry role
165
+ functions = _authorizeForTarget(
166
+ REGISTRY_ADMIN_TARGET_NAME,
167
+ getTargetRole(getTarget(RELEASE_REGISTRY_TARGET_NAME)));
168
+
169
+ _authorize(functions, RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
170
+ }
171
+
172
+
173
+ function _setupReleaseRegistryAuthorization() internal {
174
+ IAccess.FunctionInfo[] storage functions;
175
+
176
+ functions = _authorizeForTarget(RELEASE_REGISTRY_TARGET_NAME, GIF_ADMIN_ROLE());
177
+ _authorize(functions, ReleaseRegistry.createNextRelease.selector, "createNextRelease");
178
+ _authorize(functions, ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
179
+ _authorize(functions, ReleaseRegistry.setActive.selector, "setActive");
180
+
181
+ functions = _authorizeForTarget(RELEASE_REGISTRY_TARGET_NAME, GIF_MANAGER_ROLE());
182
+ _authorize(functions, ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
183
+ _authorize(functions, ReleaseRegistry.registerService.selector, "registerService");
184
+ }
185
+
186
+
187
+ function _setupTokenRegistryAuthorization() internal {
188
+ IAccess.FunctionInfo[] storage functions;
189
+
190
+ // gif manager role
191
+ functions = _authorizeForTarget(TOKEN_REGISTRY_TARGET_NAME, GIF_MANAGER_ROLE());
192
+ _authorize(functions, TokenRegistry.registerToken.selector, "registerToken");
193
+ _authorize(functions, TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
194
+ _authorize(functions, TokenRegistry.setActive.selector, "setActive");
195
+ _authorize(functions, TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
196
+ // TODO find a better way (only needed for testing)
197
+ _authorize(functions, TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
198
+ }
199
+
200
+
201
+ function _setupStakingAuthorization() internal {
202
+ IAccess.FunctionInfo[] storage functions;
203
+
204
+ // staking public role
205
+ functions = _authorizeForTarget(
206
+ STAKING_TARGET_NAME,
207
+ PUBLIC_ROLE());
208
+
209
+ _authorize(functions, IStaking.approveTokenHandler.selector, "approveTokenHandler");
210
+
211
+ // staking service role
212
+ functions = _authorizeForTarget(
213
+ STAKING_TARGET_NAME,
214
+ RoleIdLib.toGenericServiceRoleId(STAKING()));
215
+
216
+ _authorize(functions, IStaking.registerTarget.selector, "registerTarget");
217
+ _authorize(functions, IStaking.setLockingPeriod.selector, "setLockingPeriod");
218
+ _authorize(functions, IStaking.setRewardRate.selector, "setRewardRate");
219
+ _authorize(functions, IStaking.setMaxStakedAmount.selector, "setMaxStakedAmount");
220
+ _authorize(functions, IStaking.refillRewardReserves.selector, "refillRewardReserves");
221
+ _authorize(functions, IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
222
+ _authorize(functions, IStaking.createStake.selector, "createStake");
223
+ _authorize(functions, IStaking.stake.selector, "stake");
224
+ _authorize(functions, IStaking.unstake.selector, "unstake");
225
+ _authorize(functions, IStaking.restake.selector, "restake");
226
+ _authorize(functions, IStaking.updateRewards.selector, "updateRewards");
227
+ _authorize(functions, IStaking.claimRewards.selector, "claimRewards");
228
+
229
+ // pool service role
230
+ functions = _authorizeForTarget(
231
+ STAKING_TARGET_NAME,
232
+ RoleIdLib.toGenericServiceRoleId(POOL()));
233
+
234
+ _authorize(functions, IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
235
+ _authorize(functions, IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
236
+ }
237
+
238
+
239
+ function _setupStakingThAuthorization() internal {
240
+ IAccess.FunctionInfo[] storage functions;
241
+
242
+ // staking service role
243
+ functions = _authorizeForTarget(
244
+ STAKING_TH_TARGET_NAME,
245
+ RoleIdLib.toGenericServiceRoleId(STAKING()));
246
+
247
+ _authorize(functions, TokenHandler.approve.selector, "approve");
248
+ _authorize(functions, TokenHandler.pullToken.selector, "pullToken");
249
+ _authorize(functions, TokenHandler.pushToken.selector, "pushToken");
250
+ }
251
+
252
+
253
+ function _setupStakingStoreAuthorization() internal {
254
+ IAccess.FunctionInfo[] storage functions;
255
+
256
+ // release registry role
257
+ functions = _authorizeForTarget(
258
+ STAKING_STORE_TARGET_NAME,
259
+ getTargetRole(getTarget(STAKING_TARGET_NAME)));
260
+
261
+ _authorize(functions, StakingStore.setStakingRate.selector, "setStakingRate");
262
+ _authorize(functions, StakingStore.createTarget.selector, "createTarget");
263
+ _authorize(functions, StakingStore.updateTarget.selector, "updateTarget");
264
+ _authorize(functions, StakingStore.increaseReserves.selector, "increaseReserves");
265
+ _authorize(functions, StakingStore.decreaseReserves.selector, "decreaseReserves");
266
+ _authorize(functions, StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
267
+ _authorize(functions, StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
268
+ _authorize(functions, StakingStore.create.selector, "create");
269
+ _authorize(functions, StakingStore.update.selector, "update");
270
+ _authorize(functions, StakingStore.increaseStake.selector, "increaseStake");
271
+ _authorize(functions, StakingStore.restakeRewards.selector, "restakeRewards");
272
+ _authorize(functions, StakingStore.updateRewards.selector, "updateRewards");
273
+ _authorize(functions, StakingStore.claimUpTo.selector, "claimUpTo");
274
+ _authorize(functions, StakingStore.unstakeUpTo.selector, "unstakeUpTo");
275
+ }
276
+ }
277
+
@@ -33,11 +33,11 @@ contract RegistryService is
33
33
  initializer()
34
34
  {
35
35
  (
36
- address registryAddress,
37
- address initialAuthority
36
+ address authority,
37
+ address registry
38
38
  ) = abi.decode(data, (address, address));
39
39
 
40
- _initializeService(registryAddress, initialAuthority, owner);
40
+ __Service_init(authority, registry, owner);
41
41
  _registerInterface(type(IRegistryService).interfaceId);
42
42
  }
43
43
 
@@ -31,7 +31,7 @@ contract RegistryServiceManager is
31
31
  }
32
32
 
33
33
  RegistryService srv = new RegistryService{ salt: salt }();
34
- bytes memory data = abi.encode(registry, authority);
34
+ bytes memory data = abi.encode(authority, registry);
35
35
  IVersionable versionable = initialize(
36
36
  registry,
37
37
  address(srv),
@@ -0,0 +1,195 @@
1
+ // SPDX-License-Identifier: Apache-2.0
2
+ pragma solidity ^0.8.20;
3
+
4
+ import {IAccess} from "../authorization/IAccess.sol";
5
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
+ import {IService} from "../shared/IService.sol";
7
+ import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
8
+
9
+ import {AccessAdmin} from "../authorization/AccessAdmin.sol";
10
+ import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
11
+ import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
12
+ import {ObjectType, ObjectTypeLib, RELEASE} from "../type/ObjectType.sol";
13
+ import {RoleId, ADMIN_ROLE, RELEASE_REGISTRY_ROLE} from "../type/RoleId.sol";
14
+ import {Str} from "../type/String.sol";
15
+ import {VersionPart} from "../type/Version.sol";
16
+
17
+
18
+ /// @dev The ReleaseAdmin contract implements the central authorization for the services of a specific release.
19
+ /// There is one ReleaseAdmin contract per major GIF release.
20
+ /// Locking/unlocking of all services of a release is implemented in function setReleaseLocked.
21
+ contract ReleaseAdmin is
22
+ AccessAdmin
23
+ {
24
+ event LogReleaseAdminReleaseLockChanged(VersionPart release, bool locked);
25
+ event LogReleaseAdminServiceLockChanged(VersionPart release, address service, bool locked);
26
+
27
+ error ErrorReleaseAdminCallerNotReleaseRegistry(address caller);
28
+ error ErrorReleaseAdminNotService(address notService);
29
+ error ErrorReleaseAdminReleaseLockAlreadySetTo(bool locked);
30
+
31
+ /// @dev release core roles
32
+ string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistry_Role";
33
+
34
+ /// @dev release core targets
35
+ string public constant RELEASE_ADMIN_TARGET_NAME = "ReleaseAdmin";
36
+
37
+ IServiceAuthorization internal _serviceAuthorization;
38
+
39
+
40
+ modifier onlyReleaseRegistry() {
41
+ (bool isMember, ) = _authority.hasRole(RELEASE_REGISTRY_ROLE().toInt(), msg.sender);
42
+ if(!isMember) {
43
+ revert ErrorReleaseAdminCallerNotReleaseRegistry(msg.sender);
44
+ }
45
+ _;
46
+ }
47
+
48
+
49
+ // @dev Only used for master release admin
50
+ constructor(address accessManager) {
51
+ initialize(
52
+ accessManager,
53
+ "MasterReleaseAdmin");
54
+ }
55
+
56
+
57
+ function completeSetup(
58
+ address registry,
59
+ address authorization,
60
+ VersionPart release,
61
+ address releaseRegistry
62
+ )
63
+ external
64
+ reinitializer(uint64(release.toInt()))
65
+ {
66
+
67
+ // checks
68
+ AccessAdminLib.checkRegistry(registry);
69
+
70
+ AccessManagerCloneable(
71
+ authority()).completeSetup(
72
+ registry,
73
+ release);
74
+
75
+ IServiceAuthorization serviceAuthorization = IServiceAuthorization(authorization);
76
+ _checkAuthorization(address(serviceAuthorization), RELEASE(), release, true, true);
77
+ _serviceAuthorization = serviceAuthorization;
78
+
79
+ // link nft ownability to registry
80
+ _linkToNftOwnable(registry);
81
+
82
+ // setup release contract
83
+ _setupReleaseRegistry(releaseRegistry);
84
+
85
+ // relase services will be authorized one by one via authorizeService()
86
+ }
87
+
88
+
89
+ /// @dev Sets up authorizaion for specified service.
90
+ /// For all authorized services its authorized functions are enabled.
91
+ /// Permissioned function: Access is restricted to release registry.
92
+ function authorizeService(
93
+ IService service,
94
+ ObjectType serviceDomain,
95
+ VersionPart release
96
+ )
97
+ external
98
+ restricted()
99
+ {
100
+ _createServiceTargetAndRole(service, serviceDomain, release);
101
+
102
+ // authorize functions of service
103
+ Str serviceTarget = _serviceAuthorization.getServiceTarget(serviceDomain);
104
+ RoleId[] memory authorizedRoles = _serviceAuthorization.getAuthorizedRoles(serviceTarget);
105
+
106
+ for (uint256 i = 0; i < authorizedRoles.length; i++) {
107
+ _authorizeFunctions(
108
+ IAuthorization(address(_serviceAuthorization)),
109
+ serviceTarget,
110
+ authorizedRoles[i]);
111
+ }
112
+ }
113
+
114
+
115
+ /// @dev Locks/unlocks all release targets.
116
+ /// For all authorized services of release its authorized functions are disabled/enabled.
117
+ /// Permissioned function: Access is restricted to release registry.
118
+ /// Note: onlyReleaseRegistry() modifier is used to prevent dead lock.
119
+ function setReleaseLocked(bool locked)
120
+ external
121
+ onlyReleaseRegistry()
122
+ {
123
+ // checks
124
+ AccessManagerCloneable accessManager = AccessManagerCloneable(authority());
125
+ if(accessManager.isLocked() == locked) {
126
+ revert ErrorReleaseAdminReleaseLockAlreadySetTo(locked);
127
+ }
128
+
129
+ // effects
130
+ accessManager.setLocked(locked);
131
+
132
+ emit LogReleaseAdminReleaseLockChanged(getRelease(), locked);
133
+ }
134
+
135
+
136
+ /// @dev Lock/unlock specific service of release.
137
+ /// Permissioned function: Access is restricted to release registry.
138
+ function setServiceLocked(IService service, bool locked)
139
+ external
140
+ restricted()
141
+ {
142
+ // assume all targets except release admin are services
143
+ // ensure release admin can not be locked
144
+ if(address(service) == address(this)) {
145
+ revert ErrorReleaseAdminNotService(address(service));
146
+ }
147
+
148
+ _setTargetLocked(address(service), locked);
149
+
150
+ emit LogReleaseAdminServiceLockChanged(service.getRelease(), address(service), locked);
151
+ }
152
+
153
+ //--- private functions -------------------------------------------------//
154
+
155
+ function _createServiceTargetAndRole(
156
+ IService service,
157
+ ObjectType serviceDomain,
158
+ VersionPart release
159
+ )
160
+ private
161
+ {
162
+ string memory baseName = ObjectTypeLib.toName(serviceDomain);
163
+
164
+ // create service target
165
+ string memory serviceTargetName = ObjectTypeLib.toVersionedName(
166
+ baseName, "Service", release);
167
+
168
+ _createUncheckedTarget(address(service), serviceTargetName, TargetType.Service);
169
+ }
170
+
171
+ //--- private initialization functions -------------------------------------------//
172
+
173
+ function _setupReleaseRegistry(address releaseRegistry)
174
+ private
175
+ onlyInitializing()
176
+ {
177
+ _createManagedTarget(address(this), RELEASE_ADMIN_TARGET_NAME, IAccess.TargetType.Core);
178
+
179
+ _createRole(
180
+ RELEASE_REGISTRY_ROLE(),
181
+ AccessAdminLib.toRole({
182
+ adminRoleId: ADMIN_ROLE(),
183
+ roleType: RoleType.Contract,
184
+ maxMemberCount: 1,
185
+ name: RELEASE_REGISTRY_ROLE_NAME}));
186
+
187
+ FunctionInfo[] memory functions;
188
+ functions = new FunctionInfo[](2);
189
+ functions[0] = AccessAdminLib.toFunction(ReleaseAdmin.authorizeService.selector, "authorizeService");
190
+ functions[1] = AccessAdminLib.toFunction(ReleaseAdmin.setServiceLocked.selector, "setServiceLocked");
191
+ _authorizeTargetFunctions(address(this), RELEASE_REGISTRY_ROLE(), functions, true);
192
+
193
+ _grantRoleToAccount(RELEASE_REGISTRY_ROLE(), releaseRegistry);
194
+ }
195
+ }
@@ -5,6 +5,8 @@ import {RELEASE} from "../type/ObjectType.sol";
5
5
  import {SCHEDULED, DEPLOYING, DEPLOYED, SKIPPED, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
6
6
  import {Lifecycle} from "../shared/Lifecycle.sol";
7
7
 
8
+ /// @dev Release lifeycle state machine.
9
+ /// Helper contract for ReleaseRegistry.
8
10
  contract ReleaseLifecycle is
9
11
  Lifecycle
10
12
  {