@etherisc/gif-next 0.0.2-f1b01e0-214 → 0.0.2-f1e6957-384
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.
- package/README.md +76 -341
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +100 -32
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +111 -45
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +52 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +367 -126
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1546 -211
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +261 -59
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +258 -82
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +97 -14
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +256 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +426 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +52 -27
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +264 -64
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +20 -11
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +368 -139
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +160 -78
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +19 -10
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +228 -15
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +81 -52
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +263 -63
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +109 -68
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +263 -63
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +74 -33
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +263 -63
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +35 -26
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +85 -60
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +263 -63
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +264 -78
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +263 -63
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/{shared/IKeyValueStore.sol/IKeyValueStore.json → instance/BaseStore.sol/BaseStore.json} +51 -229
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +2 -2
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -33
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +297 -3
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +407 -97
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +756 -392
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +231 -75
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +492 -424
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +323 -29
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +100 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1444 -2133
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +101 -88
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +25 -16
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +277 -60
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +19 -10
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +29 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +19 -10
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +83 -38
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +116 -50
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +37 -36
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +263 -63
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +294 -117
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +144 -58
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +180 -27
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +19 -10
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +19 -10
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +88 -22
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +324 -65
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +141 -63
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +216 -59
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +113 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +19 -10
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +263 -63
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +142 -102
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +128 -70
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +166 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +50 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +55 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +29 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -10
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +203 -18
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +157 -86
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +508 -18
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +138 -72
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +93 -72
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +120 -50
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +19 -10
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +231 -46
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +101 -43
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +33 -22
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +29 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +71 -60
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +537 -300
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +330 -71
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +41 -12
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +96 -38
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +543 -226
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +167 -103
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +459 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +119 -59
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +19 -10
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +169 -174
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +130 -64
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +76 -41
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +19 -10
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +84 -105
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +19 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +29 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -10
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +19 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +29 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1384 -128
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +94 -114
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1472 -185
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +73 -72
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +139 -64
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +293 -149
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +128 -164
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +96 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1617 -817
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +140 -78
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +64 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +6 -6
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +39 -218
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +81 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +15 -3
- package/contracts/accounting/IAccountingService.sol +2 -0
- package/contracts/authorization/AccessAdmin.sol +292 -317
- package/contracts/authorization/AccessAdminLib.sol +517 -22
- package/contracts/authorization/AccessManagerCloneable.sol +0 -18
- package/contracts/authorization/Authorization.sol +64 -239
- package/contracts/authorization/IAccess.sol +23 -14
- package/contracts/authorization/IAccessAdmin.sol +25 -53
- package/contracts/authorization/IAuthorization.sol +3 -57
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +228 -34
- package/contracts/distribution/BasicDistribution.sol +3 -4
- package/contracts/distribution/BasicDistributionAuthorization.sol +11 -4
- package/contracts/distribution/Distribution.sol +9 -8
- package/contracts/distribution/DistributionService.sol +98 -35
- package/contracts/distribution/IDistributionComponent.sol +3 -1
- package/contracts/distribution/IDistributionService.sol +20 -8
- package/contracts/examples/fire/FireProduct.sol +6 -6
- package/contracts/examples/unpermissioned/SimpleProduct.sol +83 -19
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +55 -5
- package/contracts/instance/IInstanceService.sol +37 -6
- package/contracts/instance/Instance.sol +103 -56
- package/contracts/instance/InstanceAdmin.sol +151 -294
- package/contracts/instance/InstanceAuthorizationV3.sol +106 -66
- package/contracts/instance/InstanceReader.sol +350 -394
- package/contracts/instance/InstanceService.sol +180 -125
- package/contracts/instance/InstanceStore.sol +153 -128
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +10 -2
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectLifecycle.sol +2 -6
- package/contracts/instance/module/IComponents.sol +0 -2
- package/contracts/oracle/BasicOracle.sol +2 -3
- package/contracts/oracle/BasicOracleAuthorization.sol +18 -2
- package/contracts/oracle/Oracle.sol +4 -6
- package/contracts/oracle/OracleService.sol +8 -8
- package/contracts/pool/BasicPool.sol +4 -16
- package/contracts/pool/BasicPoolAuthorization.sol +10 -5
- package/contracts/pool/BundleService.sol +34 -43
- package/contracts/pool/IBundleService.sol +14 -13
- package/contracts/pool/IPoolService.sol +7 -2
- package/contracts/pool/Pool.sol +6 -18
- package/contracts/pool/PoolLib.sol +127 -2
- package/contracts/pool/PoolService.sol +40 -181
- package/contracts/product/ApplicationService.sol +64 -11
- package/contracts/product/BasicProduct.sol +2 -3
- package/contracts/product/BasicProductAuthorization.sol +11 -4
- package/contracts/product/ClaimService.sol +99 -105
- package/contracts/product/IApplicationService.sol +21 -2
- package/contracts/product/IClaimService.sol +5 -4
- package/contracts/product/IPolicyService.sol +9 -2
- package/contracts/product/IRiskService.sol +18 -3
- package/contracts/product/PolicyService.sol +40 -59
- package/contracts/product/PolicyServiceLib.sol +79 -5
- package/contracts/product/PricingService.sol +22 -25
- package/contracts/product/Product.sol +40 -16
- package/contracts/product/RiskService.sol +50 -15
- package/contracts/registry/IRegistry.sol +11 -9
- package/contracts/registry/IRelease.sol +6 -3
- package/contracts/registry/Registry.sol +15 -9
- package/contracts/registry/RegistryAdmin.sol +33 -118
- package/contracts/registry/RegistryAuthorization.sol +139 -69
- package/contracts/registry/RegistryService.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +52 -106
- package/contracts/registry/ReleaseRegistry.sol +20 -12
- package/contracts/registry/ServiceAuthorizationV3.sol +43 -32
- package/contracts/registry/TokenRegistry.sol +56 -52
- package/contracts/shared/Component.sol +8 -8
- package/contracts/shared/ComponentService.sol +245 -262
- package/contracts/shared/ContractLib.sol +106 -75
- package/contracts/shared/IComponent.sol +1 -1
- package/contracts/shared/IComponentService.sol +12 -13
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +0 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -9
- package/contracts/shared/NftOwnable.sol +3 -1
- package/contracts/shared/PolicyHolder.sol +3 -2
- package/contracts/shared/Service.sol +6 -4
- package/contracts/staking/IStaking.sol +261 -70
- package/contracts/staking/IStakingService.sol +39 -84
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +468 -217
- package/contracts/staking/StakingLib.sol +38 -124
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +62 -71
- package/contracts/staking/StakingService.sol +42 -185
- package/contracts/staking/StakingServiceManager.sol +1 -0
- package/contracts/staking/StakingStore.sol +1093 -331
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +17 -22
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +16 -3
- package/contracts/type/RoleId.sol +57 -59
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -2
- package/contracts/type/UFixed.sol +1 -0
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +0 -24
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -485
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +0 -538
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/shared/IKeyValueStore.sol +0 -54
- package/contracts/shared/KeyValueStore.sol +0 -131
- package/contracts/staking/StakingLifecycle.sol +0 -23
| @@ -9,10 +9,9 @@ import {IRiskService} from "./IRiskService.sol"; | |
| 9 9 | 
             
            import {ContractLib} from "../shared/ContractLib.sol";
         | 
