@etherisc/gif-next 0.0.2-e79d227-681 → 0.0.2-e7a5428-226

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 (504) hide show
  1. package/README.md +57 -1
  2. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
  3. package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
  4. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
  5. package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
  6. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
  7. package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -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 +105 -185
  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 +58 -127
  31. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
  32. package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
  33. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
  34. package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -82
  35. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
  36. package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +37 -106
  37. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
  38. package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
  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 +183 -128
  42. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
  43. package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
  44. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
  45. package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +324 -250
  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 +191 -182
  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 +94 -100
  55. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
  56. package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +196 -155
  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 +600 -296
  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 +88 -45
  65. package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
  66. package/artifacts/contracts/instance/IInstance.sol/IInstance.json +482 -50
  67. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
  68. package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +373 -13
  69. package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
  70. package/artifacts/contracts/instance/Instance.sol/Instance.json +493 -85
  71. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
  72. package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1017 -334
  73. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
  74. package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +380 -52
  75. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
  76. package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +914 -554
  77. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
  78. package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +377 -80
  79. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
  80. package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -57
  81. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
  82. package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +690 -566
  83. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
  84. package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
  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 +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 +77 -81
  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 +41 -45
  109. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
  110. package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
  111. package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
  112. package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -65
  113. package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
  114. package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
  115. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
  116. package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -55
  117. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
  118. package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -114
  119. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
  120. package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
  121. package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
  122. package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
  123. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
  124. package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -76
  125. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
  126. package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
  127. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
  128. package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -63
  129. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
  130. package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
  131. package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
  132. package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -76
  133. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
  134. package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
  135. package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
  136. package/artifacts/contracts/pool/PoolService.sol/PoolService.json +574 -360
  137. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
  138. package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -74
  139. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
  140. package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +293 -63
  141. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
  142. package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -46
  143. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
  144. package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -182
  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 +292 -195
  149. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
  150. package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +127 -99
  151. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
  152. package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +235 -4
  153. package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
  154. package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
  155. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
  156. package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
  157. package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
  158. package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
  159. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
  160. package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +168 -157
  161. package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
  162. package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
  163. package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
  164. package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
  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 +129 -85
  169. package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
  170. package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
  171. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
  172. package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +103 -75
  173. package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
  174. package/artifacts/contracts/product/Product.sol/Product.json +187 -176
  175. package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
  176. package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
  177. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
  178. package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +103 -47
  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 +54 -19
  183. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
  184. package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
  185. package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
  186. package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
  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 +92 -57
  190. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
  191. package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -479
  192. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
  193. package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1061 -0
  194. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
  195. package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +75 -39
  196. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
  197. package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +79 -43
  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 +120 -60
  208. package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
  209. package/artifacts/contracts/shared/Component.sol/Component.json +60 -50
  210. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
  211. package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +247 -531
  212. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
  213. package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +111 -95
  214. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
  215. package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
  216. package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
  217. package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
  218. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
  219. package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
  220. package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
  221. package/artifacts/contracts/shared/IComponent.sol/IComponent.json +41 -31
  222. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
  223. package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +155 -382
  224. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
  225. package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +41 -45
  226. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
  227. package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +6 -6
  228. package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
  229. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
  230. package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
  231. package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
  232. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
  233. package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -1
  234. package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
  235. package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
  236. package/artifacts/contracts/shared/IService.sol/IService.json +56 -3
  237. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
  238. package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
  239. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
  240. package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -64
  241. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
  242. package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +6 -6
  243. package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
  244. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
  245. package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
  246. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
  247. package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
  248. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
  249. package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
  250. package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
  251. package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
  252. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
  253. package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
  254. package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
  255. package/artifacts/contracts/shared/Service.sol/Service.json +51 -11
  256. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
  257. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
  258. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
  259. package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
  260. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
  261. package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
  262. package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
  263. package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1026 -101
  264. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
  265. package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
  266. package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
  267. package/artifacts/contracts/staking/Staking.sol/Staking.json +1218 -214
  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/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
  271. package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
  272. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
  273. package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -61
  274. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
  275. package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +174 -217
  276. package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
  277. package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
  278. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
  279. package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -55
  280. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
  281. package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +957 -603
  282. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
  283. package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +101 -51
  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 +11 -11
  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 +94 -38
  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 +30 -6
  315. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
  316. package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
  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/SelectorLib.json +21 -2
  321. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
  322. package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
  323. package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
  324. package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
  325. package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
  326. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
  327. package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
  328. package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
  329. package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
  330. package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
  331. package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
  332. package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
  333. package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
  334. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
  335. package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
  336. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
  337. package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
  338. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
  339. package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
  340. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
  341. package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
  342. package/contracts/accounting/AccountingService.sol +274 -0
  343. package/contracts/accounting/AccountingServiceManager.sol +38 -0
  344. package/contracts/accounting/IAccountingService.sol +47 -0
  345. package/contracts/authorization/AccessAdmin.sol +422 -258
  346. package/contracts/authorization/AccessAdminLib.sol +396 -0
  347. package/contracts/authorization/AccessManagerCloneable.sol +146 -4
  348. package/contracts/authorization/Authorization.sol +142 -262
  349. package/contracts/authorization/IAccess.sol +25 -7
  350. package/contracts/authorization/IAccessAdmin.sol +87 -80
  351. package/contracts/authorization/IAuthorization.sol +9 -43
  352. package/contracts/authorization/IServiceAuthorization.sol +55 -17
  353. package/contracts/authorization/ServiceAuthorization.sol +248 -34
  354. package/contracts/distribution/BasicDistribution.sol +16 -14
  355. package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
  356. package/contracts/distribution/Distribution.sol +38 -75
  357. package/contracts/distribution/DistributionService.sol +181 -87
  358. package/contracts/distribution/DistributionServiceManager.sol +1 -1
  359. package/contracts/distribution/IDistributionComponent.sol +3 -10
  360. package/contracts/distribution/IDistributionService.sol +34 -19
  361. package/contracts/examples/fire/FirePool.sol +6 -6
  362. package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
  363. package/contracts/examples/fire/FireProduct.sol +15 -13
  364. package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
  365. package/contracts/examples/unpermissioned/SimpleDistribution.sol +34 -11
  366. package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
  367. package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
  368. package/contracts/examples/unpermissioned/SimplePool.sol +7 -13
  369. package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
  370. package/contracts/examples/unpermissioned/SimpleProduct.sol +119 -27
  371. package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
  372. package/contracts/instance/BundleSet.sol +4 -4
  373. package/contracts/instance/IInstance.sol +92 -19
  374. package/contracts/instance/IInstanceService.sol +52 -9
  375. package/contracts/instance/Instance.sol +163 -57
  376. package/contracts/instance/InstanceAdmin.sol +271 -166
  377. package/contracts/instance/InstanceAuthorizationV3.sol +89 -40
  378. package/contracts/instance/InstanceReader.sol +422 -369
  379. package/contracts/instance/InstanceService.sol +252 -176
  380. package/contracts/instance/InstanceServiceManager.sol +1 -1
  381. package/contracts/instance/InstanceStore.sol +13 -2
  382. package/contracts/instance/RiskSet.sol +21 -14
  383. package/contracts/instance/base/BalanceStore.sol +4 -6
  384. package/contracts/instance/base/ObjectCounter.sol +1 -2
  385. package/contracts/instance/base/ObjectLifecycle.sol +6 -8
  386. package/contracts/instance/base/ObjectSet.sol +7 -8
  387. package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
  388. package/contracts/instance/module/IBundle.sol +6 -5
  389. package/contracts/instance/module/IComponents.sol +19 -7
  390. package/contracts/instance/module/IDistribution.sol +21 -8
  391. package/contracts/instance/module/IPolicy.sol +28 -8
  392. package/contracts/instance/module/IRisk.sol +4 -0
  393. package/contracts/oracle/BasicOracle.sol +2 -4
  394. package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
  395. package/contracts/oracle/IOracle.sol +9 -4
  396. package/contracts/oracle/Oracle.sol +3 -5
  397. package/contracts/oracle/OracleService.sol +24 -23
  398. package/contracts/oracle/OracleServiceManager.sol +1 -1
  399. package/contracts/pool/BasicPool.sol +3 -16
  400. package/contracts/pool/BasicPoolAuthorization.sol +29 -16
  401. package/contracts/pool/BundleService.sol +67 -104
  402. package/contracts/pool/BundleServiceManager.sol +1 -1
  403. package/contracts/pool/IBundleService.sol +27 -33
  404. package/contracts/pool/IPoolService.sol +57 -40
  405. package/contracts/pool/Pool.sol +13 -25
  406. package/contracts/pool/PoolLib.sol +341 -0
  407. package/contracts/pool/PoolService.sol +203 -201
  408. package/contracts/pool/PoolServiceManager.sol +1 -1
  409. package/contracts/product/ApplicationService.sol +86 -18
  410. package/contracts/product/ApplicationServiceManager.sol +1 -1
  411. package/contracts/product/BasicProduct.sol +3 -3
  412. package/contracts/product/BasicProductAuthorization.sol +32 -11
  413. package/contracts/product/ClaimService.sol +187 -171
  414. package/contracts/product/ClaimServiceManager.sol +1 -1
  415. package/contracts/product/IApplicationService.sol +24 -2
  416. package/contracts/product/IClaimService.sol +18 -5
  417. package/contracts/product/IPolicyService.sol +20 -8
  418. package/contracts/product/IPricingService.sol +1 -0
  419. package/contracts/product/IProductComponent.sol +4 -1
  420. package/contracts/product/IRiskService.sol +25 -10
  421. package/contracts/product/PolicyService.sol +110 -198
  422. package/contracts/product/PolicyServiceLib.sol +139 -0
  423. package/contracts/product/PolicyServiceManager.sol +1 -1
  424. package/contracts/product/PricingService.sol +52 -46
  425. package/contracts/product/PricingServiceManager.sol +3 -3
  426. package/contracts/product/Product.sol +93 -27
  427. package/contracts/product/RiskService.sol +119 -36
  428. package/contracts/product/RiskServiceManager.sol +1 -1
  429. package/contracts/registry/ChainNft.sol +4 -2
  430. package/contracts/registry/IRegistry.sol +23 -24
  431. package/contracts/registry/IRelease.sol +29 -0
  432. package/contracts/registry/Registry.sol +22 -11
  433. package/contracts/registry/RegistryAdmin.sol +100 -363
  434. package/contracts/registry/RegistryAuthorization.sol +309 -0
  435. package/contracts/registry/RegistryService.sol +4 -4
  436. package/contracts/registry/RegistryServiceManager.sol +1 -1
  437. package/contracts/registry/ReleaseAdmin.sol +195 -0
  438. package/contracts/registry/ReleaseLifecycle.sol +2 -0
  439. package/contracts/registry/ReleaseRegistry.sol +157 -117
  440. package/contracts/registry/ServiceAuthorizationV3.sol +194 -27
  441. package/contracts/registry/TokenRegistry.sol +61 -59
  442. package/contracts/shared/Component.sol +34 -37
  443. package/contracts/shared/ComponentService.sol +314 -433
  444. package/contracts/shared/ComponentServiceManager.sol +1 -1
  445. package/contracts/shared/ContractLib.sol +164 -76
  446. package/contracts/shared/IComponent.sol +1 -10
  447. package/contracts/shared/IComponentService.sol +22 -41
  448. package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
  449. package/contracts/shared/IKeyValueStore.sol +1 -1
  450. package/contracts/shared/INftOwnable.sol +2 -0
  451. package/contracts/shared/IRegisterable.sol +15 -5
  452. package/contracts/shared/IService.sol +3 -5
  453. package/contracts/shared/InitializableERC165.sol +9 -1
  454. package/contracts/shared/InstanceLinkedComponent.sol +7 -18
  455. package/contracts/shared/KeyValueStore.sol +3 -3
  456. package/contracts/shared/NftOwnable.sol +8 -6
  457. package/contracts/shared/PolicyHolder.sol +4 -3
  458. package/contracts/shared/Registerable.sol +42 -19
  459. package/contracts/shared/RegistryLinked.sol +1 -1
  460. package/contracts/shared/Service.sol +13 -30
  461. package/contracts/shared/TokenHandler.sol +45 -92
  462. package/contracts/staking/IStaking.sol +155 -64
  463. package/contracts/staking/IStakingService.sol +45 -75
  464. package/contracts/staking/Staking.sol +444 -203
  465. package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
  466. package/contracts/staking/StakingManager.sol +1 -2
  467. package/contracts/staking/StakingReader.sol +41 -80
  468. package/contracts/staking/StakingService.sol +62 -181
  469. package/contracts/staking/StakingServiceManager.sol +6 -4
  470. package/contracts/staking/StakingStore.sol +697 -329
  471. package/contracts/staking/TargetManagerLib.sol +1 -1
  472. package/contracts/type/Amount.sol +4 -0
  473. package/contracts/type/Blocknumber.sol +15 -15
  474. package/contracts/type/ChainId.sol +101 -0
  475. package/contracts/type/Fee.sol +8 -8
  476. package/contracts/type/NftId.sol +3 -3
  477. package/contracts/type/ObjectType.sol +67 -38
  478. package/contracts/type/RiskId.sol +9 -3
  479. package/contracts/type/RoleId.sol +63 -45
  480. package/contracts/type/Seconds.sol +14 -0
  481. package/contracts/type/Selector.sol +5 -0
  482. package/contracts/type/String.sol +12 -0
  483. package/contracts/type/Timestamp.sol +4 -7
  484. package/contracts/type/UFixed.sol +35 -127
  485. package/contracts/type/Version.sol +54 -5
  486. package/contracts/upgradeability/IVersionable.sol +3 -0
  487. package/contracts/upgradeability/ProxyManager.sol +26 -12
  488. package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
  489. package/contracts/upgradeability/Versionable.sol +6 -3
  490. package/package.json +2 -2
  491. package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
  492. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
  493. package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
  494. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
  495. package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
  496. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
  497. package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
  498. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
  499. package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
  500. package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
  501. package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
  502. package/contracts/authorization/ReleaseAccessManager.sol +0 -38
  503. package/contracts/instance/module/IAccess.sol +0 -46
  504. package/contracts/shared/ComponentVerifyingService.sol +0 -128
