@etherisc/gif-next 0.0.2-7d65090-351 → 0.0.2-7dc3cd3-858
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 +18 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +90 -74
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +30 -30
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -14
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +22 -39
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +30 -91
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -121
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +18 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- 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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- 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 +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +4 -4
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +3 -3
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +4 -4
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +3 -3
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +10 -10
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +6 -6
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +40 -40
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +21 -21
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -153
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
- 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 +0 -44
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.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 +18 -62
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +228 -388
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +48 -126
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +56 -80
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +29 -41
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- 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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- 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/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +2 -2
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -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/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- 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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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/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/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 +55 -2
- 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 +117 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- 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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +131 -297
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
- package/contracts/authorization/InstanceAdmin.sol +108 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -104
- package/contracts/distribution/DistributionService.sol +10 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/IInstance.sol +5 -6
- package/contracts/instance/IInstanceService.sol +6 -12
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdminNew.sol +261 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +209 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +58 -67
- package/contracts/instance/InstanceStore.sol +5 -1
- package/contracts/instance/base/ObjectManager.sol +7 -8
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/Oracle.sol +61 -49
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +1 -1
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/Product.sol +103 -88
- package/contracts/registry/IRegistry.sol +5 -8
- package/contracts/registry/Registry.sol +1 -5
- package/contracts/registry/RegistryAdmin.sol +101 -71
- package/contracts/registry/ReleaseManager.sol +32 -41
- package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
- package/contracts/shared/ComponentService.sol +18 -56
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/type/ObjectType.sol +34 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +6 -0
- package/package.json +4 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +0 -708
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/contracts/instance/InstanceAdmin.sol +0 -331
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -1,11 +1,11 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessAdmin} from "../
|
5
|
-
import {
|
4
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
5
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
6
6
|
import {IRegistry} from "./IRegistry.sol";
|
7
7
|
import {IService} from "../shared/IService.sol";
|
8
|
-
import {IServiceAuthorization} from "
|
8
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
9
9
|
import {IStaking} from "../staking/IStaking.sol";
|
10
10
|
import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
|
11
11
|
import {ReleaseManager} from "./ReleaseManager.sol";
|
@@ -38,13 +38,17 @@ contract RegistryAdmin is
|
|
38
38
|
|
39
39
|
string public constant GIF_ADMIN_ROLE_NAME = "GifAdminRole";
|
40
40
|
string public constant GIF_MANAGER_ROLE_NAME = "GifManagerRole";
|
41
|
-
string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
|
42
41
|
string public constant POOL_SERVICE_ROLE_NAME = "PoolServiceRole";
|
42
|
+
string public constant RELEASE_MANAGER_ROLE_NAME = "ReleaseManagerRole";
|
43
|
+
string public constant STAKING_SERVICE_ROLE_NAME = "StakingServiceRole";
|
44
|
+
string public constant STAKING_ROLE_NAME = "StakingRole";
|
43
45
|
|
44
|
-
string public constant RELEASE_MANAGER_TARGET_NAME = "
|
45
|
-
string public constant TOKEN_REGISTRY_TARGET_NAME = "
|
46
|
-
string public constant STAKING_TARGET_NAME = "
|
47
|
-
string public constant STAKING_STORE_TARGET_NAME = "
|
46
|
+
string public constant RELEASE_MANAGER_TARGET_NAME = "ReleaseManager";
|
47
|
+
string public constant TOKEN_REGISTRY_TARGET_NAME = "TokenRegistry";
|
48
|
+
string public constant STAKING_TARGET_NAME = "Staking";
|
49
|
+
string public constant STAKING_STORE_TARGET_NAME = "StakingStore";
|
50
|
+
|
51
|
+
uint8 public constant MAX_NUM_RELEASES = 99;
|
48
52
|
|
49
53
|
mapping(address service => VersionPart majorVersion) private _ServiceRelease;
|
50
54
|
|
@@ -74,7 +78,7 @@ contract RegistryAdmin is
|
|
74
78
|
IStaking(_staking).getStakingStore());
|
75
79
|
|
76
80
|
// at this moment all registry contracts are deployed and fully intialized
|
77
|
-
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME);
|
81
|
+
_createTarget(_tokenRegistry, TOKEN_REGISTRY_TARGET_NAME, true, false);
|
78
82
|
|
79
83
|
_setupGifAdminRole(gifAdmin);
|
80
84
|
_setupGifManagerRole(gifManager);
|
@@ -112,50 +116,39 @@ contract RegistryAdmin is
|
|
112
116
|
function _createServiceTargetAndRole(IService service)
|
113
117
|
private
|
114
118
|
{
|
115
|
-
ObjectType
|
116
|
-
string memory baseName = ObjectTypeLib.toName(
|
119
|
+
ObjectType serviceDomain = service.getDomain();
|
120
|
+
string memory baseName = ObjectTypeLib.toName(serviceDomain);
|
117
121
|
VersionPart version = service.getVersion().toMajorPart();
|
118
122
|
uint256 versionInt = version.toInt();
|
119
|
-
string memory versionName = "_v0";
|
120
|
-
string memory versionNumber = ObjectTypeLib.toString(versionInt);
|
121
|
-
|
122
|
-
if (versionInt >= 10) {
|
123
|
-
versionName = "_v";
|
124
|
-
}
|
125
123
|
|
126
124
|
// create service target
|
127
|
-
string memory serviceTargetName =
|
128
|
-
|
129
|
-
baseName,
|
130
|
-
"Service",
|
131
|
-
versionName,
|
132
|
-
versionNumber));
|
125
|
+
string memory serviceTargetName = ObjectTypeLib.toVersionedName(
|
126
|
+
baseName, "Service", versionInt);
|
133
127
|
|
134
128
|
_createTarget(
|
135
129
|
address(service),
|
136
|
-
serviceTargetName
|
130
|
+
serviceTargetName,
|
131
|
+
true,
|
132
|
+
false);
|
137
133
|
|
138
134
|
// create service role
|
139
|
-
|
140
|
-
|
141
|
-
baseName,
|
142
|
-
"ServiceRole",
|
143
|
-
versionName,
|
144
|
-
versionNumber));
|
145
|
-
|
146
|
-
RoleId roleId = RoleIdLib.roleForTypeAndVersion(
|
147
|
-
domain,
|
135
|
+
RoleId serviceRoleId = RoleIdLib.roleForTypeAndVersion(
|
136
|
+
serviceDomain,
|
148
137
|
version);
|
149
138
|
|
150
139
|
_createRole(
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
140
|
+
serviceRoleId,
|
141
|
+
toRole({
|
142
|
+
adminRoleId: ADMIN_ROLE(),
|
143
|
+
roleType: RoleType.Contract,
|
144
|
+
maxMemberCount: 1,
|
145
|
+
name: ObjectTypeLib.toVersionedName(
|
146
|
+
baseName,
|
147
|
+
"ServiceRole",
|
148
|
+
versionInt)}));
|
156
149
|
|
157
150
|
_grantRoleToAccount(
|
158
|
-
|
151
|
+
serviceRoleId,
|
159
152
|
address(service));
|
160
153
|
}
|
161
154
|
|
@@ -186,7 +179,7 @@ contract RegistryAdmin is
|
|
186
179
|
}
|
187
180
|
|
188
181
|
// get authorized functions for authorized domain
|
189
|
-
|
182
|
+
IAccess.FunctionInfo[] memory authorizatedFunctions = serviceAuthorization.getAuthorizedFunctions(
|
190
183
|
serviceDomain,
|
191
184
|
authorizedDomain);
|
192
185
|
|
@@ -218,27 +211,38 @@ contract RegistryAdmin is
|
|
218
211
|
//--- private functions -------------------------------------------------//
|
219
212
|
|
220
213
|
function _setupGifAdminRole(address gifAdmin) private {
|
221
|
-
|
222
|
-
_createRole(
|
223
|
-
|
214
|
+
|
215
|
+
_createRole(
|
216
|
+
GIF_ADMIN_ROLE(),
|
217
|
+
toRole({
|
218
|
+
adminRoleId: ADMIN_ROLE(),
|
219
|
+
roleType: RoleType.Gif,
|
220
|
+
maxMemberCount: 2, // TODO decide on max member count
|
221
|
+
name: GIF_ADMIN_ROLE_NAME}));
|
224
222
|
|
225
223
|
// for ReleaseManager
|
226
|
-
|
227
|
-
functions = new
|
224
|
+
FunctionInfo[] memory functions;
|
225
|
+
functions = new FunctionInfo[](2);
|
228
226
|
functions[0] = toFunction(ReleaseManager.createNextRelease.selector, "createNextRelease");
|
229
227
|
functions[1] = toFunction(ReleaseManager.activateNextRelease.selector, "activateNextRelease");
|
230
228
|
_authorizeTargetFunctions(_releaseManager, GIF_ADMIN_ROLE(), functions);
|
231
229
|
|
232
|
-
|
230
|
+
_grantRoleToAccount(GIF_ADMIN_ROLE(), gifAdmin);
|
233
231
|
}
|
234
232
|
|
235
233
|
function _setupGifManagerRole(address gifManager) private {
|
236
|
-
|
237
|
-
|
234
|
+
|
235
|
+
_createRole(
|
236
|
+
GIF_MANAGER_ROLE(),
|
237
|
+
toRole({
|
238
|
+
adminRoleId: ADMIN_ROLE(),
|
239
|
+
roleType: RoleType.Gif,
|
240
|
+
maxMemberCount: 1,
|
241
|
+
name: GIF_MANAGER_ROLE_NAME}));
|
238
242
|
|
239
243
|
// for TokenRegistry
|
240
|
-
|
241
|
-
functions = new
|
244
|
+
FunctionInfo[] memory functions;
|
245
|
+
functions = new FunctionInfo[](5);
|
242
246
|
functions[0] = toFunction(TokenRegistry.registerToken.selector, "registerToken");
|
243
247
|
functions[1] = toFunction(TokenRegistry.registerRemoteToken.selector, "registerRemoteToken");
|
244
248
|
functions[2] = toFunction(TokenRegistry.setActive.selector, "setActive");
|
@@ -248,41 +252,54 @@ contract RegistryAdmin is
|
|
248
252
|
_authorizeTargetFunctions(_tokenRegistry, GIF_MANAGER_ROLE(), functions);
|
249
253
|
|
250
254
|
// for ReleaseManager
|
251
|
-
functions = new
|
255
|
+
functions = new FunctionInfo[](2);
|
252
256
|
functions[0] = toFunction(ReleaseManager.prepareNextRelease.selector, "prepareNextRelease");
|
253
257
|
functions[1] = toFunction(ReleaseManager.registerService.selector, "registerService");
|
254
258
|
_authorizeTargetFunctions(_releaseManager, GIF_MANAGER_ROLE(), functions);
|
255
259
|
|
256
|
-
|
260
|
+
_grantRoleToAccount(GIF_MANAGER_ROLE(), gifManager);
|
257
261
|
}
|
258
262
|
|
259
263
|
|
260
264
|
function _setupReleaseManager() private {
|
261
|
-
_createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME);
|
262
265
|
|
263
|
-
|
264
|
-
_createRole(releaseManagerRoleId, ADMIN_ROLE(), RELEASE_MANAGER_TARGET_NAME, 1, true);
|
265
|
-
_grantRoleToAccount(releaseManagerRoleId, _releaseManager);
|
266
|
+
_createTarget(_releaseManager, RELEASE_MANAGER_TARGET_NAME, true, false);
|
266
267
|
|
267
|
-
|
268
|
-
|
268
|
+
RoleId releaseManagerRoleId = RoleIdLib.roleForType(RELEASE());
|
269
|
+
_createRole(
|
270
|
+
releaseManagerRoleId,
|
271
|
+
toRole({
|
272
|
+
adminRoleId: ADMIN_ROLE(),
|
273
|
+
roleType: RoleType.Contract,
|
274
|
+
maxMemberCount: 1,
|
275
|
+
name: RELEASE_MANAGER_ROLE_NAME}));
|
276
|
+
|
277
|
+
FunctionInfo[] memory functions;
|
278
|
+
functions = new FunctionInfo[](2);
|
269
279
|
functions[0] = toFunction(RegistryAdmin.authorizeService.selector, "authorizeService");
|
270
280
|
functions[1] = toFunction(RegistryAdmin.grantServiceRoleForAllVersions.selector, "grantServiceRoleForAllVersions");
|
271
281
|
_authorizeTargetFunctions(address(this), releaseManagerRoleId, functions);
|
282
|
+
|
283
|
+
_grantRoleToAccount(releaseManagerRoleId, _releaseManager);
|
272
284
|
}
|
273
285
|
|
274
286
|
|
275
287
|
function _setupStaking() private {
|
276
|
-
_createTarget(_staking, STAKING_TARGET_NAME);
|
277
|
-
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME);
|
278
|
-
|
288
|
+
_createTarget(_staking, STAKING_TARGET_NAME, true, false);
|
289
|
+
_createTarget(_stakingStore, STAKING_STORE_TARGET_NAME, true, false);
|
279
290
|
|
280
291
|
// staking function authorization for staking service
|
281
292
|
RoleId stakingServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(STAKING());
|
282
|
-
_createRole(
|
283
|
-
|
284
|
-
|
285
|
-
|
293
|
+
_createRole(
|
294
|
+
stakingServiceRoleId,
|
295
|
+
toRole({
|
296
|
+
adminRoleId: ADMIN_ROLE(),
|
297
|
+
roleType: RoleType.Contract,
|
298
|
+
maxMemberCount: MAX_NUM_RELEASES,
|
299
|
+
name: STAKING_SERVICE_ROLE_NAME}));
|
300
|
+
|
301
|
+
FunctionInfo[] memory functions;
|
302
|
+
functions = new FunctionInfo[](13);
|
286
303
|
functions[0] = toFunction(IStaking.registerTarget.selector, "registerTarget");
|
287
304
|
functions[1] = toFunction(IStaking.setLockingPeriod.selector, "setLockingPeriod");
|
288
305
|
functions[2] = toFunction(IStaking.setRewardRate.selector, "setRewardRate");
|
@@ -300,20 +317,31 @@ contract RegistryAdmin is
|
|
300
317
|
|
301
318
|
// staking function authorization for pool service
|
302
319
|
RoleId poolServiceRoleId = RoleIdLib.roleForTypeAndAllVersions(POOL());
|
303
|
-
_createRole(
|
320
|
+
_createRole(
|
321
|
+
poolServiceRoleId,
|
322
|
+
toRole({
|
323
|
+
adminRoleId: ADMIN_ROLE(),
|
324
|
+
roleType: RoleType.Contract,
|
325
|
+
maxMemberCount: MAX_NUM_RELEASES,
|
326
|
+
name: POOL_SERVICE_ROLE_NAME}));
|
304
327
|
|
305
328
|
// staking function authorizations
|
306
|
-
functions = new
|
329
|
+
functions = new FunctionInfo[](2);
|
307
330
|
functions[0] = toFunction(IStaking.increaseTotalValueLocked.selector, "increaseTotalValueLocked");
|
308
331
|
functions[1] = toFunction(IStaking.decreaseTotalValueLocked.selector, "decreaseTotalValueLocked");
|
309
332
|
_authorizeTargetFunctions(_staking, poolServiceRoleId, functions);
|
310
333
|
|
311
334
|
// staking store function authorizations
|
312
335
|
RoleId stakingRoleId = RoleIdLib.roleForType(STAKING());
|
313
|
-
_createRole(
|
314
|
-
|
315
|
-
|
316
|
-
|
336
|
+
_createRole(
|
337
|
+
stakingRoleId,
|
338
|
+
toRole({
|
339
|
+
adminRoleId: ADMIN_ROLE(),
|
340
|
+
roleType: RoleType.Contract,
|
341
|
+
maxMemberCount: 1,
|
342
|
+
name: STAKING_ROLE_NAME}));
|
343
|
+
|
344
|
+
functions = new FunctionInfo[](14);
|
317
345
|
functions[0] = toFunction(StakingStore.setStakingRate.selector, "setStakingRate");
|
318
346
|
functions[1] = toFunction(StakingStore.createTarget.selector, "createTarget");
|
319
347
|
functions[2] = toFunction(StakingStore.updateTarget.selector, "updateTarget");
|
@@ -329,5 +357,7 @@ contract RegistryAdmin is
|
|
329
357
|
functions[12] = toFunction(StakingStore.claimUpTo.selector, "claimUpTo");
|
330
358
|
functions[13] = toFunction(StakingStore.unstakeUpTo.selector, "unstakeUpTo");
|
331
359
|
_authorizeTargetFunctions(_stakingStore, stakingRoleId, functions);
|
360
|
+
|
361
|
+
_grantRoleToAccount(stakingRoleId, _staking);
|
332
362
|
}
|
333
363
|
}
|
@@ -18,7 +18,6 @@ import {StateId, INITIAL, SCHEDULED, DEPLOYING, ACTIVE} from "../type/StateId.so
|
|
18
18
|
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
19
19
|
|
20
20
|
import {IService} from "../shared/IService.sol";
|
21
|
-
import {AccessManagerExtendedWithDisableInitializeable} from "../shared/AccessManagerExtendedWithDisableInitializeable.sol";
|
22
21
|
import {ILifecycle} from "../shared/ILifecycle.sol";
|
23
22
|
import {INftOwnable} from "../shared/INftOwnable.sol";
|
24
23
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
@@ -26,13 +25,14 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
26
25
|
import {IRegistry} from "./IRegistry.sol";
|
27
26
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
28
27
|
import {IRegistryService} from "./IRegistryService.sol";
|
29
|
-
import {IServiceAuthorization} from "
|
30
|
-
import {IAccessAdmin} from "../
|
28
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
29
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
31
30
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
32
31
|
import {Registry} from "./Registry.sol";
|
33
32
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
34
33
|
|
35
|
-
|
34
|
+
// TODO rename to something that does not end with 'Manager'
|
35
|
+
// everywhere else *Manager points to an upgradeable contract
|
36
36
|
contract ReleaseManager is
|
37
37
|
AccessManaged,
|
38
38
|
ILifecycle,
|
@@ -92,17 +92,19 @@ contract ReleaseManager is
|
|
92
92
|
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
93
93
|
|
94
94
|
RegistryAdmin public immutable _admin;
|
95
|
-
address public immutable _releaseAccessManagerCodeAddress;
|
96
95
|
Registry public immutable _registry;
|
97
96
|
IRegisterable private _staking;
|
98
97
|
address private _stakingOwner;
|
99
98
|
|
100
|
-
// TODO remove once it's clear that release authority will always be registry authority
|
101
|
-
mapping(VersionPart version => address authority) internal _releaseAccessManager;
|
102
99
|
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
100
|
+
mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
|
101
|
+
|
102
|
+
// TODO check where/why this is used
|
103
103
|
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
104
104
|
|
105
|
-
|
105
|
+
// TODO remove once it's clear that release authority will always be registry authority
|
106
|
+
mapping(VersionPart version => address authority) internal _releaseAccessManager;
|
107
|
+
|
106
108
|
|
107
109
|
VersionPart immutable internal _initial;// first active version
|
108
110
|
VersionPart internal _latest; // latest active version
|
@@ -128,11 +130,6 @@ contract ReleaseManager is
|
|
128
130
|
_initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
|
129
131
|
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
130
132
|
_state = getInitialState(RELEASE());
|
131
|
-
|
132
|
-
AccessManagerExtendedWithDisableInitializeable masterReleaseAccessManager = new AccessManagerExtendedWithDisableInitializeable();
|
133
|
-
masterReleaseAccessManager.initialize(_registry.NFT_LOCK_ADDRESS(), VersionLib.toVersionPart(0));
|
134
|
-
//masterReleaseAccessManager.disable();
|
135
|
-
_releaseAccessManagerCodeAddress = address(masterReleaseAccessManager);
|
136
133
|
}
|
137
134
|
|
138
135
|
/// @dev skips previous release if was not activated
|
@@ -166,35 +163,36 @@ contract ReleaseManager is
|
|
166
163
|
bytes32 releaseSalt
|
167
164
|
)
|
168
165
|
{
|
169
|
-
//
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
166
|
+
// verify release manager is in proper state to start deploying a next release
|
167
|
+
if (!isValidTransition(RELEASE(), _state, DEPLOYING())) {
|
168
|
+
revert ErrorReleaseManagerReleasePreparationDisallowed(_state);
|
169
|
+
}
|
170
|
+
|
171
|
+
// verify prepareNextRelease is only called once per release
|
172
|
+
if(_servicesToRegister > 0) {
|
173
|
+
revert ErrorReleaseManagerReleaseAlreadyPrepared(version);
|
174
|
+
}
|
175
175
|
|
176
176
|
// verify authorizaion contract release matches with expected version
|
177
|
+
VersionPart releaseVersion = serviceAuthorization.getRelease();
|
177
178
|
if (releaseVersion != _next) {
|
178
179
|
revert ErrorReleaseManagerVersionMismatch(_next, releaseVersion);
|
179
180
|
}
|
180
181
|
|
181
182
|
// sanity check to ensure service domain list is not empty
|
183
|
+
uint256 serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
|
182
184
|
if (serviceDomainsCount == 0) {
|
183
185
|
revert ErrorReleaseManagerNoDomains(_next);
|
184
186
|
}
|
185
187
|
|
186
|
-
|
187
|
-
|
188
|
-
revert ErrorReleaseManagerReleasePreparationDisallowed(_state);
|
189
|
-
}
|
190
|
-
|
191
|
-
// verify prepareNextRelease is only called once per release
|
192
|
-
if(_servicesToRegister > 0) {
|
193
|
-
revert ErrorReleaseManagerReleaseAlreadyPrepared(version);
|
194
|
-
}
|
188
|
+
_state = DEPLOYING();
|
189
|
+
_servicesToRegister = serviceDomainsCount;
|
195
190
|
|
196
191
|
// store release specific service authorization
|
192
|
+
authority = _admin.authority();
|
197
193
|
_serviceAuthorization[_next] = serviceAuthorization;
|
194
|
+
// TODO refactor: authority no longer release specific
|
195
|
+
_releaseAccessManager[_next] = authority;
|
198
196
|
|
199
197
|
// ensures unique salt
|
200
198
|
releaseSalt = keccak256(
|
@@ -202,13 +200,6 @@ contract ReleaseManager is
|
|
202
200
|
bytes32(version.toInt()),
|
203
201
|
salt));
|
204
202
|
|
205
|
-
authority = _admin.authority();
|
206
|
-
|
207
|
-
_releaseAccessManager[_next] = authority;
|
208
|
-
_servicesToRegister = serviceDomainsCount;
|
209
|
-
|
210
|
-
_state = DEPLOYING();
|
211
|
-
|
212
203
|
emit LogReleaseCreation(version, releaseSalt, authority);
|
213
204
|
}
|
214
205
|
|
@@ -238,9 +229,6 @@ contract ReleaseManager is
|
|
238
229
|
revert ErrorReleaseManagerServiceDomainMismatch(expectedDomain, service.getDomain());
|
239
230
|
}
|
240
231
|
|
241
|
-
// checked in registry
|
242
|
-
_releaseInfo[version].domains.push(domain);
|
243
|
-
|
244
232
|
// register service with registry
|
245
233
|
nftId = _registry.registerService(info, version, domain);
|
246
234
|
_registeredServices++;
|
@@ -383,9 +371,12 @@ contract ReleaseManager is
|
|
383
371
|
return _servicesToRegister - _registeredServices;
|
384
372
|
}
|
385
373
|
|
386
|
-
|
387
|
-
|
388
|
-
|
374
|
+
function getServiceAuthorization(VersionPart version)
|
375
|
+
external
|
376
|
+
view
|
377
|
+
returns (IServiceAuthorization serviceAuthorization)
|
378
|
+
{
|
379
|
+
return _serviceAuthorization[version];
|
389
380
|
}
|
390
381
|
|
391
382
|
// TODO token registry knows nothing about adfmin, only registry
|
@@ -6,7 +6,7 @@ import {
|
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
8
|
import {ComponentService} from "../shared/ComponentService.sol";
|
9
|
-
import {
|
9
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
10
10
|
import {IBundleService} from "../pool/IBundleService.sol";
|
11
11
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
12
12
|
import {InstanceService} from "../instance/InstanceService.sol";
|
@@ -14,7 +14,7 @@ import {IInstanceService} from "../instance/IInstanceService.sol";
|
|
14
14
|
import {IPoolService} from "../pool/IPoolService.sol";
|
15
15
|
import {IStakingService} from "../staking/IStakingService.sol";
|
16
16
|
import {IRegistryService} from "./IRegistryService.sol";
|
17
|
-
import {ServiceAuthorization} from "
|
17
|
+
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
18
18
|
|
19
19
|
|
20
20
|
contract ServiceAuthorizationV3
|
@@ -64,7 +64,7 @@ contract ServiceAuthorizationV3
|
|
64
64
|
function _setupIRegistryServiceAuthorization()
|
65
65
|
internal
|
66
66
|
{
|
67
|
-
|
67
|
+
IAccess.FunctionInfo[] storage functions;
|
68
68
|
|
69
69
|
functions = _authorizeForService(REGISTRY(), APPLICATION());
|
70
70
|
_authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
|
@@ -98,7 +98,7 @@ contract ServiceAuthorizationV3
|
|
98
98
|
function _setupStakingServiceAuthorization()
|
99
99
|
internal
|
100
100
|
{
|
101
|
-
|
101
|
+
IAccess.FunctionInfo[] storage functions;
|
102
102
|
|
103
103
|
functions = _authorizeForService(STAKING(), INSTANCE());
|
104
104
|
_authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
|
@@ -121,10 +121,10 @@ contract ServiceAuthorizationV3
|
|
121
121
|
function _setupInstanceServiceAuthorization()
|
122
122
|
internal
|
123
123
|
{
|
124
|
-
|
124
|
+
IAccess.FunctionInfo[] storage functions;
|
125
125
|
|
126
126
|
functions = _authorizeForService(INSTANCE(), COMPONENT());
|
127
|
-
_authorize(functions, IInstanceService.
|
127
|
+
_authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
|
128
128
|
}
|
129
129
|
|
130
130
|
|
@@ -159,7 +159,7 @@ contract ServiceAuthorizationV3
|
|
159
159
|
function _setupDistributionServiceAuthorization()
|
160
160
|
internal
|
161
161
|
{
|
162
|
-
|
162
|
+
IAccess.FunctionInfo[] storage functions;
|
163
163
|
|
164
164
|
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
165
165
|
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
@@ -170,7 +170,7 @@ contract ServiceAuthorizationV3
|
|
170
170
|
function _setupPoolServiceAuthorization()
|
171
171
|
internal
|
172
172
|
{
|
173
|
-
|
173
|
+
IAccess.FunctionInfo[] storage functions;
|
174
174
|
|
175
175
|
functions = _authorizeForService(POOL(), POLICY());
|
176
176
|
_authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
|
@@ -187,7 +187,7 @@ contract ServiceAuthorizationV3
|
|
187
187
|
function _setupBundleServiceAuthorization()
|
188
188
|
internal
|
189
189
|
{
|
190
|
-
|
190
|
+
IAccess.FunctionInfo[] storage functions;
|
191
191
|
|
192
192
|
functions = _authorizeForService(BUNDLE(), POOL());
|
193
193
|
_authorize(functions, IBundleService.create.selector, "create");
|