| 10 10 | 
             
            import {InstanceReader} from "../instance/InstanceReader.sol";
         | 
| 11 11 | 
             
            import {ObjectType, COMPONENT, PRODUCT, RISK} from "../type/ObjectType.sol";
         | 
| 12 | 
            -
            import {ACTIVE,  | 
| 12 | 
            +
            import {ACTIVE, KEEP_STATE, CLOSED} from "../type/StateId.sol";
         | 
| 13 13 | 
             
            import {NftId} from "../type/NftId.sol";
         | 
| 14 14 | 
             
            import {RiskId, RiskIdLib} from "../type/RiskId.sol";
         | 
| 15 | 
            -
            import {StateId} from "../type/StateId.sol";
         | 
| 16 15 | 
             
            import {RiskSet} from "../instance/RiskSet.sol";
         | 
| 17 16 | 
             
            import {Service} from "../shared/Service.sol";
         | 
| 18 17 | 
             
            import {TimestampLib} from "../type/Timestamp.sol";
         | 
| @@ -45,6 +44,7 @@ contract RiskService is | |
| 45 44 | 
             
                    bytes memory data
         | 
| 46 45 | 
             
                )
         | 
| 47 46 | 
             
                    external 
         | 
| 47 | 
            +
                    virtual
         | 
| 48 48 | 
             
                    restricted()
         | 
| 49 49 | 
             
                    returns (RiskId riskId)
         | 
| 50 50 | 
             
                {
         | 
| @@ -55,10 +55,10 @@ contract RiskService is | |
| 55 55 | 
             
                    riskId = RiskIdLib.toRiskId(productNftId, id);
         | 
| 56 56 | 
             
                    IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
         | 
| 57 57 | 
             
                        productNftId: productNftId, 
         | 
| 58 | 
            -
                        createdAt: TimestampLib. | 
| 58 | 
            +
                        createdAt: TimestampLib.current(),
         | 
| 59 59 | 
             
                        data: data});
         | 
| 60 60 |  | 
| 61 | 
            -
                    instance. | 
| 61 | 
            +
                    instance.getProductStore().createRisk(
         | 
| 62 62 | 
             
                        riskId,
         | 
| 63 63 | 
             
                        riskInfo
         | 
| 64 64 | 
             
                    );
         | 
| @@ -66,6 +66,8 @@ contract RiskService is | |
| 66 66 | 
             
                    // add risk to RiskSet
         | 
| 67 67 | 
             
                    RiskSet riskSet = instance.getRiskSet();
         | 
| 68 68 | 
             
                    riskSet.add(riskId);
         | 
| 69 | 
            +
             | 
| 70 | 
            +
                    emit LogRiskServiceRiskCreated(productNftId, riskId);
         | 
| 69 71 | 
             
                }
         | 
| 70 72 |  | 
| 71 73 |  | 
| @@ -74,6 +76,7 @@ contract RiskService is | |
| 74 76 | 
             
                    bytes memory data
         | 
| 75 77 | 
             
                )
         | 
| 76 78 | 
             
                    external 
         | 
| 79 | 
            +
                    virtual
         | 
| 77 80 | 
             
                    restricted()
         | 
| 78 81 | 
             
                {
         | 
| 79 82 | 
             
                    // checks
         | 
| @@ -88,33 +91,65 @@ contract RiskService is | |
| 88 91 | 
             
                    }
         | 
| 89 92 |  | 
| 90 93 | 
             
                    riskInfo.data = data;
         | 