@@ -1,23 +1,23 @@
1
1
  // SPDX-License-Identifier: UNLICENSED
2
2
  pragma solidity ^0.8.20;
3
3
 
4
- import {AccessAdmin} from "../authorization/AccessAdmin.sol";
5
- import {IAccess} from "../authorization/IAccess.sol";
4
+ import {IAuthorization} from "../authorization/IAuthorization.sol";
6
5
  import {IRegistry} from "./IRegistry.sol";
7
6
  import {IService} from "../shared/IService.sol";
8
- import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
9
7
  import {IStaking} from "../staking/IStaking.sol";
10
- import {ObjectType, ObjectTypeLib, ALL, REGISTRY, STAKING, POOL, RELEASE} from "../type/ObjectType.sol";
11
- import {ReleaseRegistry} from "./ReleaseRegistry.sol";
12
- import {RoleId, RoleIdLib, ADMIN_ROLE, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
13
- import {StakingStore} from "../staking/StakingStore.sol";
14
- import {TokenHandler} from "../shared/TokenHandler.sol";
15
- import {TokenRegistry} from "./TokenRegistry.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, REGISTRY} from "../type/ObjectType.sol";
13
+ import {RoleId, RoleIdLib, GIF_MANAGER_ROLE, GIF_ADMIN_ROLE} from "../type/RoleId.sol";
14
+ import {Str} from "../type/String.sol";
16
15
  import {VersionPart} from "../type/Version.sol";
17
16
 
18
17
  /*
19
18
  1) GIF_MANAGER_ROLE
20
19
  - can have arbitrary number of members
20
+ - responsible for release preparation
21
21
  - responsible for services registrations
22
22
  - responsible for token registration and activation
23
23
 
@@ -25,29 +25,31 @@ import {VersionPart} from "../type/Version.sol";
25
25
  - admin of GIF_MANAGER_ROLE
26
26
  - MUST have 1 member at any time
27
27
  - granted/revoked ONLY in transferAdminRole() -> consider lock out situations!!!
28
- - responsible for creation and activation of releases
28
+ - responsible for creation, activation and locking/unlocking of releases
29
29
  */
30
+
31
+ /// @dev The RegistryAdmin contract implements the central authorization for the GIF core contracts.
32
+ /// These are the release independent registry and staking contracts and their respective helper contracts.
33
+ /// The RegistryAdmin also manages the access from service contracts to the GIF core contracts
30
34
  contract RegistryAdmin is
31
35
  AccessAdmin
32
36
  {
37
+ /// @dev gif core roles
33
38
  string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
34
39
  string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
35
- string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
36
- string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
37
- string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
38
- string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
39
- string public constant STAKING_ROLE_NAME = "StakingRole";
40
40
 
41
+ /// @dev gif core targets
42
+ string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
41
43
  string public constant REGISTRY_TARGET_NAME = "Registry";
42
44
  string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
43
- string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
44
45
  string public constant STAKING_TARGET_NAME = "Staking";
45
46
  string public constant STAKING_TH_TARGET_NAME = "StakingTH";
46
47
  string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
48
+ string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
49
+ string public constant TOKEN_HANDLER_TARGET_NAME = "TokenHandler";
47
50
 
48
- uint8 public constant MAX_NUM_RELEASES = 99;
49
- // TODO consider deleting this
50
- mapping(address service => VersionPart majorVersion) private _ServiceRelease;
51
+ // completeSetup
52
+ error ErrorRegistryAdminNotRegistry(address registry);
51
53
 
52
54
  address internal _registry;
53
55
  address private _releaseRegistry;
@@ -55,397 +57,132 @@ contract RegistryAdmin is
55
57
  address private _staking;
56
58
  address private _stakingStore;
57
59
 
58
- constructor() AccessAdmin() { }
60
+ constructor() {
61
+ initialize(
62
+ address(new AccessManagerCloneable()),
63
+ "RegistryAdmin");
64
+ }
65
+
59
66
 
60
67
  function completeSetup(
61
- IRegistry registry,
68
+ address registry,
69
+ address authorization,
70
+ VersionPart release,
62
71
  address gifAdmin,
63
72
  address gifManager
64
73
  )
65
- external
66
- initializer
74
+ public
75
+ virtual
76
+ reinitializer(type(uint8).max)
67
77
  onlyDeployer()
68
78
  {
69
- _registry = address(registry);
70
- _releaseRegistry = registry.getReleaseRegistryAddress();
71
- _tokenRegistry = registry.getTokenRegistryAddress();
72
- _staking = registry.getStakingAddress();
79
+ // checks
80
+ AccessAdminLib.checkRegistry(registry);
81
+
82
+ AccessManagerCloneable(
83
+ authority()).completeSetup(
84
+ registry,
85
+ release);
86
+
87
+ _checkAuthorization(authorization, REGISTRY(), release, false, true);
88
+
89
+ _registry = registry;
90
+ _authorization = IAuthorization(authorization);
91
+
92
+ IRegistry registryContract = IRegistry(registry);
93
+ _releaseRegistry = registryContract.getReleaseRegistryAddress();
94
+ _tokenRegistry = registryContract.getTokenRegistryAddress();
95
+ _staking = registryContract.getStakingAddress();
73
96
  _stakingStore = address(
74
97
  IStaking(_staking).getStakingStore());
75
98
 
76
- // at this moment all registry contracts are deployed and fully intialized
77
- _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
99
+ // link nft ownability to registry
100
+ _linkToNftOwnable(_registry);
78
101
 
79
- _setupGifAdminRole(gifAdmin);
80
- _setupGifManagerRole(gifManager);
81
-
82
- _setupReleaseRegistry();
83
- _setupRegistry();
84
- _setupStaking();
85
- }
102
+ // setup registry core targets
103
+ _createCoreTargets(_authorization.getMainTargetName());
86
104
 
105
+ // setup non-contract roles
106
+ _createRoles(_authorization);
107
+ _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
108
+ _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
87
109
 
88
- /// @dev Sets up authorizaion for specified service.
89
- /// For all authorized services its authorized functions are enabled.
90
- /// Permissioned function: Access is restricted to release manager.
91
- function authorizeService(
92
- IServiceAuthorization serviceAuthorization,
93
- IService service,
94
- ObjectType serviceDomain,
95
- VersionPart releaseVersion
96
- )
97
- external
98
- restricted()
99
- {
100
- _createServiceTargetAndRole(service, serviceDomain, releaseVersion);
101
- _authorizeServiceFunctions(serviceAuthorization, service, serviceDomain, releaseVersion);
110
+ // authorize functions of registry and staking contracts
111
+ _createTargetAuthorizations(_authorization);
102
112
  }
103
113
 
104
- function grantServiceRole(
105
- IService service,
106
- ObjectType domain,
107
- VersionPart version
108
- )
109
- external
110
- restricted()
111
- {
112
- _grantRoleToAccount(
113
- RoleIdLib.roleForTypeAndVersion(
114
- domain,
115
- version),
116
- address(service));
117
- }
118
114
 
119
- function grantServiceRoleForAllVersions(IService service, ObjectType domain)
115
+ function grantServiceRoleForAllVersions(
116
+ IService service,
117
+ ObjectType domain
118
+ )
120
119
  external
121
120
  restricted()
122
121
  {
123
122
  _grantRoleToAccount(
124
- RoleIdLib.roleForTypeAndAllVersions(domain),
123
+ RoleIdLib.toGenericServiceRoleId(domain),
125
124
  address(service));
126
125
  }
127
126
 
128
- function setServiceLocked(IService service, bool locked)
129
- external
130
- restricted()
131
- {
132
- _setTargetClosed(address(service), locked);
133
- }
134
-
135
- /*function transferAdmin(address to)
136
- external
137
- restricted // only with GIF_ADMIN_ROLE or nft owner
138
- {
139
- _accessManager.revoke(GIF_ADMIN_ROLE, );
140
- _accesssManager.grant(GIF_ADMIN_ROLE, to, 0);
141
- }*/
142
-
143
127
  //--- view functions ----------------------------------------------------//
144
128
 
145
- function getGifAdminRole() external view returns (RoleId) {
129
+ function getGifAdminRole() external pure returns (RoleId) {
146
130
  return GIF_ADMIN_ROLE();
147
131
  }
148
132
 
149
- function getGifManagerRole() external view returns (RoleId) {
133
+ function getGifManagerRole() external pure returns (RoleId) {
150
134
  return GIF_MANAGER_ROLE();
151
135
  }
152
136
 
153
- //--- private functions -------------------------------------------------//
154
-
155
- function _createServiceTargetAndRole(
156
- IService service,
157
- ObjectType serviceDomain,
158
- VersionPart releaseVersion
159
- )
160
- private
161
- {
162
- string memory baseName = ObjectTypeLib.toName(serviceDomain);
163
- uint256 versionInt = releaseVersion.toInt();
164
-
165
- // create service target
166
- string memory serviceTargetName = ObjectTypeLib.toVersionedName(
167
- baseName, "Service", versionInt);
168
-
169
- _createTarget(
170
- address(service),
171
- serviceTargetName,
172
- true,
173
- false);
174
-
175
- _setTargetClosed(address(service), true);
176
-
177
- // create service role
178
- RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
179
- serviceDomain,
180
- releaseVersion);
181
-
182
- _createRole(
183
- serviceRoleId,
184
- toRole({
185
- adminRoleId: ADMIN_ROLE(),
186
- roleType: RoleType.Contract,
187
- maxMemberCount: 1,
188
- name: ObjectTypeLib.toVersionedName(
189
- baseName,
190
- "ServiceRole",
191
- versionInt)}));
192
-
193
- _grantRoleToAccount(
194
- serviceRoleId,
195
- address(service));
196
- }
197
-
137
+ //--- private initialization functions -------------------------------------------//
198
138
 
199
- function _authorizeServiceFunctions(
200
- IServiceAuthorization serviceAuthorization,
201
- IService service,
202
- ObjectType serviceDomain,
203
- VersionPart releaseVersion
204
- )
205
- private
139
+ function _createRoles(IAuthorization authorization)
140
+ internal
206
141
  {
207
- ObjectType authorizedDomain;
208
- RoleId authorizedRoleId;
142
+ RoleId[] memory roles = authorization.getRoles();
209
143
 
210
- ObjectType[] memory authorizedDomains = serviceAuthorization.getAuthorizedDomains(serviceDomain);
144
+ for(uint256 i = 0; i < roles.length; i++) {
145
+ RoleId roleId = roles[i];
146
+ RoleInfo memory roleInfo = authorization.getRoleInfo(roleId);
211
147
 
212
- for (uint256 i = 0; i < authorizedDomains.length; i++) {
213
- authorizedDomain = authorizedDomains[i];
214
-
215
- // derive authorized role from authorized domain
216
- if (authorizedDomain == ALL()) {
217
- authorizedRoleId = PUBLIC_ROLE();
218
- } else {
219
- authorizedRoleId = RoleIdLib.roleForTypeAndVersion(
220
- authorizedDomain,
221
- releaseVersion);
148
+ // create role if not exists
149
+ if (!roleExists(roleInfo.name.toString())) {
150
+ _createRole(
151
+ roleId,
152
+ roleInfo);
222
153
  }
223
-
224
- // get authorized functions for authorized domain
225
- IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
226
- serviceDomain,
227
- authorizedDomain);
228
-
229
- _authorizeTargetFunctions(
230
- address(service),
231
- authorizedRoleId,
232
- authorizatedFunctions);
233
154
  }
234
155
  }
235
156
 
236
- //--- private initialization functions -------------------------------------------//
237
-
238
- function _setupGifAdminRole(address gifAdmin)
239
- private
240
- onlyInitializing()
241
- {
242
-
243
- _createRole(
244
- GIF_ADMIN_ROLE(),
245
- toRole({
246
- adminRoleId: ADMIN_ROLE(),
247
- roleType: RoleType.Gif,
248
- maxMemberCount: 2, // TODO decide on max member count
249
- name: GIF_ADMIN_ROLE_NAME}));
250
-
251
- // for Registry
252
- FunctionInfo[] memory functions;
253
- functions = new FunctionInfo[](1);
254
- functions[0] = toFunction(IRegistry.registerRegistry.selector, "registerRegistry");
255
- _authorizeTargetFunctions(_registry, GIF_ADMIN_ROLE(), functions);
256
-
257
- // for ReleaseRegistry
258
- functions = new FunctionInfo[](4);
259
- functions[0] = toFunction(ReleaseRegistry.createNextRelease.selector, "createNextRelease");
260
- functions[1] = toFunction(ReleaseRegistry.activateNextRelease.selector, "activateNextRelease");
261
- functions[2] = toFunction(ReleaseRegistry.pauseRelease.selector, "pauseRelease");
262
- functions[3] = toFunction(ReleaseRegistry.unpauseRelease.selector, "unpauseRelease");
263
- _authorizeTargetFunctions(_releaseRegistry, GIF_ADMIN_ROLE(), functions);
264
-
265
- _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
266
- }
267
-
268
- function _setupGifManagerRole(address gifManager)
269
- private
270
- onlyInitializing()
271
- {
272
-
273
- _createRole(
274
- GIF_MANAGER_ROLE(),
275
- toRole({
276
- adminRoleId: ADMIN_ROLE(),
277
- roleType: RoleType.Gif,
278
- maxMemberCount: 1,
279
- name: GIF_MANAGER_ROLE_NAME}));
280
-
281
- // for TokenRegistry
282
- FunctionInfo[] memory functions;
283
- functions = new FunctionInfo[](5);
284
- functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
285
- functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
286
- functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
287
- functions[3] = toFunction(TokenRegistry.setActiveForVersion.selector, "setActiveForVersion");
288
- // TODO find a better way (only needed for testing)
289
- functions[4] = toFunction(TokenRegistry.setActiveWithVersionCheck.selector, "setActiveWithVersionCheck");
290
- _authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
291
-
292
- // for ReleaseRegistry
293
- functions = new FunctionInfo[](2);
294
- functions[0] = toFunction(ReleaseRegistry.prepareNextRelease.selector, "prepareNextRelease");
295
- functions[1] = toFunction(ReleaseRegistry.registerService.selector, "registerService");
296
- _authorizeTargetFunctions(_releaseRegistry, GIF_MANAGER_ROLE(), functions);
297
-
298
- _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
299
- }
300
-
301
157
 
302
- function _setupReleaseRegistry()
303
- private
304
- onlyInitializing()
158
+ function _createCoreTargets(string memory registryTargetName)
159
+ internal
305
160
  {
306
-
307
- _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
308
-
309
- RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
310
- _createRole(
311
- releaseRegistryRoleId,
312
- toRole({
313
- adminRoleId: ADMIN_ROLE(),
314
- roleType: RoleType.Contract,
315
- maxMemberCount: 1,
316
- name: RELEASE_REGISTRY_ROLE_NAME}));
317
-
318
- FunctionInfo[] memory functions;
319
- functions = new FunctionInfo[](4);
320
- functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
321
- functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
322
- functions[2] = toFunction(RegistryAdmin.grantServiceRole.selector, "grantServiceRole");
323
- functions[3] = toFunction(RegistryAdmin.setServiceLocked.selector, "setServiceLocked");
324
- _authorizeTargetFunctions(address(this), releaseRegistryRoleId, functions);
325
-
326
- _grantRoleToAccount(releaseRegistryRoleId, _releaseRegistry);
161
+ // registry
162
+ _createUncheckedTarget(_registry, registryTargetName, TargetType.Core);
163
+ _createUncheckedTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, TargetType.Core);
164
+ _createUncheckedTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, TargetType.Core);
165
+ _createUncheckedTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, TargetType.Core);
166
+
167
+ // staking
168
+ _createUncheckedTarget(_staking, STAKING_TARGET_NAME, TargetType.Core);
169
+ _createUncheckedTarget(_stakingStore, STAKING_STORE_TARGET_NAME, TargetType.Core);
327
170
  }
328
171
 
329
172
 
330
- function _setupRegistry()
173
+ function _createTargetAuthorizations(IAuthorization authorization)
331
174
  internal
332
- virtual
333
- onlyInitializing()
334
175
  {
335
- _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
336
-
337
- // registry function authorization for registry service
338
- RoleId registryServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(REGISTRY());
339
- _createRole(
340
- registryServiceRoleId,
341
- toRole({
342
- adminRoleId: ADMIN_ROLE(),
343
- roleType: RoleType.Contract,
344
- maxMemberCount: MAX_NUM_RELEASES,
345
- name: REGISTRY_SERVICE_ROLE_NAME}));
346
-
347
- // authorize registry service
348
- FunctionInfo[] memory functions;
349
- functions = new FunctionInfo[](2);
350
- functions[0] = toFunction(IRegistry.register.selector, "register");
351
- functions[1] = toFunction(IRegistry.registerWithCustomType.selector, "registerWithCustomType");
352
- _authorizeTargetFunctions(_registry, registryServiceRoleId, functions);
353
-
354
- // authorize release registry
355
- RoleId releaseRegistryRoleId = RoleIdLib.roleForType(RELEASE());
356
- functions = new FunctionInfo[](1);
357
- functions[0] = toFunction(IRegistry.registerService.selector, "registerService");
358
- _authorizeTargetFunctions(_registry, releaseRegistryRoleId, functions);
359
- }
176
+ Str[] memory targets = authorization.getTargets();
177
+ Str target;
360
178
 
179
+ for(uint256 i = 0; i < targets.length; i++) {
180
+ target = targets[i];
181
+ RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
361
182
 
362
- function _setupStaking()
363
- private
364
- onlyInitializing()
365
- {
366
- _createTarget(_staking, STAKING_TARGET_NAME, true, false);
367
- _createTarget(address(IStaking(_staking).getTokenHandler()), STAKING_TH_TARGET_NAME, true, false);
368
- _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
369
-
370
- // staking function authorization for staking service
371
- RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
372
- _createRole(
373
- stakingServiceRoleId,
374
- toRole({
375
- adminRoleId: ADMIN_ROLE(),
376
- roleType: RoleType.Contract,
377
- maxMemberCount: MAX_NUM_RELEASES,
378
- name: STAKING_SERVICE_ROLE_NAME}));
379
-
380
- FunctionInfo[] memory functions;
381
- functions = new FunctionInfo[](12);
382
- functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
383
- functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
384
- functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
385
- functions[3] = toFunction(IStaking.refillRewardReserves.selector, "refillRewardReserves");
386
- functions[4] = toFunction(IStaking.withdrawRewardReserves.selector, "withdrawRewardReserves");
387
- functions[5] = toFunction(IStaking.createStake.selector, "createStake");
388
- functions[6] = toFunction(IStaking.stake.selector, "stake");
389
- functions[7] = toFunction(IStaking.unstake.selector, "unstake");
390
- functions[8] = toFunction(IStaking.restake.selector, "restake");
391
- functions[9] = toFunction(IStaking.updateRewards.selector, "updateRewards");
392
- functions[10] = toFunction(IStaking.claimRewards.selector, "claimRewards");
393
- _authorizeTargetFunctions(_staking, stakingServiceRoleId, functions);
394
-
395
- // grant token handler authorizations
396
- IStaking staking = IStaking(_staking);
397
- functions = new FunctionInfo[](2);
398
- functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
399
- functions[1] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
400
-
401
- _authorizeTargetFunctions(
402
- address(staking.getTokenHandler()),
403
- stakingServiceRoleId,
404
- functions);
405
-
406
- // staking function authorization for pool service
407
- RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
408
- _createRole(
409
- poolServiceRoleId,
410
- toRole({
411
- adminRoleId: ADMIN_ROLE(),
412
- roleType: RoleType.Contract,
413
- maxMemberCount: MAX_NUM_RELEASES,
414
- name: POOL_SERVICE_ROLE_NAME}));
415
-
416
- // staking function authorizations
417
- functions = new FunctionInfo[](2);
418
- functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
419
- functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
420
- _authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
421
-
422
- // staking store function authorizations
423
- RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
424
- _createRole(
425
- stakingRoleId,
426
- toRole({
427
- adminRoleId: ADMIN_ROLE(),
428
- roleType: RoleType.Contract,
429
- maxMemberCount: 1,
430
- name: STAKING_ROLE_NAME}));
431
-
432
- functions = new FunctionInfo[](14);
433
- functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
434
- functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
435
- functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
436
- functions[3] = toFunction(StakingStore.increaseReserves.selector, "increaseReserves");
437
- functions[4] = toFunction(StakingStore.decreaseReserves.selector, "decreaseReserves");
438
- functions[5] = toFunction(StakingStore.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
439
- functions[6] = toFunction(StakingStore.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
440
- functions[7] = toFunction(StakingStore.create.selector, "create");
441
- functions[8] = toFunction(StakingStore.update.selector, "update");
442
- functions[9] = toFunction(StakingStore.increaseStake.selector, "increaseStake");
443
- functions[10] = toFunction(StakingStore.restakeRewards.selector, "restakeRewards");
444
- functions[11] = toFunction(StakingStore.updateRewards.selector, "updateRewards");
445
- functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
446
- functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
447
- _authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
448
-
449
- _grantRoleToAccount(stakingRoleId, _staking);
183
+ for(uint256 j = 0; j < authorizedRoles.length; j++) {
184
+ _authorizeFunctions(authorization, target, authorizedRoles[j]);
185
+ }
186
+ }
450
187
  }
451
188
  }