@etherisc/gif-next 0.0.2-676522f-203 → 0.0.2-683d8b2-607
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 +30 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- 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 +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/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- 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/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -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 +190 -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 +29 -254
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +138 -93
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -58
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +75 -150
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
- 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 +64 -84
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +152 -45
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +78 -146
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1214 -280
- 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 +230 -65
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +221 -106
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +53 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +260 -137
- 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/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- 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 +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 +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +772 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1063 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- 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 +95 -58
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +54 -42
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +11 -206
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +28 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +18 -314
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +77 -41
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +43 -39
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +72 -35
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +48 -36
- 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 +112 -67
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +68 -52
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +17 -46
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductService.sol/IProductService.json +13 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +90 -45
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +57 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +98 -61
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +61 -49
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +24 -164
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +39 -31
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +40 -16
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistry.sol/GlobalRegistry.json +1487 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/GlobalRegistryAdmin.sol/GlobalRegistryAdmin.json +1876 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/IGlobalRegistry.sol/IGlobalRegistry.json +974 -0
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +40 -60
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -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 +182 -88
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1599 -153
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +50 -13
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +38 -26
- 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 +1140 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +22 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +11 -11
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +89 -77
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +53 -57
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +13 -0
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +4 -4
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +20 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +17 -4
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -15
- 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/IService.sol/IService.json +13 -0
- 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 +24 -64
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -99
- 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/MainnetContract.sol/MainnetContract.dbg.json +4 -0
- package/artifacts/contracts/shared/MainnetContract.sol/MainnetContract.json +34 -0
- 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/Service.sol/Service.json +13 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +6 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +114 -117
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +215 -70
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +102 -44
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +179 -182
- 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 +44 -44
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +223 -21
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +264 -134
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +42 -46
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +771 -216
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -18
- 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 +68 -4
- 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 +12 -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 +28 -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 +149 -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 +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- 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 +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +17 -4
- 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/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 +590 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- 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 +15 -25
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +20 -13
- package/contracts/instance/IInstanceService.sol +34 -23
- package/contracts/instance/Instance.sol +108 -89
- package/contracts/instance/InstanceAdmin.sol +202 -266
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +52 -12
- package/contracts/instance/InstanceService.sol +159 -78
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +38 -22
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -14
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +157 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +32 -44
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/IPoolService.sol +3 -0
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +45 -33
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +17 -41
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +16 -37
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IClaimService.sol +6 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyService.sol +8 -6
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +7 -8
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +12 -37
- package/contracts/product/ProductServiceManager.sol +2 -5
- package/contracts/registry/ChainNft.sol +37 -22
- package/contracts/registry/GlobalRegistry.sol +89 -0
- package/contracts/registry/GlobalRegistryAdmin.sol +38 -0
- package/contracts/registry/IGlobalRegistry.sol +17 -0
- package/contracts/registry/IRegistry.sol +25 -18
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +129 -150
- package/contracts/registry/RegistryAdmin.sol +358 -150
- package/contracts/registry/RegistryService.sol +9 -23
- package/contracts/registry/RegistryServiceManager.sol +2 -7
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +533 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +9 -52
- package/contracts/shared/Component.sol +8 -13
- package/contracts/shared/ComponentService.sol +45 -60
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +13 -7
- package/contracts/shared/IComponent.sol +3 -7
- package/contracts/shared/IComponentService.sol +11 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +8 -1
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/shared/KeyValueStore.sol +7 -6
- package/contracts/shared/Lifecycle.sol +16 -60
- package/contracts/shared/MainnetContract.sol +15 -0
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/Service.sol +27 -22
- package/contracts/staking/IStaking.sol +41 -26
- package/contracts/staking/IStakingService.sol +42 -44
- package/contracts/staking/StakeManagerLib.sol +101 -26
- package/contracts/staking/Staking.sol +139 -125
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +73 -36
- package/contracts/staking/StakingService.sol +121 -86
- package/contracts/staking/StakingServiceManager.sol +2 -3
- package/contracts/staking/StakingStore.sol +401 -127
- package/contracts/staking/TargetManagerLib.sol +28 -0
- package/contracts/type/Amount.sol +15 -1
- package/contracts/type/NftId.sol +8 -8
- package/contracts/type/ObjectType.sol +171 -69
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RoleId.sol +103 -72
- package/contracts/type/Seconds.sol +10 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +12 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +6 -2
- package/contracts/type/UFixed.sol +6 -0
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +4 -5
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +8 -5
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -204
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- 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 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- 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/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingManager.sol/IStakingManager.json +0 -37
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.dbg.json +0 -4
- package/artifacts/contracts/staking/IStakingStore.sol/IStakingStore.json +0 -357
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -349
- package/contracts/registry/ReleaseManager.sol +0 -596
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- 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/staking/IStakingManager.sol +0 -15
- package/contracts/staking/IStakingStore.sol +0 -130
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
|
@@ -0,0 +1,200 @@
|
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
|
2
|
+
pragma solidity ^0.8.20;
|
|
3
|
+
|
|
4
|
+
import {
|
|
5
|
+
ALL, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE
|
|
6
|
+
} from "../../contracts/type/ObjectType.sol";
|
|
7
|
+
|
|
8
|
+
import {ComponentService} from "../shared/ComponentService.sol";
|
|
9
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
|
10
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
|
11
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
|
12
|
+
import {InstanceService} from "../instance/InstanceService.sol";
|
|
13
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
|
14
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
|
15
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
|
16
|
+
import {IRegistryService} from "./IRegistryService.sol";
|
|
17
|
+
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
contract ServiceAuthorizationV3
|
|
21
|
+
is ServiceAuthorization
|
|
22
|
+
{
|
|
23
|
+
|
|
24
|
+
constructor(string memory commitHash)
|
|
25
|
+
ServiceAuthorization(commitHash)
|
|
26
|
+
{}
|
|
27
|
+
|
|
28
|
+
function _setupDomains()
|
|
29
|
+
internal
|
|
30
|
+
override
|
|
31
|
+
{
|
|
32
|
+
_authorizeDomain(REGISTRY(), address(1));
|
|
33
|
+
_authorizeDomain(STAKING(), address(2));
|
|
34
|
+
_authorizeDomain(INSTANCE(), address(3));
|
|
35
|
+
_authorizeDomain(COMPONENT(), address(4));
|
|
36
|
+
_authorizeDomain(DISTRIBUTION(), address(5));
|
|
37
|
+
_authorizeDomain(PRICE(), address(6));
|
|
38
|
+
_authorizeDomain(BUNDLE(), address(7));
|
|
39
|
+
_authorizeDomain(POOL(), address(8));
|
|
40
|
+
_authorizeDomain(ORACLE(), address(9));
|
|
41
|
+
_authorizeDomain(PRODUCT(), address(10));
|
|
42
|
+
_authorizeDomain(CLAIM(), address(11));
|
|
43
|
+
_authorizeDomain(APPLICATION(), address(12));
|
|
44
|
+
_authorizeDomain(POLICY(), address(13));
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
function _setupDomainAuthorizations()
|
|
49
|
+
internal
|
|
50
|
+
override
|
|
51
|
+
{
|
|
52
|
+
_setupIRegistryServiceAuthorization();
|
|
53
|
+
_setupStakingServiceAuthorization();
|
|
54
|
+
_setupInstanceServiceAuthorization();
|
|
55
|
+
_setupComponentServiceAuthorization();
|
|
56
|
+
_setupDistributionServiceAuthorization();
|
|
57
|
+
_setupPoolServiceAuthorization();
|
|
58
|
+
_setupBundleServiceAuthorization();
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
/// @dev registry service authorization.
|
|
63
|
+
/// authorized functions MUST be implemented with a restricted modifier
|
|
64
|
+
function _setupIRegistryServiceAuthorization()
|
|
65
|
+
internal
|
|
66
|
+
{
|
|
67
|
+
IAccess.FunctionInfo[] storage functions;
|
|
68
|
+
|
|
69
|
+
functions = _authorizeForService(REGISTRY(), APPLICATION());
|
|
70
|
+
_authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
|
|
71
|
+
|
|
72
|
+
// functions = _authorizeForService(REGISTRY(), POOL());
|
|
73
|
+
// _authorize(functions, IRegistryService.registerPool.selector, "registerPool");
|
|
74
|
+
|
|
75
|
+
functions = _authorizeForService(REGISTRY(), BUNDLE());
|
|
76
|
+
_authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
|
|
77
|
+
|
|
78
|
+
functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
|
|
79
|
+
// _authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
|
|
80
|
+
_authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
|
|
81
|
+
|
|
82
|
+
functions = _authorizeForService(REGISTRY(), COMPONENT());
|
|
83
|
+
_authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
|
|
84
|
+
|
|
85
|
+
functions = _authorizeForService(REGISTRY(), INSTANCE());
|
|
86
|
+
_authorize(functions, IRegistryService.registerInstance.selector, "registerInstance");
|
|
87
|
+
|
|
88
|
+
functions = _authorizeForService(REGISTRY(), STAKING());
|
|
89
|
+
_authorize(functions, IRegistryService.registerStake.selector, "registerStake");
|
|
90
|
+
|
|
91
|
+
// functions = _authorizeForService(REGISTRY(), PRODUCT());
|
|
92
|
+
// _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
|
|
96
|
+
/// @dev staking service authorization.
|
|
97
|
+
/// authorized functions MUST be implemented with a restricted modifier
|
|
98
|
+
function _setupStakingServiceAuthorization()
|
|
99
|
+
internal
|
|
100
|
+
{
|
|
101
|
+
IAccess.FunctionInfo[] storage functions;
|
|
102
|
+
|
|
103
|
+
functions = _authorizeForService(STAKING(), INSTANCE());
|
|
104
|
+
_authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
|
|
105
|
+
_authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
|
|
106
|
+
_authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
|
|
107
|
+
_authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
|
|
108
|
+
_authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
|
|
109
|
+
|
|
110
|
+
functions = _authorizeForService(STAKING(), ALL());
|
|
111
|
+
_authorize(functions, IStakingService.create.selector, "create");
|
|
112
|
+
_authorize(functions, IStakingService.stake.selector, "stake");
|
|
113
|
+
_authorize(functions, IStakingService.restakeToNewTarget.selector, "restakeToNewTarget");
|
|
114
|
+
_authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
|
|
115
|
+
_authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
|
|
116
|
+
_authorize(functions, IStakingService.unstake.selector, "unstake");
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
|
|
120
|
+
/// @dev Instance service function authorization.
|
|
121
|
+
function _setupInstanceServiceAuthorization()
|
|
122
|
+
internal
|
|
123
|
+
{
|
|
124
|
+
IAccess.FunctionInfo[] storage functions;
|
|
125
|
+
|
|
126
|
+
functions = _authorizeForService(INSTANCE(), COMPONENT());
|
|
127
|
+
_authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
|
|
128
|
+
}
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
/// @dev Component service function authorization.
|
|
132
|
+
function _setupComponentServiceAuthorization()
|
|
133
|
+
internal
|
|
134
|
+
{
|
|
135
|
+
// authz.authorizations = new DomainAuthorization[](4);
|
|
136
|
+
|
|
137
|
+
// authz.authorizations[0].domain = POLICY();
|
|
138
|
+
// _functions = new IAccessAdmin.Function[](1);
|
|
139
|
+
// __authorize(ComponentService.increaseProductFees.selector, "increaseProductFees"));
|
|
140
|
+
// authz.authorizations[0].functions = _functions;
|
|
141
|
+
|
|
142
|
+
// authz.authorizations[1].domain = DISTRIBUTION();
|
|
143
|
+
// _functions = new IAccessAdmin.Function[](1);
|
|
144
|
+
// __authorize(ComponentService.increaseDistributionBalance.selector, "increaseDistributionBalance"));
|
|
145
|
+
// authz.authorizations[1].functions = _functions;
|
|
146
|
+
|
|
147
|
+
// authz.authorizations[2].domain = POOL();
|
|
148
|
+
// _functions = new IAccessAdmin.Function[](1);
|
|
149
|
+
// __authorize(ComponentService.increasePoolBalance.selector, "increasePoolBalance"));
|
|
150
|
+
// authz.authorizations[2].functions = _functions;
|
|
151
|
+
|
|
152
|
+
// authz.authorizations[3].domain = BUNDLE();
|
|
153
|
+
// _functions = new IAccessAdmin.Function[](1);
|
|
154
|
+
// __authorize(ComponentService.increaseBundleBalance.selector, "increaseBundleBalance"));
|
|
155
|
+
// authz.authorizations[3].functions = _functions;
|
|
156
|
+
}
|
|
157
|
+
|
|
158
|
+
/// @dev Distribution service function authorization.
|
|
159
|
+
function _setupDistributionServiceAuthorization()
|
|
160
|
+
internal
|
|
161
|
+
{
|
|
162
|
+
IAccess.FunctionInfo[] storage functions;
|
|
163
|
+
|
|
164
|
+
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
|
165
|
+
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
|
|
169
|
+
/// @dev Pool service function authorization.
|
|
170
|
+
function _setupPoolServiceAuthorization()
|
|
171
|
+
internal
|
|
172
|
+
{
|
|
173
|
+
IAccess.FunctionInfo[] storage functions;
|
|
174
|
+
|
|
175
|
+
functions = _authorizeForService(POOL(), POLICY());
|
|
176
|
+
_authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
|
|
177
|
+
_authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
|
|
178
|
+
_authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
|
|
179
|
+
_authorize(functions, IPoolService.processSale.selector, "processSale");
|
|
180
|
+
|
|
181
|
+
functions = _authorizeForService(POOL(), CLAIM());
|
|
182
|
+
_authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
|
|
183
|
+
}
|
|
184
|
+
|
|
185
|
+
|
|
186
|
+
/// @dev Instance service function authorization.
|
|
187
|
+
function _setupBundleServiceAuthorization()
|
|
188
|
+
internal
|
|
189
|
+
{
|
|
190
|
+
IAccess.FunctionInfo[] storage functions;
|
|
191
|
+
|
|
192
|
+
functions = _authorizeForService(BUNDLE(), POOL());
|
|
193
|
+
_authorize(functions, IBundleService.create.selector, "create");
|
|
194
|
+
_authorize(functions, IBundleService.close.selector, "close");
|
|
195
|
+
_authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
|
|
196
|
+
_authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
|
|
197
|
+
_authorize(functions, IBundleService.unlinkPolicy.selector, "unlinkPolicy");
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
|
|
@@ -12,7 +12,7 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
|
12
12
|
|
|
13
13
|
import {IRegistry} from "./IRegistry.sol";
|
|
14
14
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
|
15
|
-
import {
|
|
15
|
+
import {ReleaseRegistry} from "./ReleaseRegistry.sol";
|
|
16
16
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
|
17
17
|
|
|
18
18
|
|
|
@@ -49,7 +49,7 @@ contract TokenRegistry is
|
|
|
49
49
|
TokenInfo [] internal _token;
|
|
50
50
|
|
|
51
51
|
IRegistry internal _registry;
|
|
52
|
-
|
|
52
|
+
ReleaseRegistry internal _releaseRegistry;
|
|
53
53
|
IERC20Metadata internal _dipToken;
|
|
54
54
|
|
|
55
55
|
/// @dev enforces msg.sender is owner of nft (or initial owner of nft ownable)
|
|
@@ -60,16 +60,15 @@ contract TokenRegistry is
|
|
|
60
60
|
_;
|
|
61
61
|
}
|
|
62
62
|
|
|
63
|
-
constructor(IRegistry registry)
|
|
63
|
+
constructor(IRegistry registry, IERC20Metadata dipToken)
|
|
64
64
|
AccessManaged(msg.sender)
|
|
65
65
|
{
|
|
66
66
|
// set authority
|
|
67
67
|
address authority = RegistryAdmin(registry.getRegistryAdminAddress()).authority();
|
|
68
68
|
setAuthority(authority);
|
|
69
69
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
_dipToken = IERC20Metadata(_registry.getDipTokenAddress());
|
|
70
|
+
_registry = registry;
|
|
71
|
+
_dipToken = dipToken;
|
|
73
72
|
|
|
74
73
|
// register dip token
|
|
75
74
|
uint256 chainId = block.chainid;
|
|
@@ -80,52 +79,6 @@ contract TokenRegistry is
|
|
|
80
79
|
_dipToken.symbol());
|
|
81
80
|
}
|
|
82
81
|
|
|
83
|
-
// TODO cleanup
|
|
84
|
-
// function initialize(
|
|
85
|
-
// address initialOwner
|
|
86
|
-
// )
|
|
87
|
-
// public
|
|
88
|
-
// initializer()
|
|
89
|
-
// {
|
|
90
|
-
// initializeNftOwnable(initialOwner, _registryAddress);
|
|
91
|
-
|
|
92
|
-
// // initialize release manager
|
|
93
|
-
// _releaseManager = ReleaseManager(msg.sender);
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
// // register dip token
|
|
97
|
-
// uint256 chainId = block.chainid;
|
|
98
|
-
// _registerToken(
|
|
99
|
-
// chainId,
|
|
100
|
-
// address(_dipToken),
|
|
101
|
-
// _dipToken.decimals(),
|
|
102
|
-
// _dipToken.symbol());
|
|
103
|
-
// }
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
// /// @dev link token registry ownership to nft owner of registry service and register dip token.
|
|
107
|
-
// function linkToRegistryService()
|
|
108
|
-
// external
|
|
109
|
-
// {
|
|
110
|
-
// // link token registry ownership to registry service
|
|
111
|
-
// address registryService = getRegistry().getServiceAddress(
|
|
112
|
-
// REGISTRY(),
|
|
113
|
-
// _releaseManager.getInitialVersion());
|
|
114
|
-
|
|
115
|
-
// _linkToNftOwnable(registryService);
|
|
116
|
-
|
|
117
|
-
// // activate dip for initial gif version
|
|
118
|
-
// // as token registry is created in constructor of release manager
|
|
119
|
-
// // release manager can not yet be called in constructor of token registry
|
|
120
|
-
// uint256 chainId = block.chainid;
|
|
121
|
-
// address dipToken = address(_dipToken);
|
|
122
|
-
// VersionPart majorVersion = _releaseManager.getInitialVersion();
|
|
123
|
-
// bool active = true;
|
|
124
|
-
// _active[chainId][dipToken][majorVersion] = active;
|
|
125
|
-
|
|
126
|
-
// emit LogTokenRegistryTokenStateSet(chainId, dipToken, majorVersion, active);
|
|
127
|
-
// }
|
|
128
|
-
|
|
129
82
|
|
|
130
83
|
/// @dev register an onchain token.
|
|
131
84
|
/// this function verifies that the provided token address is a contract that implements
|
|
@@ -268,6 +221,10 @@ contract TokenRegistry is
|
|
|
268
221
|
return _active[chainId][token][majorVersion];
|
|
269
222
|
}
|
|
270
223
|
|
|
224
|
+
function getDipTokenAddress() external view returns (address) {
|
|
225
|
+
return address(_dipToken);
|
|
226
|
+
}
|
|
227
|
+
|
|
271
228
|
//--- IRegistryLinked --------------------------------------------------//
|
|
272
229
|
|
|
273
230
|
/// @dev returns the dip token for this chain
|
|
@@ -6,21 +6,14 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
|
6
6
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
7
7
|
import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol";
|
|
8
8
|
|
|
9
|
+
import {Amount} from "../type/Amount.sol";
|
|
9
10
|
import {IComponent} from "./IComponent.sol";
|
|
10
11
|
import {IComponents} from "../instance/module/IComponents.sol";
|
|
11
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
|
12
|
-
import {IInstance} from "../instance/IInstance.sol";
|
|
13
|
-
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
|
14
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
|
15
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
|
16
12
|
import {NftId, NftIdLib} from "../type/NftId.sol";
|
|
17
|
-
import {ObjectType
|
|
18
|
-
import {VersionPart} from "../type/Version.sol";
|
|
13
|
+
import {ObjectType} from "../type/ObjectType.sol";
|
|
19
14
|
import {Registerable} from "../shared/Registerable.sol";
|
|
20
|
-
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
|
21
|
-
import {IAccess} from "../instance/module/IAccess.sol";
|
|
22
15
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
23
|
-
import {
|
|
16
|
+
import {VersionPartLib} from "../type/Version.sol";
|
|
24
17
|
|
|
25
18
|
abstract contract Component is
|
|
26
19
|
AccessManagedUpgradeable,
|
|
@@ -95,7 +88,7 @@ abstract contract Component is
|
|
|
95
88
|
}
|
|
96
89
|
|
|
97
90
|
|
|
98
|
-
function approveTokenHandler(
|
|
91
|
+
function approveTokenHandler(Amount spendingLimitAmount)
|
|
99
92
|
external
|
|
100
93
|
virtual
|
|
101
94
|
onlyOwner
|
|
@@ -103,7 +96,7 @@ abstract contract Component is
|
|
|
103
96
|
approveTokenHandler(address(getToken()), spendingLimitAmount);
|
|
104
97
|
}
|
|
105
98
|
|
|
106
|
-
function approveTokenHandler(address token,
|
|
99
|
+
function approveTokenHandler(address token, Amount spendingLimitAmount)
|
|
107
100
|
public
|
|
108
101
|
virtual
|
|
109
102
|
onlyOwner
|
|
@@ -114,7 +107,7 @@ abstract contract Component is
|
|
|
114
107
|
|
|
115
108
|
IERC20Metadata(token).approve(
|
|
116
109
|
address(getTokenHandler()),
|
|
117
|
-
spendingLimitAmount);
|
|
110
|
+
spendingLimitAmount.toInt());
|
|
118
111
|
|
|
119
112
|
emit LogComponentTokenHandlerApproved(address(getTokenHandler()), spendingLimitAmount);
|
|
120
113
|
}
|
|
@@ -259,6 +252,7 @@ abstract contract Component is
|
|
|
259
252
|
|
|
260
253
|
}
|
|
261
254
|
|
|
255
|
+
|
|
262
256
|
/// @dev for component contracts that hold its own component information
|
|
263
257
|
/// this function creates and sets a token hanlder for the components tokens
|
|
264
258
|
function _createAndSetTokenHandler()
|
|
@@ -268,6 +262,7 @@ abstract contract Component is
|
|
|
268
262
|
$._tokenHandler = new TokenHandler(address($._token));
|
|
269
263
|
}
|
|
270
264
|
|
|
265
|
+
|
|
271
266
|
/// @dev depending on the source of the component information this function needs to be overwritten.
|
|
272
267
|
/// eg for instance linked components that externally store this information with the instance store contract
|
|
273
268
|
function _getComponentInfo() internal virtual view returns (IComponents.ComponentInfo memory info) {
|
|
@@ -10,8 +10,8 @@ import {IRegistryService} from "../registry/IRegistryService.sol";
|
|
|
10
10
|
import {IInstance} from "../instance/IInstance.sol";
|
|
11
11
|
import {IAccess} from "../instance/module/IAccess.sol";
|
|
12
12
|
import {NftId} from "../type/NftId.sol";
|
|
13
|
-
import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
|
14
|
-
import {RoleId, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
|
|
13
|
+
import {ObjectType, REGISTRY, COMPONENT, DISTRIBUTION, INSTANCE, ORACLE, POOL, PRODUCT} from "../type/ObjectType.sol";
|
|
14
|
+
import {RoleId, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
|
15
15
|
import {KEEP_STATE} from "../type/StateId.sol";
|
|
16
16
|
import {IComponents} from "../instance/module/IComponents.sol";
|
|
17
17
|
import {IComponentService} from "./IComponentService.sol";
|
|
@@ -64,11 +64,6 @@ contract ComponentService is
|
|
|
64
64
|
registerInterface(type(IComponentService).interfaceId);
|
|
65
65
|
}
|
|
66
66
|
|
|
67
|
-
|
|
68
|
-
function getDomain() public pure virtual override returns(ObjectType) {
|
|
69
|
-
return COMPONENT();
|
|
70
|
-
}
|
|
71
|
-
|
|
72
67
|
//-------- component ----------------------------------------------------//
|
|
73
68
|
|
|
74
69
|
function setWallet(address newWallet) external virtual {
|
|
@@ -107,12 +102,6 @@ contract ComponentService is
|
|
|
107
102
|
virtual
|
|
108
103
|
{
|
|
109
104
|
address contractAddress = msg.sender;
|
|
110
|
-
RoleId[] memory roles = new RoleId[](1);
|
|
111
|
-
bytes4[][] memory selectors = new bytes4[][](1);
|
|
112
|
-
|
|
113
|
-
// authorizaion for distribution owner
|
|
114
|
-
roles[0] = PRODUCT_OWNER_ROLE();
|
|
115
|
-
selectors[0] = _createSelectors(IProductComponent.setFees.selector);
|
|
116
105
|
|
|
117
106
|
// register/create component setup
|
|
118
107
|
(
|
|
@@ -122,9 +111,7 @@ contract ComponentService is
|
|
|
122
111
|
) = _register(
|
|
123
112
|
contractAddress,
|
|
124
113
|
PRODUCT(),
|
|
125
|
-
PRODUCT_OWNER_ROLE()
|
|
126
|
-
roles,
|
|
127
|
-
selectors);
|
|
114
|
+
PRODUCT_OWNER_ROLE());
|
|
128
115
|
|
|
129
116
|
// create product info
|
|
130
117
|
IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
|
|
@@ -198,24 +185,12 @@ contract ComponentService is
|
|
|
198
185
|
virtual
|
|
199
186
|
{
|
|
200
187
|
address contractAddress = msg.sender;
|
|
201
|
-
RoleId[] memory roles = new RoleId[](2);
|
|
202
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
|
203
|
-
|
|
204
|
-
// authorizaion for distribution owner
|
|
205
|
-
roles[0] = DISTRIBUTION_OWNER_ROLE();
|
|
206
|
-
selectors[0] = _createSelectors(IDistributionComponent.setFees.selector);
|
|
207
|
-
|
|
208
|
-
// authorizaion for product service
|
|
209
|
-
roles[1] = PRODUCT_SERVICE_ROLE();
|
|
210
|
-
selectors[1] = _createSelectors(IDistributionComponent.processRenewal.selector);
|
|
211
188
|
|
|
212
189
|
// register/create component info
|
|
213
190
|
_register(
|
|
214
191
|
contractAddress,
|
|
215
192
|
DISTRIBUTION(),
|
|
216
|
-
DISTRIBUTION_OWNER_ROLE()
|
|
217
|
-
roles,
|
|
218
|
-
selectors);
|
|
193
|
+
DISTRIBUTION_OWNER_ROLE());
|
|
219
194
|
}
|
|
220
195
|
|
|
221
196
|
|
|
@@ -280,24 +255,32 @@ contract ComponentService is
|
|
|
280
255
|
_changeTargetBalance(DECREASE, instanceStore, distributionNftId, amount, feeAmount);
|
|
281
256
|
}
|
|
282
257
|
|
|
283
|
-
//--------
|
|
258
|
+
//-------- oracle -------------------------------------------------------//
|
|
284
259
|
|
|
285
|
-
|
|
286
|
-
function registerPool()
|
|
260
|
+
function registerOracle()
|
|
287
261
|
external
|
|
288
262
|
virtual
|
|
289
263
|
{
|
|
290
264
|
address contractAddress = msg.sender;
|
|
291
|
-
RoleId[] memory roles = new RoleId[](2);
|
|
292
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
|
293
265
|
|
|
294
|
-
//
|
|
295
|
-
|
|
296
|
-
|
|
266
|
+
// register/create component setup
|
|
267
|
+
(
|
|
268
|
+
, // instance reader
|
|
269
|
+
InstanceStore instanceStore,
|
|
270
|
+
NftId componentNftId
|
|
271
|
+
) = _register(
|
|
272
|
+
contractAddress,
|
|
273
|
+
ORACLE(),
|
|
274
|
+
ORACLE_OWNER_ROLE());
|
|
275
|
+
}
|
|
297
276
|
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
277
|
+
//-------- pool ---------------------------------------------------------//
|
|
278
|
+
|
|
279
|
+
function registerPool()
|
|
280
|
+
external
|
|
281
|
+
virtual
|
|
282
|
+
{
|
|
283
|
+
address contractAddress = msg.sender;
|
|
301
284
|
|
|
302
285
|
// register/create component setup
|
|
303
286
|
(
|
|
@@ -307,14 +290,13 @@ contract ComponentService is
|
|
|
307
290
|
) = _register(
|
|
308
291
|
contractAddress,
|
|
309
292
|
POOL(),
|
|
310
|
-
POOL_OWNER_ROLE()
|
|
311
|
-
roles,
|
|
312
|
-
selectors);
|
|
293
|
+
POOL_OWNER_ROLE());
|
|
313
294
|
|
|
314
295
|
// create info
|
|
315
296
|
instanceStore.createPool(
|
|
316
297
|
componentNftId,
|
|
317
|
-
IPoolComponent(
|
|
298
|
+
IPoolComponent(
|
|
299
|
+
contractAddress).getInitialPoolInfo());
|
|
318
300
|
}
|
|
319
301
|
|
|
320
302
|
|
|
@@ -444,9 +426,7 @@ contract ComponentService is
|
|
|
444
426
|
function _register(
|
|
445
427
|
address componentAddress, // address of component to register
|
|
446
428
|
ObjectType requiredType, // required type for component for registration
|
|
447
|
-
RoleId requiredRole
|
|
448
|
-
RoleId[] memory roles, // roles with write access to component
|
|
449
|
-
bytes4[][] memory selectors // authorized functions per role with write access
|
|
429
|
+
RoleId requiredRole // role required for comonent owner for registration
|
|
450
430
|
)
|
|
451
431
|
internal
|
|
452
432
|
virtual
|
|
@@ -473,21 +453,23 @@ contract ComponentService is
|
|
|
473
453
|
|
|
474
454
|
component.linkToRegisteredNftId();
|
|
475
455
|
|
|
456
|
+
// setup initial component authorization
|
|
457
|
+
_instanceService.initializeAuthorization(
|
|
458
|
+
instance.getNftId(),
|
|
459
|
+
component);
|
|
460
|
+
|
|
476
461
|
// save amended component info with instance
|
|
477
462
|
instanceReader = instance.getInstanceReader();
|
|
478
463
|
instanceStore = instance.getInstanceStore();
|
|
479
464
|
|
|
480
465
|
IComponents.ComponentInfo memory componentInfo = component.getComponentInfo();
|
|
481
466
|
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
|
|
487
|
-
|
|
488
|
-
component.getName(),
|
|
489
|
-
selectors,
|
|
490
|
-
roles);
|
|
467
|
+
|
|
468
|
+
instanceStore.createComponent(
|
|
469
|
+
component.getNftId(),
|
|
470
|
+
componentInfo);
|
|
471
|
+
|
|
472
|
+
// TODO add logging
|
|
491
473
|
}
|
|
492
474
|
|
|
493
475
|
|
|
@@ -526,7 +508,7 @@ contract ComponentService is
|
|
|
526
508
|
}
|
|
527
509
|
|
|
528
510
|
|
|
529
|
-
function _createSelectors(bytes4 selector) internal
|
|
511
|
+
function _createSelectors(bytes4 selector) internal pure returns (bytes4[] memory selectors) {
|
|
530
512
|
selectors = new bytes4[](1);
|
|
531
513
|
selectors[0] = selector;
|
|
532
514
|
}
|
|
@@ -560,7 +542,7 @@ contract ComponentService is
|
|
|
560
542
|
RoleId requiredRole
|
|
561
543
|
)
|
|
562
544
|
internal
|
|
563
|
-
|
|
545
|
+
view
|
|
564
546
|
returns (
|
|
565
547
|
IInstance instance,
|
|
566
548
|
IInstanceLinkedComponent component,
|
|
@@ -588,9 +570,12 @@ contract ComponentService is
|
|
|
588
570
|
instance = _getInstance(info.parentNftId);
|
|
589
571
|
owner = info.initialOwner;
|
|
590
572
|
|
|
591
|
-
(
|
|
592
|
-
if(!hasRole) {
|
|
573
|
+
if(!instance.getInstanceAdmin().hasRole(owner, requiredRole)) {
|
|
593
574
|
revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
|
|
594
575
|
}
|
|
595
576
|
}
|
|
577
|
+
|
|
578
|
+
function _getDomain() internal pure virtual override returns(ObjectType) {
|
|
579
|
+
return COMPONENT();
|
|
580
|
+
}
|
|
596
581
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
|
2
2
|
pragma solidity ^0.8.20;
|
|
3
3
|
|
|
4
|
-
import {IVersionable} from "./IVersionable.sol";
|
|
5
|
-
import {ProxyManager} from "./ProxyManager.sol";
|
|
6
4
|
import {ComponentService} from "./ComponentService.sol";
|
|
5
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
|
6
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
|
7
7
|
|
|
8
8
|
contract ComponentServiceManager is ProxyManager {
|
|
9
9
|
|
|
@@ -33,12 +33,10 @@ abstract contract ComponentVerifyingService is
|
|
|
33
33
|
)
|
|
34
34
|
{
|
|
35
35
|
componentNftId = getRegistry().getNftId(msg.sender);
|
|
36
|
-
(componentInfo, instance) = _getAndVerifyComponentInfo(
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
|
|
41
|
-
}
|
|
36
|
+
(componentInfo, instance) = _getAndVerifyComponentInfo(
|
|
37
|
+
componentNftId,
|
|
38
|
+
expectedType,
|
|
39
|
+
true); // only active
|
|
42
40
|
}
|
|
43
41
|
|
|
44
42
|
|
|
@@ -48,7 +46,8 @@ abstract contract ComponentVerifyingService is
|
|
|
48
46
|
/// - the component has the wrong object type
|
|
49
47
|
function _getAndVerifyComponentInfo(
|
|
50
48
|
NftId componentNftId,
|
|
51
|
-
ObjectType expectedType // assume always of `component` type
|
|
49
|
+
ObjectType expectedType, // assume always of `component` type
|
|
50
|
+
bool onlyActive
|
|
52
51
|
)
|
|
53
52
|
internal
|
|
54
53
|
virtual
|
|
@@ -85,6 +84,13 @@ abstract contract ComponentVerifyingService is
|
|
|
85
84
|
}
|
|
86
85
|
|
|
87
86
|
instance = _getInstance(info.parentNftId);
|
|
87
|
+
|
|
88
|
+
// ensure component is not locked
|
|
89
|
+
if (onlyActive) {
|
|
90
|
+
if (instance.getInstanceAdmin().isTargetLocked(info.objectAddress)) {
|
|
91
|
+
revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
88
94
|
}
|
|
89
95
|
|
|
90
96
|
|
|
@@ -4,14 +4,10 @@ pragma solidity ^0.8.20;
|
|
|
4
4
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
|
6
6
|
|
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
|
7
8
|
import {IComponents} from "../instance/module/IComponents.sol";
|
|
8
|
-
import {IInstance} from "../instance/IInstance.sol";
|
|
9
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
|
10
|
-
import {IProductService} from "../product/IProductService.sol";
|
|
11
9
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
12
10
|
import {ITransferInterceptor} from "../registry/ITransferInterceptor.sol";
|
|
13
|
-
import {NftId} from "../type/NftId.sol";
|
|
14
|
-
import {ObjectType} from "../type/ObjectType.sol";
|
|
15
11
|
import {TokenHandler} from "../shared/TokenHandler.sol";
|
|
16
12
|
|
|
17
13
|
/// @dev component base class
|
|
@@ -32,12 +28,12 @@ interface IComponent is
|
|
|
32
28
|
|
|
33
29
|
event LogComponentWalletAddressChanged(address oldWallet, address newWallet);
|
|
34
30
|
event LogComponentWalletTokensTransferred(address from, address to, uint256 amount);
|
|
35
|
-
event LogComponentTokenHandlerApproved(address token,
|
|
31
|
+
event LogComponentTokenHandlerApproved(address token, Amount limit);
|
|
36
32
|
|
|
37
33
|
/// @dev approves token hanlder to spend up to the specified amount of tokens
|
|
38
34
|
/// reverts if component wallet is not component itself
|
|
39
35
|
/// only component owner (nft holder) is authorizes to call this function
|
|
40
|
-
function approveTokenHandler(
|
|
36
|
+
function approveTokenHandler(Amount spendingLimitAmount) external;
|
|
41
37
|
|
|
42
38
|
/// @dev sets the wallet address for the component
|
|
43
39
|
/// if the current wallet has tokens, these will be transferred
|