@etherisc/gif-next 0.0.2-e8b06c8-540 → 0.0.2-e8ea5fe-337
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 +32 -3
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +38 -33
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +8 -8
- 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/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +8 -8
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +23 -4
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +85 -101
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +19 -19
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +43 -75
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +223 -105
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +67 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +43 -37
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +120 -31
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +7 -7
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +10 -5
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +19 -19
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1208 -290
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +31 -31
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +238 -123
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +44 -39
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -35
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +226 -231
- 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/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- 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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +59 -88
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +21 -21
- 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 +30 -37
- 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 +27 -72
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +55 -137
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +19 -19
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +402 -62
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +111 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +45 -95
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +220 -100
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +45 -133
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +264 -136
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +40 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +31 -50
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +31 -43
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +22 -78
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +19 -19
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +194 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +58 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +114 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +184 -119
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +43 -43
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +19 -37
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +242 -209
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +55 -55
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +113 -153
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +55 -75
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +22 -78
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +51 -47
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- 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 +102 -74
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +100 -95
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +26 -7
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +0 -64
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -62
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -49
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +19 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- 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/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +19 -75
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- 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 +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -27
- 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 +85 -105
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +84 -114
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +47 -43
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +58 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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 +4 -4
- 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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +4 -4
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +4 -4
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +14 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +39 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +8 -39
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +0 -1
- package/contracts/authorization/IServiceAuthorization.sol +3 -0
- package/contracts/authorization/ModuleAuthorization.sol +0 -125
- package/contracts/authorization/ServiceAuthorization.sol +4 -0
- package/contracts/distribution/BasicDistribution.sol +4 -15
- package/contracts/distribution/BasicDistributionAuthorization.sol +5 -1
- package/contracts/distribution/Distribution.sol +22 -10
- package/contracts/distribution/DistributionService.sol +67 -34
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +8 -34
- package/contracts/distribution/IDistributionService.sol +18 -2
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +12 -35
- package/contracts/instance/IInstanceService.sol +6 -5
- package/contracts/instance/Instance.sol +15 -79
- package/contracts/instance/InstanceAdmin.sol +220 -269
- package/contracts/instance/InstanceAuthorizationV3.sol +19 -28
- package/contracts/instance/InstanceReader.sol +32 -12
- package/contracts/instance/InstanceService.sol +73 -122
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +18 -4
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +5 -5
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +22 -22
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +16 -6
- package/contracts/oracle/OracleService.sol +1 -0
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +7 -5
- package/contracts/pool/BasicPoolAuthorization.sol +11 -2
- package/contracts/pool/BundleService.sol +189 -47
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -0
- package/contracts/pool/IPoolService.sol +36 -26
- package/contracts/pool/Pool.sol +39 -24
- package/contracts/pool/PoolService.sol +161 -104
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +51 -57
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +3 -32
- package/contracts/product/BasicProductAuthorization.sol +3 -0
- package/contracts/product/ClaimService.sol +118 -73
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +28 -5
- package/contracts/product/IPolicyService.sol +27 -32
- package/contracts/product/IPricingService.sol +7 -7
- package/contracts/product/IProductComponent.sol +1 -1
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +278 -180
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +42 -41
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +67 -34
- package/contracts/product/{ProductService.sol → RiskService.sol} +10 -37
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/IRegistry.sol +27 -17
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +81 -87
- package/contracts/registry/RegistryAdmin.sol +34 -23
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/{ReleaseManager.sol → ReleaseRegistry.sol} +149 -194
- package/contracts/registry/ServiceAuthorizationV3.sol +7 -10
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +25 -38
- package/contracts/shared/ComponentService.sol +84 -69
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +9 -10
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +22 -2
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +3 -3
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +3 -3
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +18 -25
- package/contracts/staking/Staking.sol +24 -39
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +8 -12
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +18 -18
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +10 -38
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/StateId.sol +1 -0
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +29 -10
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +3 -3
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +0 -1385
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -703
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +0 -1616
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -181
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1237
- 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/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- 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/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/authorization/InstanceAdmin.sol +0 -108
- package/contracts/instance/InstanceAdminNew.sol +0 -261
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -422
- package/contracts/product/ProductServiceManager.sol +0 -42
- 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
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,334 +1,285 @@
|
|
1
|
-
// SPDX-License-Identifier:
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
5
|
-
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
|
-
|
7
|
-
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
8
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
9
|
-
import {NftId} from "../type/NftId.sol";
|
10
|
-
|
11
|
-
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
4
|
+
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
12
5
|
|
6
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
9
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
10
|
+
import {IComponent} from "../shared/IComponent.sol";
|
11
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
13
12
|
import {IRegistry} from "../registry/IRegistry.sol";
|
14
|
-
|
15
13
|
import {IInstance} from "./IInstance.sol";
|
16
|
-
import {
|
14
|
+
import {IService} from "../shared/IService.sol";
|
15
|
+
import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
|
16
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
17
|
+
import {Str, StrLib} from "../type/String.sol";
|
18
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
19
|
+
import {VersionPart} from "../type/Version.sol";
|
17
20
|
|
18
|
-
function INSTANCE_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(2600); }
|
19
|
-
function INSTANCE_OWNER_ROLE() pure returns (RoleId) { return RoleIdLib.toRoleId(10); }
|
20
21
|
|
21
22
|
contract InstanceAdmin is
|
22
|
-
|
23
|
+
AccessAdmin
|
23
24
|
{
|
24
|
-
|
25
|
-
|
26
|
-
string public constant INSTANCE_ROLE_NAME = "InstanceRole";
|
27
|
-
string public constant INSTANCE_OWNER_ROLE_NAME = "InstanceOwnerRole";
|
28
|
-
|
25
|
+
string public constant INSTANCE_TARGET_NAME = "Instance";
|
26
|
+
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
29
27
|
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
28
|
+
string public constant BUNDLE_SET_TARGET_NAME = "BundleSet";
|
30
29
|
|
31
30
|
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
32
|
-
uint32 public constant EXECUTION_DELAY = 0;
|
33
31
|
|
34
|
-
|
35
|
-
|
36
|
-
|
32
|
+
error ErrorInstanceAdminNotRegistered(address target);
|
33
|
+
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
34
|
+
error ErrorInstanceAdminReleaseMismatch();
|
35
|
+
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
37
36
|
|
38
|
-
|
39
|
-
address _instance;
|
37
|
+
IInstance _instance;
|
40
38
|
IRegistry internal _registry;
|
39
|
+
uint64 _idNext;
|
41
40
|
|
42
|
-
|
43
|
-
// assume this contract is already a member of ADMIN_ROLE, the only member
|
44
|
-
function initialize(address instanceAddress) external initializer
|
45
|
-
{
|
46
|
-
IInstance instance = IInstance(instanceAddress);
|
47
|
-
IRegistry registry = instance.getRegistry();
|
48
|
-
address authority = instance.authority();
|
49
|
-
|
50
|
-
__AccessManaged_init(authority);
|
51
|
-
|
52
|
-
_accessManager = AccessManagerExtendedInitializeable(authority);
|
53
|
-
_instance = instanceAddress;
|
54
|
-
_registry = registry;
|
55
|
-
_idNext = CUSTOM_ROLE_ID_MIN;
|
56
|
-
|
57
|
-
// minimum configuration required for nft interception
|
58
|
-
_createRole(INSTANCE_ROLE(), INSTANCE_ROLE_NAME, IAccess.Type.Core);
|
59
|
-
_createRole(INSTANCE_OWNER_ROLE(), INSTANCE_OWNER_ROLE_NAME, IAccess.Type.Core);
|
60
|
-
_grantRole(INSTANCE_ROLE(), address(instance));
|
61
|
-
|
62
|
-
_createTarget(address(this), INSTANCE_ADMIN_TARGET_NAME, IAccess.Type.Core);
|
63
|
-
bytes4[] memory instanceAdminInstanceSelectors = new bytes4[](1);
|
64
|
-
instanceAdminInstanceSelectors[0] = this.transferInstanceOwnerRole.selector;
|
65
|
-
_setTargetFunctionRole(address(this), instanceAdminInstanceSelectors, INSTANCE_ROLE());
|
66
|
-
}
|
67
|
-
|
68
|
-
//--- Role ------------------------------------------------------//
|
69
|
-
// ADMIN_ROLE
|
70
|
-
// assume all core roles are known at deployment time
|
71
|
-
// assume core roles are set and granted only during instance cloning
|
72
|
-
// assume core roles are never revoked -> core roles admin is never active after intialization
|
73
|
-
function createCoreRole(RoleId roleId, string memory name) external restricted() {
|
74
|
-
_createRole(roleId, name, IAccess.Type.Core);
|
75
|
-
}
|
41
|
+
IModuleAuthorization _instanceAuthorization;
|
76
42
|
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
43
|
+
/// @dev Only used for master instance admin.
|
44
|
+
/// Contracts created via constructor come with disabled initializers.
|
45
|
+
constructor(
|
46
|
+
IModuleAuthorization instanceAuthorization
|
47
|
+
)
|
48
|
+
AccessAdmin()
|
49
|
+
{
|
50
|
+
_instanceAuthorization = instanceAuthorization;
|
83
51
|
}
|
84
52
|
|
85
|
-
|
86
|
-
|
87
|
-
|
53
|
+
/// @dev Initializes this instance admin with the provided instances authorization specification.
|
54
|
+
/// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
|
55
|
+
/// for the inststance authorizatios.
|
56
|
+
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
57
|
+
function initialize(
|
58
|
+
AccessManagerCloneable accessManager,
|
59
|
+
IModuleAuthorization instanceAuthorization
|
60
|
+
)
|
88
61
|
external
|
89
|
-
|
90
|
-
returns(RoleId roleId, RoleId admin)
|
62
|
+
initializer()
|
91
63
|
{
|
92
|
-
|
64
|
+
// create new access manager for this instance admin
|
65
|
+
_initializeAuthority(address(accessManager));
|
93
66
|
|
94
|
-
|
95
|
-
|
67
|
+
// create basic instance independent setup
|
68
|
+
_createAdminAndPublicRoles();
|
96
69
|
|
97
|
-
|
98
|
-
|
70
|
+
// store instance authorization specification
|
71
|
+
_instanceAuthorization = IModuleAuthorization(instanceAuthorization);
|
99
72
|
}
|
100
73
|
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
// INSTANCE_ROLE
|
109
|
-
function transferInstanceOwnerRole(address from, address to) external restricted() {
|
110
|
-
// temp pre transfer checks
|
111
|
-
assert(_getRoleMembers(INSTANCE_ROLE()) == 1);
|
112
|
-
assert(_hasRole(INSTANCE_ROLE(), _instance));
|
113
|
-
assert(_getRoleAdmin(INSTANCE_OWNER_ROLE()).toInt() == ADMIN_ROLE().toInt());
|
114
|
-
if(from != address(0)) { // nft transfer
|
115
|
-
assert(_getRoleMembers(INSTANCE_OWNER_ROLE()) == 1);
|
116
|
-
} else { // nft minting
|
117
|
-
assert(_getRoleMembers(INSTANCE_OWNER_ROLE()) == 0);
|
74
|
+
function _checkTargetIsReadyForAuthorization(address target)
|
75
|
+
internal
|
76
|
+
view
|
77
|
+
{
|
78
|
+
if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
|
79
|
+
revert ErrorInstanceAdminNotRegistered(target);
|
118
80
|
}
|
119
81
|
|
120
|
-
|
121
|
-
|
122
|
-
_grantRole(INSTANCE_OWNER_ROLE(), to);
|
123
|
-
if(from != address(0)) { // nft transfer
|
124
|
-
_revokeRole(INSTANCE_OWNER_ROLE(), from);
|
82
|
+
if (targetExists(target)) {
|
83
|
+
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
125
84
|
}
|
126
|
-
|
127
|
-
// temp post transfer checks
|
128
|
-
assert(_getRoleMembers(INSTANCE_OWNER_ROLE()) == 1);// temp
|
129
|
-
assert(_hasRole(INSTANCE_OWNER_ROLE(), to));
|
130
85
|
}
|
131
86
|
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
_createTarget(target, name, IAccess.Type.Core);
|
137
|
-
}
|
138
|
-
|
139
|
-
// INSTANCE_SERVICE_ROLE
|
140
|
-
function createGifTarget(address target, string memory name) external restricted()
|
87
|
+
/// @dev Completes the initialization of this instance admin using the provided instance.
|
88
|
+
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
89
|
+
function initializeInstanceAuthorization(address instanceAddress)
|
90
|
+
external
|
141
91
|
{
|
142
|
-
|
143
|
-
revert IAccess.ErrorIAccessTargetNotRegistered(target);
|
144
|
-
}
|
92
|
+
_checkTargetIsReadyForAuthorization(instanceAddress);
|
145
93
|
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
revert IAccess.ErrorIAccessTargetInstanceMismatch(target, targetParentNftId, instanceNftId);
|
150
|
-
}
|
151
|
-
|
152
|
-
_createTarget(target, name, IAccess.Type.Gif);
|
153
|
-
}
|
94
|
+
_idNext = CUSTOM_ROLE_ID_MIN;
|
95
|
+
_instance = IInstance(instanceAddress);
|
96
|
+
_registry = _instance.getRegistry();
|
154
97
|
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
// TODO check target associated with instance owner or instance or instance components or components helpers
|
160
|
-
function createTarget(address target, string memory name) external restricted() {
|
161
|
-
_createTarget(target, name, IAccess.Type.Custom);
|
162
|
-
}
|
98
|
+
// check matching releases
|
99
|
+
if (_instanceAuthorization.getRelease() != _instance.getMajorVersion()) {
|
100
|
+
revert ErrorInstanceAdminReleaseMismatch();
|
101
|
+
}
|
163
102
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
}
|
103
|
+
// add instance authorization
|
104
|
+
_createRoles(_instanceAuthorization);
|
105
|
+
_createModuleTargetsWithRoles();
|
106
|
+
_createTargetAuthorizations(_instanceAuthorization);
|
169
107
|
|
170
|
-
|
171
|
-
|
172
|
-
_setTargetLocked(target, locked);
|
108
|
+
// grant component owner roles to instance owner
|
109
|
+
_grantComponentOwnerRoles();
|
173
110
|
}
|
174
111
|
|
175
112
|
|
176
|
-
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
// any roles for any targets
|
184
|
-
// INSTANCE_SERVICE_ROLE if used not only during initilization, works with:
|
185
|
-
// core roles for core targets
|
186
|
-
// gif roles for gif targets
|
187
|
-
function setTargetFunctionRoleByService(
|
188
|
-
string memory targetName,
|
189
|
-
bytes4[] calldata selectors,
|
190
|
-
RoleId roleId
|
191
|
-
)
|
192
|
-
public
|
193
|
-
virtual
|
194
|
-
restricted
|
113
|
+
/// @dev Initializes the authorization for the specified component.
|
114
|
+
/// Important: The component MUST be registered.
|
115
|
+
function initializeComponentAuthorization(
|
116
|
+
IComponent component,
|
117
|
+
IAuthorization authorization
|
118
|
+
)
|
119
|
+
external
|
195
120
|
{
|
196
|
-
address
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
121
|
+
_checkTargetIsReadyForAuthorization(address(component));
|
122
|
+
|
123
|
+
_createRoles(authorization);
|
124
|
+
|
125
|
+
// create component target
|
126
|
+
_createTarget(
|
127
|
+
address(component),
|
128
|
+
authorization.getTargetName(),
|
129
|
+
true, // checkAuthority
|
130
|
+
false); // custom
|
131
|
+
|
132
|
+
_createTarget(
|
133
|
+
address(component.getTokenHandler()),
|
134
|
+
string(abi.encodePacked(authorization.getTargetName(), "TH")),
|
135
|
+
true,
|
136
|
+
false);
|
137
|
+
|
138
|
+
// FIXME: make this a bit nicer and work with IAuthorization. Use a specific role, not public - access to TokenHandler must be restricted
|
139
|
+
FunctionInfo[] memory functions = new FunctionInfo[](3);
|
140
|
+
functions[0] = toFunction(TokenHandler.collectTokens.selector, "collectTokens");
|
141
|
+
functions[1] = toFunction(TokenHandler.collectTokensToThreeRecipients.selector, "collectTokensToThreeRecipients");
|
142
|
+
functions[2] = toFunction(TokenHandler.distributeTokens.selector, "distributeTokens");
|
143
|
+
|
144
|
+
_authorizeTargetFunctions(
|
145
|
+
address(component.getTokenHandler()),
|
146
|
+
getPublicRole(),
|
147
|
+
functions);
|
148
|
+
|
149
|
+
_grantRoleToAccount(
|
150
|
+
authorization.getTargetRole(
|
151
|
+
authorization.getTarget()),
|
152
|
+
address(component));
|
153
|
+
|
154
|
+
_createTargetAuthorizations(authorization);
|
208
155
|
}
|
209
156
|
|
210
|
-
// INSTANCE_ROLE
|
211
|
-
// gif role for gif target
|
212
|
-
// gif role for custom target
|
213
|
-
// custom role for gif target -> need to prohibit
|
214
|
-
// custom role for custom target
|
215
|
-
// TODO instance owner can mess with gif target (component) -> e.g. set custom role for function intendent to work with gif role
|
216
|
-
function setTargetFunctionRoleByInstance(
|
217
|
-
string memory targetName,
|
218
|
-
bytes4[] calldata selectors,
|
219
|
-
RoleId roleId// string memory roleName
|
220
|
-
)
|
221
|
-
public
|
222
|
-
virtual
|
223
|
-
restricted()
|
224
|
-
{
|
225
|
-
address target = _accessManager.getTargetAddress(targetName);
|
226
157
|
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
}
|
236
|
-
|
237
|
-
_setTargetFunctionRole(target, selectors, roleId);
|
158
|
+
function _grantComponentOwnerRoles()
|
159
|
+
internal
|
160
|
+
{
|
161
|
+
address instanceOwner = _registry.ownerOf(_instance.getNftId());
|
162
|
+
_grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
|
163
|
+
_grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
|
164
|
+
_grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
|
165
|
+
_grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
|
238
166
|
}
|
239
167
|
|
240
|
-
|
241
|
-
|
242
|
-
|
168
|
+
/// @dev Creates a custom role
|
169
|
+
// TODO implement
|
170
|
+
// function createRole()
|
171
|
+
// external
|
172
|
+
// restricted()
|
173
|
+
// {
|
243
174
|
|
244
|
-
|
245
|
-
_accessManager.createRole(roleId.toInt(), name);
|
246
|
-
}
|
175
|
+
// }
|
247
176
|
|
248
|
-
|
177
|
+
/// @dev Grants the provided role to the specified account
|
178
|
+
function grantRole(
|
179
|
+
RoleId roleId,
|
180
|
+
address account)
|
181
|
+
external
|
182
|
+
restricted()
|
249
183
|
{
|
250
|
-
|
251
|
-
if(rtype == IAccess.Type.Custom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
|
252
|
-
revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
|
253
|
-
}
|
254
|
-
|
255
|
-
if(
|
256
|
-
rtype != IAccess.Type.Custom &&
|
257
|
-
roleIdInt >= CUSTOM_ROLE_ID_MIN &&
|
258
|
-
roleIdInt != PUBLIC_ROLE().toInt())
|
259
|
-
{
|
260
|
-
revert IAccess.ErrorIAccessRoleIdTooBig(roleId);
|
261
|
-
}
|
184
|
+
_grantRoleToAccount(roleId, account);
|
262
185
|
}
|
263
186
|
|
264
|
-
|
265
|
-
|
187
|
+
/// @dev Returns the instance authorization specification used to set up this instance admin.
|
188
|
+
function getInstanceAuthorization()
|
189
|
+
external
|
190
|
+
view
|
191
|
+
returns (IModuleAuthorization instanceAuthorizaion)
|
192
|
+
{
|
193
|
+
return _instanceAuthorization;
|
266
194
|
}
|
267
195
|
|
268
|
-
function _revokeRole(RoleId roleId, address member) internal {
|
269
|
-
_accessManager.revokeRole(roleId.toInt(), member);
|
270
|
-
}
|
271
196
|
|
272
|
-
function
|
273
|
-
|
274
|
-
|
197
|
+
function _createRoles(IAuthorization authorization)
|
198
|
+
internal
|
199
|
+
{
|
200
|
+
RoleId[] memory roles = authorization.getRoles();
|
201
|
+
RoleId roleId;
|
202
|
+
RoleInfo memory roleInfo;
|
203
|
+
|
204
|
+
for(uint256 i = 0; i < roles.length; i++) {
|
205
|
+
roleId = roles[i];
|
206
|
+
_createRole(
|
207
|
+
roleId,
|
208
|
+
authorization.getRoleInfo(roleId));
|
275
209
|
}
|
276
|
-
|
277
|
-
_accessManager.setRoleAdmin(roleId.toInt(), admin.toInt());
|
278
210
|
}
|
279
211
|
|
280
|
-
function _getRoleAdmin(RoleId roleId) internal view returns (RoleId admin) {
|
281
|
-
return RoleIdLib.toRoleId(_accessManager.getRoleAdmin(roleId.toInt()));
|
282
|
-
}
|
283
|
-
|
284
|
-
function _hasRole(RoleId roleId, address account) internal view returns (bool accountHasRole) {
|
285
|
-
uint32 executionDelay;
|
286
|
-
(accountHasRole, executionDelay) = _accessManager.hasRole(roleId.toInt(), account);
|
287
|
-
assert(executionDelay == 0);
|
288
|
-
}
|
289
|
-
|
290
|
-
function _getRoleMembers(RoleId roleId) internal view returns (uint) {
|
291
|
-
return _accessManager.getRoleMembers(roleId.toInt());
|
292
|
-
}
|
293
|
-
|
294
|
-
function _getNextCustomRoleId() internal returns(RoleId roleId, RoleId admin) {
|
295
|
-
uint64 roleIdInt = _idNext;
|
296
|
-
uint64 adminInt = roleIdInt + 1;
|
297
|
-
|
298
|
-
_idNext = roleIdInt + 2;
|
299
212
|
|
300
|
-
|
301
|
-
|
302
|
-
}
|
303
|
-
|
304
|
-
//--- Target internal view/pure functions --------------------------------------//
|
305
|
-
function _createTarget(address target, string memory name, IAccess.Type ttype)
|
306
|
-
internal
|
213
|
+
function _createTargetAuthorizations(IAuthorization authorization)
|
214
|
+
internal
|
307
215
|
{
|
308
|
-
|
309
|
-
|
310
|
-
|
216
|
+
Str[] memory targets = authorization.getTargets();
|
217
|
+
Str target;
|
218
|
+
|
219
|
+
for(uint256 i = 0; i < targets.length; i++) {
|
220
|
+
target = targets[i];
|
221
|
+
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
222
|
+
RoleId authorizedRole;
|
223
|
+
|
224
|
+
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
225
|
+
authorizedRole = authorizedRoles[j];
|
226
|
+
|
227
|
+
_authorizeTargetFunctions(
|
228
|
+
getTargetForName(target),
|
229
|
+
authorizedRole,
|
230
|
+
authorization.getAuthorizedFunctions(
|
231
|
+
target,
|
232
|
+
authorizedRole));
|
233
|
+
}
|
234
|
+
}
|
311
235
|
}
|
312
236
|
|
313
|
-
function
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
// IMPORTANT: instance admin MUST be of Core type -> otherwise can be locked forever
|
319
|
-
// TODO: consider locking gif targets in a separate function?
|
320
|
-
function _setTargetLocked(address target, bool locked) internal
|
237
|
+
function _checkAndCreateTargetWithRole(
|
238
|
+
address target,
|
239
|
+
string memory targetName
|
240
|
+
)
|
241
|
+
internal
|
321
242
|
{
|
322
|
-
|
323
|
-
|
324
|
-
if(
|
325
|
-
revert
|
243
|
+
// check that target name is defined in authorization specification
|
244
|
+
Str name = StrLib.toStr(targetName);
|
245
|
+
if (!_instanceAuthorization.targetExists(name)) {
|
246
|
+
revert ErrorInstanceAdminExpectedTargetMissing(targetName);
|
326
247
|
}
|
327
248
|
|
328
|
-
|
249
|
+
// create named target
|
250
|
+
_createTarget(
|
251
|
+
target,
|
252
|
+
targetName,
|
253
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with registry admin)
|
254
|
+
false);
|
255
|
+
|
256
|
+
// assign target role if defined
|
257
|
+
RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
|
258
|
+
if (targetRoleId != RoleIdLib.zero()) {
|
259
|
+
_grantRoleToAccount(targetRoleId, target);
|
260
|
+
}
|
329
261
|
}
|
330
262
|
|
331
|
-
function
|
332
|
-
|
263
|
+
function _createModuleTargetsWithRoles()
|
264
|
+
internal
|
265
|
+
{
|
266
|
+
// create module targets
|
267
|
+
_checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
268
|
+
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
269
|
+
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
270
|
+
_checkAndCreateTargetWithRole(address(_instance.getBundleSet()), BUNDLE_SET_TARGET_NAME);
|
271
|
+
|
272
|
+
// create targets for services that need to access the module targets
|
273
|
+
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
274
|
+
VersionPart release = _instanceAuthorization.getRelease();
|
275
|
+
ObjectType serviceDomain;
|
276
|
+
|
277
|
+
for (uint256 i = 0; i < serviceDomains.length; i++) {
|
278
|
+
serviceDomain = serviceDomains[i];
|
279
|
+
|
280
|
+
_checkAndCreateTargetWithRole(
|
281
|
+
_registry.getServiceAddress(serviceDomain, release),
|
282
|
+
_instanceAuthorization.getServiceTarget(serviceDomain).toString());
|
283
|
+
}
|
333
284
|
}
|
334
|
-
}
|
285
|
+
}
|