| 91 | 
            -
                    instance. | 
| 94 | 
            +
                    instance.getProductStore().updateRisk(riskId, riskInfo, KEEP_STATE());
         | 
| 95 | 
            +
             | 
| 96 | 
            +
                    emit LogRiskServiceRiskUpdated(productNftId, riskId);
         | 
| 92 97 | 
             
                }
         | 
| 93 98 |  | 
| 94 99 |  | 
| 95 | 
            -
                 | 
| 100 | 
            +
                /// @inheritdoc IRiskService
         | 
| 101 | 
            +
                function setRiskLocked(
         | 
| 96 102 | 
             
                    RiskId riskId,
         | 
| 97 | 
            -
                     | 
| 103 | 
            +
                    bool locked
         | 
| 98 104 | 
             
                )
         | 
| 99 105 | 
             
                    external 
         | 
| 106 | 
            +
                    virtual
         | 
| 100 107 | 
             
                    restricted()
         | 
| 101 108 | 
             
                {
         | 
| 102 109 | 
             
                    // checks
         | 
| 103 110 | 
             
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 104 111 |  | 
| 105 | 
            -
                     | 
| 106 | 
            -
             | 
| 107 | 
            -
                        revert ErrorRiskServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
         | 
| 112 | 
            +
                    if (!instance.getRiskSet().hasRisk(productNftId, riskId)) {
         | 
| 113 | 
            +
                        revert ErrorRiskServiceUnknownRisk(productNftId, riskId);
         | 
| 108 114 | 
             
                    }
         | 
| 109 115 |  | 
| 110 | 
            -
                     | 
| 111 | 
            -
             | 
| 116 | 
            +
                    if (instance.getInstanceReader().getRiskState(riskId) != ACTIVE()) {
         | 
| 117 | 
            +
                        revert ErrorRiskServiceRiskNotActive(productNftId, riskId);
         | 
| 118 | 
            +
                    }
         | 
| 112 119 |  | 
| 113 | 
            -
                    if ( | 
| 120 | 
            +
                    if (locked) {
         | 
| 121 | 
            +
                        instance.getRiskSet().deactivate(riskId);
         | 
| 122 | 
            +
                        emit LogRiskServiceRiskLocked(productNftId, riskId);
         | 
| 123 | 
            +
                    } else {
         | 
| 114 124 | 
             
                        instance.getRiskSet().activate(riskId);
         | 
| 115 | 
            -
             | 
| 116 | 
            -
             | 
| 125 | 
            +
                        emit LogRiskServiceRiskUnlocked(productNftId, riskId);
         | 
| 126 | 
            +
                    }
         | 
| 127 | 
            +
                }
         | 
| 128 | 
            +
             | 
| 129 | 
            +
                /// @inheritdoc IRiskService
         | 
| 130 | 
            +
                function closeRisk(
         | 
| 131 | 
            +
                    RiskId riskId
         | 
| 132 | 
            +
                )
         | 
| 133 | 
            +
                    external 
         | 
| 134 | 
            +
                    virtual
         | 
| 135 | 
            +
                    restricted()
         | 
| 136 | 
            +
                {
         | 
| 137 | 
            +
                    // checks
         | 
| 138 | 
            +
                    (NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
         | 
| 139 | 
            +
                    (bool exists, bool active) = instance.getRiskSet().checkRisk(productNftId, riskId);
         | 
| 140 | 
            +
             | 
| 141 | 
            +
                    if (!exists) {
         | 
| 142 | 
            +
                        revert ErrorRiskServiceUnknownRisk(productNftId, riskId);
         | 
| 117 143 | 
             
                    }
         | 
| 144 | 
            +
             | 
| 145 | 
            +
                    if (active) {
         | 
| 146 | 
            +
                        revert ErrorRiskServiceRiskNotLocked(productNftId, riskId);
         | 
| 147 | 
            +
                    }
         | 
| 148 | 
            +
             | 
| 149 | 
            +
                    // effects
         | 
| 150 | 
            +
                    instance.getProductStore().updateRiskState(riskId, CLOSED());
         | 
| 151 | 
            +
             | 
| 152 | 
            +
                    emit LogRiskServiceRiskClosed(productNftId, riskId);
         | 
| 118 153 | 
             
                }
         | 
| 119 154 |  | 
| 120 155 | 
             
                function _getAndVerifyActiveComponent(ObjectType expectedType) 
         | 
| @@ -19,13 +19,16 @@ interface IRegistry is | |
| 19 19 | 
             
                IERC165
         | 
| 20 20 | 
             
            {
         | 
| 21 21 |  | 
| 22 | 
            -
                event  | 
| 23 | 
            -
                event  | 
| 24 | 
            -
                event  | 
| 22 | 
            +
                event LogRegistryObjectRegistered(NftId nftId, NftId parentNftId, ObjectType objectType, bool isInterceptor, address objectAddress, address initialOwner);
         | 
| 23 | 
            +
                event LogRegistryServiceRegistered(VersionPart majorVersion, ObjectType domain);
         | 
| 24 | 
            +
                event LogRegistryChainRegistryRegistered(NftId nftId, uint256 chainId, address chainRegistryAddress);
         | 
| 25 25 |  | 
| 26 26 | 
             
                // initialize
         | 
| 27 27 | 
             
                error ErrorRegistryCallerNotDeployer();
         | 
| 28 28 |  | 
| 29 | 
            +
                // register()
         | 
| 30 | 
            +
                error ErrorRegistryObjectTypeNotSupported(ObjectType objectType);
         | 
| 31 | 
            +
             | 
| 29 32 | 
             
                // registerRegistry()
         | 
| 30 33 | 
             
                error ErrorRegistryNotOnMainnet(uint256 chainId);
         | 
| 31 34 | 
             
                error ErrorRegistryChainRegistryChainIdZero(NftId nftId);
         | 
| @@ -36,8 +39,7 @@ interface IRegistry is | |
| 36 39 | 
             
                // registerService()
         | 
| 37 40 | 
             
                error ErrorRegistryServiceAddressZero(); 
         | 
| 38 41 | 
             
                error ErrorRegistryServiceVersionZero(address service);
         | 
| 39 | 
            -
             | 
| 40 | 
            -
                //error ErrorRegistryServiceVersionNotDeploying(address service, VersionPart version);
         | 
| 42 | 
            +
             | 
| 41 43 | 
             
                error ErrorRegistryServiceDomainZero(address service, VersionPart version);
         | 
| 42 44 | 
             
                error ErrorRegistryNotService(address service, ObjectType objectType);
         | 
| 43 45 | 
             
                error ErrorRegistryServiceParentNotRegistry(address service, VersionPart version, NftId parentNftId);
         | 
| @@ -48,7 +50,7 @@ interface IRegistry is | |
| 48 50 |  | 
| 49 51 | 
             
                // _register()
         | 
| 50 52 | 
             
                error ErrorRegistryGlobalRegistryAsParent(address objectAddress, ObjectType objectType);
         | 
| 51 | 
            -
                error  | 
| 53 | 
            +
                error ErrorRegistryTypeCombinationInvalid(address objectAddress, ObjectType objectType, ObjectType parentType);
         | 
| 52 54 | 
             
                error ErrorRegistryContractAlreadyRegistered(address objectAddress);
         | 
| 53 55 |  | 
| 54 56 | 
             
                struct ObjectInfo {
         | 
| @@ -93,11 +95,11 @@ interface IRegistry is | |
| 93 95 | 
             
                /// May not be used to register known core types.
         | 
| 94 96 | 
             
                function registerWithCustomType(ObjectInfo memory info) external returns (NftId nftId);
         | 
| 95 97 |  | 
| 96 | 
            -
                function  | 
| 98 | 
            +
                function getInitialRelease() external view returns (VersionPart);
         | 
| 97 99 |  | 
| 98 | 
            -
                function  | 
| 100 | 
            +
                function getNextRelease() external view returns (VersionPart);
         | 
| 99 101 |  | 
| 100 | 
            -
                function  | 
| 102 | 
            +
                function getLatestRelease() external view returns (VersionPart);
         | 
| 101 103 |  | 
| 102 104 | 
             
                function getReleaseInfo(VersionPart release) external view returns (IRelease.ReleaseInfo memory);
         | 
| 103 105 |  | 
| @@ -11,13 +11,16 @@ import {VersionPart} from "../type/Version.sol"; | |
| 11 11 | 
             
            interface IRelease {
         | 
| 12 12 |  | 
| 13 13 | 
             
                struct ReleaseInfo {
         | 
| 14 | 
            +
                    // slot 0
         | 
| 15 | 
            +
                    address releaseAdmin;
         | 
| 14 16 | 
             
                    StateId state;
         | 
| 15 17 | 
             
                    VersionPart version;
         | 
| 16 | 
            -
                    bytes32 salt;
         | 
| 17 | 
            -
                    IServiceAuthorization auth;
         | 
| 18 | 
            -
                    address releaseAdmin;
         | 
| 19 18 | 
             
                    Timestamp activatedAt;
         | 
| 20 19 | 
             
                    Timestamp disabledAt;
         | 
| 20 | 
            +
                    // slot 1
         | 
| 21 | 
            +
                    IServiceAuthorization auth;
         | 
| 22 | 
            +
                    // slot 2
         | 
| 23 | 
            +
                    bytes32 salt;
         | 
| 21 24 | 
             
                }
         | 
| 22 25 |  | 
| 23 26 | 
             
                /// @dev Registers a registry contract for a specified chain.
         | 
| @@ -172,7 +172,7 @@ contract Registry is | |
| 172 172 | 
             
                        revert ErrorRegistryChainRegistryNftIdInvalid(nftId, chainId);
         | 
| 173 173 | 
             
                    }
         | 
| 174 174 |  | 
| 175 | 
            -
                    emit  | 
| 175 | 
            +
                    emit LogRegistryChainRegistryRegistered(nftId, chainId, registryAddress);
         | 
| 176 176 |  | 
| 177 177 | 
             
                    _registerRegistryForNft(
         | 
| 178 178 | 
             
                        chainId,
         | 
| @@ -231,7 +231,7 @@ contract Registry is | |
| 231 231 |  | 
| 232 232 | 
             
                    _service[version][domain] = service;
         | 
| 233 233 |  | 
| 234 | 
            -
                    emit  | 
| 234 | 
            +
                    emit LogRegistryServiceRegistered(version, domain);
         | 
| 235 235 |  | 
| 236 236 | 
             
                    nftId = _register(info);
         | 
| 237 237 | 
             
                }
         | 
| @@ -246,6 +246,11 @@ contract Registry is | |
| 246 246 | 
             
                    address objectAddress = info.objectAddress;
         | 
| 247 247 | 
             
                    ObjectType objectType = info.objectType;
         | 
| 248 248 |  | 
| 249 | 
            +
                    // specialized functions have to be used to register registries and services
         | 
| 250 | 
            +
                    if(objectType == REGISTRY() || objectType == STAKING() || objectType == SERVICE()) {
         | 
| 251 | 
            +
                        revert ErrorRegistryObjectTypeNotSupported(objectType);
         | 
| 252 | 
            +
                    }
         | 
| 253 | 
            +
             | 
| 249 254 | 
             
                    // this indidirectly enforces that the parent is registered
         | 
| 250 255 | 
             
                    // parentType would be zero for a non-registered parent which is never a valid type combination
         | 
| 251 256 | 
             
                    ObjectType parentType = _info[info.parentNftId].objectType;
         | 
| @@ -253,13 +258,13 @@ contract Registry is | |
| 253 258 | 
             
                    // check type combinations for core objects
         | 
| 254 259 | 
             
                    if(objectAddress == address(0)) {
         | 
| 255 260 | 
             
                        if(_coreObjectCombinations[objectType][parentType] == false) {
         | 
| 256 | 
            -
                            revert  | 
| 261 | 
            +
                            revert ErrorRegistryTypeCombinationInvalid(objectAddress, objectType, parentType);
         | 
| 257 262 | 
             
                        }
         | 
| 258 263 | 
             
                    }
         | 
| 259 264 | 
             
                    // check type combinations for contract objects
         | 
| 260 265 | 
             
                    else {
         | 
| 261 266 | 
             
                        if(_coreContractCombinations[objectType][parentType] == false) {
         | 
| 262 | 
            -
                            revert  | 
| 267 | 
            +
                            revert ErrorRegistryTypeCombinationInvalid(objectAddress, objectType, parentType);
         | 
| 263 268 | 
             
                        }
         | 
| 264 269 | 
             
                    }
         | 
| 265 270 |  | 
| @@ -284,9 +289,10 @@ contract Registry is | |
| 284 289 | 
             
                        objectType == ObjectTypeLib.zero() ||
         | 
| 285 290 | 
             
                        parentType == ObjectTypeLib.zero() ||
         | 
| 286 291 | 
             
                        parentType == PROTOCOL() ||
         | 
| 292 | 
            +
                        parentType == STAKING() ||
         | 
| 287 293 | 
             
                        parentType == SERVICE()
         | 
| 288 294 | 
             
                    ) {
         | 
| 289 | 
            -
                        revert  | 
| 295 | 
            +
                        revert ErrorRegistryTypeCombinationInvalid(info.objectAddress, objectType, parentType);
         | 
| 290 296 | 
             
                    }
         | 
| 291 297 |  | 
| 292 298 | 
             
                    nftId = _register(info);
         | 
| @@ -294,17 +300,17 @@ contract Registry is | |
| 294 300 |  | 
| 295 301 |  | 
| 296 302 | 
             
                /// @dev earliest GIF major version 
         | 
| 297 | 
            -
                function  | 
| 303 | 
            +
                function getInitialRelease() external view returns (VersionPart) {
         | 
| 298 304 | 
             
                    return VersionPartLib.toVersionPart(_releaseRegistry.INITIAL_GIF_VERSION());
         | 
| 299 305 | 
             
                }
         | 
| 300 306 |  | 
| 301 307 | 
             
                /// @dev next GIF release version to be released
         | 
| 302 | 
            -
                function  | 
| 308 | 
            +
                function getNextRelease() external view returns (VersionPart) {
         | 
| 303 309 | 
             
                    return _releaseRegistry.getNextVersion();
         | 
| 304 310 | 
             
                }
         | 
| 305 311 |  | 
| 306 312 | 
             
                /// @dev latest active GIF release version 
         | 
| 307 | 
            -
                function  | 
| 313 | 
            +
                function getLatestRelease() external view returns (VersionPart) { 
         | 
| 308 314 | 
             
                    return _releaseRegistry.getLatestVersion();
         | 
| 309 315 | 
             
                }
         | 
| 310 316 |  | 
| @@ -495,7 +501,7 @@ contract Registry is | |
| 495 501 | 
             
                    _info[nftId] = info;
         | 
| 496 502 | 
             
                    _setAddressForNftId(nftId, objectAddress);
         | 
| 497 503 |  | 
| 498 | 
            -
                    emit  | 
| 504 | 
            +
                    emit LogRegistryObjectRegistered(nftId, parentNftId, objectType, isInterceptor, objectAddress, owner);
         | 
| 499 505 |  | 
| 500 506 | 
             
                    // calls nft receiver(1) and interceptor(2)
         | 
| 501 507 | 
             
                    uint256 mintedTokenId = CHAIN_NFT.mint(
         | 
| @@ -2,7 +2,6 @@ | |
| 2 2 | 
             
            pragma solidity ^0.8.20;
         | 
| 3 3 |  | 
| 4 4 | 
             
            import {IAuthorization} from "../authorization/IAuthorization.sol";
         | 
| 5 | 
            -
            import {IComponent} from "../shared/IComponent.sol";
         | 
| 6 5 | 
             
            import {IRegistry} from "./IRegistry.sol";
         | 
| 7 6 | 
             
            import {IService} from "../shared/IService.sol";
         | 
| 8 7 | 
             
            import {IStaking} from "../staking/IStaking.sol";
         | 
| @@ -10,16 +9,10 @@ import {IStaking} from "../staking/IStaking.sol"; | |
| 10 9 | 
             
            import {AccessAdmin} from "../authorization/AccessAdmin.sol";
         | 
| 11 10 | 
             
            import {AccessAdminLib} from "../authorization/AccessAdminLib.sol";
         | 
| 12 11 | 
             
            import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
         | 
| 13 | 
            -
            import { | 
| 14 | 
            -
            import { | 
| 15 | 
            -
            import { | 
| 16 | 
            -
            import { | 
| 17 | 
            -
            import {Staking} from "../staking/Staking.sol";
         | 
| 18 | 
            -
            import {Str, StrLib} from "../type/String.sol";
         | 
| 19 | 
            -
            import {StakingStore} from "../staking/StakingStore.sol";
         | 
| 20 | 
            -
            import {TokenHandler} from "../shared/TokenHandler.sol";
         | 
| 21 | 
            -
            import {TokenRegistry} from "./TokenRegistry.sol";
         | 
| 22 | 
            -
            import {VersionPart, VersionPartLib} from "../type/Version.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";
         | 
| 15 | 
            +
            import {VersionPart} from "../type/Version.sol";
         | 
| 23 16 |  | 
| 24 17 | 
             
            /*
         | 
| 25 18 | 
             
                1) GIF_MANAGER_ROLE
         | 
| @@ -44,22 +37,15 @@ contract RegistryAdmin is | |
| 44 37 | 
             
                /// @dev gif core roles
         | 
| 45 38 | 
             
                string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
         | 
| 46 39 | 
             
                string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
         | 
| 47 | 
            -
                string public constant RELEASE_REGISTRY_ROLE_NAME = "ReleaseRegistryRole";
         | 
| 48 | 
            -
                string public constant STAKING_ROLE_NAME = "StakingRole";
         | 
| 49 | 
            -
             | 
| 50 | 
            -
                /// @dev gif roles for external contracts
         | 
| 51 | 
            -
                string public constant REGISTRY_SERVICE_ROLE_NAME = "RegistryServiceRole";
         | 
| 52 | 
            -
                string public constant COMPONENT_SERVICE_ROLE_NAME = "ComponentServiceRole";
         | 
| 53 | 
            -
                string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
         | 
| 54 | 
            -
                string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
         | 
| 55 40 |  | 
| 56 41 | 
             
                /// @dev gif core targets
         | 
| 57 42 | 
             
                string public constant REGISTRY_ADMIN_TARGET_NAME = "RegistryAdmin";
         | 
| 58 43 | 
             
                string public constant REGISTRY_TARGET_NAME = "Registry";
         | 
| 59 44 | 
             
                string public constant RELEASE_REGISTRY_TARGET_NAME = "ReleaseRegistry";
         | 
| 60 45 | 
             
                string public constant STAKING_TARGET_NAME = "Staking";
         | 
| 61 | 
            -
                string public constant  | 
| 46 | 
            +
                string public constant STAKING_TARGET_HANDLER_NAME = "TargetHandler";
         | 
| 62 47 | 
             
                string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
         | 
| 48 | 
            +
                string public constant STAKING_TH_TARGET_NAME = "StakingTH";
         | 
| 63 49 | 
             
                string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
         | 
| 64 50 | 
             
                string public constant TOKEN_HANDLER_TARGET_NAME = "TokenHandler";
         | 
| 65 51 |  | 
| @@ -70,6 +56,7 @@ contract RegistryAdmin is | |
| 70 56 | 
             
                address private _releaseRegistry;
         | 
| 71 57 | 
             
                address private _tokenRegistry;
         | 
| 72 58 | 
             
                address private _staking;
         | 
| 59 | 
            +
                address private _stakingTargetHandler;
         | 
| 73 60 | 
             
                address private _stakingStore;
         | 
| 74 61 |  | 
| 75 62 | 
             
                constructor() {
         | 
| @@ -82,24 +69,23 @@ contract RegistryAdmin is | |
| 82 69 | 
             
                function completeSetup(
         | 
| 83 70 | 
             
                    address registry,
         | 
| 84 71 | 
             
                    address authorization,
         | 
| 72 | 
            +
                    VersionPart release,
         | 
| 85 73 | 
             
                    address gifAdmin, 
         | 
| 86 74 | 
             
                    address gifManager
         | 
| 87 75 | 
             
                )
         | 
| 88 76 | 
             
                    public
         | 
| 89 77 | 
             
                    virtual
         | 
| 90 78 | 
             
                    reinitializer(type(uint8).max)
         | 
| 91 | 
            -
                    onlyDeployer()
         | 
| 92 79 | 
             
                {
         | 
| 93 80 | 
             
                    // checks
         | 
| 94 | 
            -
                     | 
| 81 | 
            +
                    AccessAdminLib.checkRegistry(registry);
         | 
| 95 82 |  | 
| 96 | 
            -
                    VersionPart release = VersionPartLib.toVersionPart(3);
         | 
| 97 83 | 
             
                    AccessManagerCloneable(
         | 
| 98 84 | 
             
                        authority()).completeSetup(
         | 
| 99 85 | 
             
                            registry, 
         | 
| 100 86 | 
             
                            release); 
         | 
| 101 87 |  | 
| 102 | 
            -
                    _checkAuthorization(authorization, REGISTRY(), release, true);
         | 
| 88 | 
            +
                    _checkAuthorization(authorization, REGISTRY(), release, false, true);
         | 
| 103 89 |  | 
| 104 90 | 
             
                    _registry = registry;
         | 
| 105 91 | 
             
                    _authorization = IAuthorization(authorization);
         | 
| @@ -108,25 +94,26 @@ contract RegistryAdmin is | |
| 108 94 | 
             
                    _releaseRegistry = registryContract.getReleaseRegistryAddress();
         | 
| 109 95 | 
             
                    _tokenRegistry = registryContract.getTokenRegistryAddress();
         | 
| 110 96 | 
             
                    _staking = registryContract.getStakingAddress();
         | 
| 111 | 
            -
                     | 
| 112 | 
            -
             | 
| 97 | 
            +
                    _stakingTargetHandler = address(IStaking(_staking).getTargetHandler());
         | 
| 98 | 
            +
                    _stakingStore = address(IStaking(_staking).getStakingStore());
         | 
| 113 99 |  | 
| 114 100 | 
             
                    // link nft ownability to registry
         | 
| 115 101 | 
             
                    _linkToNftOwnable(_registry);
         | 
| 116 102 |  | 
| 117 | 
            -
                    _setupRegistry(_registry);
         | 
| 118 | 
            -
             | 
| 119 | 
            -
                    // setup authorization for registry and supporting contracts
         | 
| 120 103 | 
             
                    _createRoles(_authorization);
         | 
| 104 | 
            +
             | 
| 105 | 
            +
                    // setup registry core targets
         | 
| 106 | 
            +
                    _createCoreTargets(_authorization.getMainTargetName());
         | 
| 107 | 
            +
             | 
| 108 | 
            +
                    // setup non-contract roles
         | 
| 121 109 | 
             
                    _grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
         | 
| 122 110 | 
             
                    _grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
         | 
| 123 111 |  | 
| 124 | 
            -
                     | 
| 112 | 
            +
                    // authorize functions of registry and staking contracts
         | 
| 125 113 | 
             
                    _createTargetAuthorizations(_authorization);
         | 
| 126 114 | 
             
                }
         | 
| 127 115 |  | 
| 128 116 |  | 
| 129 | 
            -
             | 
| 130 117 | 
             
                function grantServiceRoleForAllVersions(
         | 
| 131 118 | 
             
                    IService service, 
         | 
| 132 119 | 
             
                    ObjectType domain
         | 
| @@ -135,83 +122,36 @@ contract RegistryAdmin is | |
| 135 122 | 
             
                    restricted()
         | 
| 136 123 | 
             
                {
         | 
| 137 124 | 
             
                    _grantRoleToAccount( 
         | 
| 138 | 
            -
                        RoleIdLib. | 
| 125 | 
            +
                        RoleIdLib.toGenericServiceRoleId(domain),
         | 
| 139 126 | 
             
                        address(service)); 
         | 
| 140 127 | 
             
                }
         | 
| 141 128 |  | 
| 142 129 | 
             
                //--- view functions ----------------------------------------------------//
         | 
| 143 130 |  | 
| 144 | 
            -
                function getGifAdminRole() external  | 
| 131 | 
            +
                function getGifAdminRole() external pure returns (RoleId) {
         | 
| 145 132 | 
             
                    return GIF_ADMIN_ROLE();
         | 
| 146 133 | 
             
                }
         | 
| 147 134 |  | 
| 148 | 
            -
                function getGifManagerRole() external  | 
| 135 | 
            +
                function getGifManagerRole() external pure returns (RoleId) {
         | 
| 149 136 | 
             
                    return GIF_MANAGER_ROLE();
         | 
| 150 137 | 
             
                }
         | 
| 151 138 |  | 
| 152 139 | 
             
                //--- private initialization functions -------------------------------------------//
         | 
| 153 140 |  | 
| 154 | 
            -
                // create registry role and target
         | 
| 155 | 
            -
                function _setupRegistry(address registry) internal {
         | 
| 156 | 
            -
             | 
| 157 | 
            -
                    // create registry role
         | 
| 158 | 
            -
                    RoleId roleId = _authorization.getTargetRole(
         | 
| 159 | 
            -
                        _authorization.getMainTarget());
         | 
| 160 | 
            -
             | 
| 161 | 
            -
                    _createRole(
         | 
| 162 | 
            -
                        roleId,
         | 
| 163 | 
            -
                        _authorization.getRoleInfo(roleId));
         | 
| 164 | 
            -
             | 
| 165 | 
            -
                    // create registry target
         | 
| 166 | 
            -
                    _createTarget(
         | 
| 167 | 
            -
                        registry, 
         | 
| 168 | 
            -
                        _authorization.getMainTargetName(), 
         | 
| 169 | 
            -
                        true, // checkAuthority
         | 
| 170 | 
            -
                        false); // custom
         | 
| 171 | 
            -
             | 
| 172 | 
            -
                    // assign registry role to registry
         | 
| 173 | 
            -
                    _grantRoleToAccount(
         | 
| 174 | 
            -
                        roleId, 
         | 
| 175 | 
            -
                        registry);
         | 
| 176 | 
            -
                }
         | 
| 177 | 
            -
             | 
| 178 | 
            -
             | 
| 179 | 
            -
                function _createRoles(IAuthorization authorization)
         | 
| 180 | 
            -
                    internal
         | 
| 181 | 
            -
                {
         | 
| 182 | 
            -
                    RoleId[] memory roles = authorization.getRoles();
         | 
| 183 | 
            -
                    RoleId mainTargetRoleId = authorization.getTargetRole(
         | 
| 184 | 
            -
                        authorization.getMainTarget());
         | 
| 185 | 
            -
             | 
| 186 | 
            -
                    RoleId roleId;
         | 
| 187 | 
            -
                    RoleInfo memory roleInfo;
         | 
| 188 | 
            -
             | 
| 189 | 
            -
                    for(uint256 i = 0; i < roles.length; i++) {
         | 
| 190 | 
            -
             | 
| 191 | 
            -
                        roleId = roles[i];
         | 
| 192 | 
            -
             | 
| 193 | 
            -
                        // skip main target role, create role if not exists
         | 
| 194 | 
            -
                        if (roleId != mainTargetRoleId && !roleExists(roleId)) {
         | 
| 195 | 
            -
                            _createRole(
         | 
| 196 | 
            -
                                roleId,
         | 
| 197 | 
            -
                                authorization.getRoleInfo(roleId));
         | 
| 198 | 
            -
                        }
         | 
| 199 | 
            -
                    }
         | 
| 200 | 
            -
                }
         | 
| 201 141 |  | 
| 202 | 
            -
             | 
| 203 | 
            -
                function _createTargets(IAuthorization authorization)
         | 
| 142 | 
            +
                function _createCoreTargets(string memory registryTargetName)
         | 
| 204 143 | 
             
                    internal
         | 
| 205 144 | 
             
                {
         | 
| 206 | 
            -
                    // registry
         | 
| 207 | 
            -
                     | 
| 208 | 
            -
                     | 
| 209 | 
            -
                     | 
| 210 | 
            -
             | 
| 211 | 
            -
             | 
| 212 | 
            -
                     | 
| 213 | 
            -
                    _createTarget( | 
| 214 | 
            -
                    _createTarget( | 
| 145 | 
            +
                    // create unchecked registry targets
         | 
| 146 | 
            +
                    _createTarget(_registry, registryTargetName, TargetType.Core, false);
         | 
| 147 | 
            +
                    _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, TargetType.Core, false);
         | 
| 148 | 
            +
                    _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, TargetType.Core, false);
         | 
| 149 | 
            +
                    _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, TargetType.Core, false);
         | 
| 150 | 
            +
             | 
| 151 | 
            +
                    // create unchecked staking targets
         | 
| 152 | 
            +
                    _createTarget(_staking, STAKING_TARGET_NAME, TargetType.Core, false);
         | 
| 153 | 
            +
                    _createTarget(_stakingTargetHandler, STAKING_TARGET_HANDLER_NAME, TargetType.Core, false);
         | 
| 154 | 
            +
                    _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, TargetType.Core, false);
         | 
| 215 155 | 
             
                }
         | 
| 216 156 |  | 
| 217 157 |  | 
| @@ -224,35 +164,10 @@ contract RegistryAdmin is | |
| 224 164 | 
             
                    for(uint256 i = 0; i < targets.length; i++) {
         | 
| 225 165 | 
             
                        target = targets[i];
         | 
| 226 166 | 
             
                        RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
         | 
| 227 | 
            -
                        RoleId authorizedRole;
         | 
| 228 167 |  | 
| 229 168 | 
             
                        for(uint256 j = 0; j < authorizedRoles.length; j++) {
         | 
| 230 | 
            -
                             | 
| 231 | 
            -
             | 
| 232 | 
            -
                            _authorizeTargetFunctions(
         | 
| 233 | 
            -
                                getTargetForName(target),
         | 
| 234 | 
            -
                                authorizedRole,
         | 
| 235 | 
            -
                                authorization.getAuthorizedFunctions(
         | 
| 236 | 
            -
                                    target, 
         | 
| 237 | 
            -
                                    authorizedRole));
         | 
| 169 | 
            +
                            _authorizeFunctions(authorization, target, authorizedRoles[j]);
         | 
| 238 170 | 
             
                        }
         | 
| 239 171 | 
             
                    }
         | 
| 240 172 | 
             
                }
         | 
| 241 | 
            -
             | 
| 242 | 
            -
             | 
| 243 | 
            -
                function _createTargets(address authorization)
         | 
| 244 | 
            -
                    private 
         | 
| 245 | 
            -
                    onlyInitializing()
         | 
| 246 | 
            -
                {
         | 
| 247 | 
            -
                    IStaking staking = IStaking(_staking);
         | 
| 248 | 
            -
                    address tokenHandler = address(staking.getTokenHandler());
         | 
| 249 | 
            -
             | 
| 250 | 
            -
                    _createTarget(address(this), REGISTRY_ADMIN_TARGET_NAME, false, false);
         | 
| 251 | 
            -
                    _createTarget(_registry, REGISTRY_TARGET_NAME, true, false);
         | 
| 252 | 
            -
                    _createTarget(_releaseRegistry, RELEASE_REGISTRY_TARGET_NAME, true, false);
         | 
| 253 | 
            -
                    _createTarget(_staking, STAKING_TARGET_NAME, true, false);
         | 
| 254 | 
            -
                    _createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
         | 
| 255 | 
            -
                    _createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
         | 
| 256 | 
            -
                    _createTarget(tokenHandler, TOKEN_HANDLER_TARGET_NAME, true, false);
         | 
| 257 | 
            -
                }
         | 
| 258 173 | 
             
            }
         |