@etherisc/gif-next 0.0.2-e802d97-251 → 0.0.2-e83e4a5-207
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +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 +17 -242
- 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 +65 -57
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +45 -16
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -108
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +58 -78
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +147 -40
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +72 -140
- 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 +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +210 -103
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +84 -135
- 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 +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/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -78
- 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 +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +66 -29
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +44 -32
- 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 +78 -49
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -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 +7 -202
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +13 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +62 -41
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +42 -38
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +66 -37
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +44 -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 +106 -69
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +64 -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 +13 -42
- 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 +84 -47
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +53 -41
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +92 -63
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +57 -49
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -153
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +54 -25
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +38 -30
- 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 +0 -44
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -0
- 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 +24 -68
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1505 -166
- 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 +37 -25
- 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/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +185 -318
- 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 +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +82 -85
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +52 -60
- 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/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +13 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/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/IService.sol/IService.json +13 -0
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +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/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +22 -22
- 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/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +14 -14
- 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/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +49 -7
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +44 -28
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -84
- 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 +40 -56
- 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 +92 -73
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +39 -47
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +197 -149
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +22 -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 +8 -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 +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 +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 +136 -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 +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +2 -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 +4 -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 +2 -2
- package/contracts/authorization/AccessAdmin.sol +591 -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 +13 -9
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/IInstance.sol +11 -7
- package/contracts/instance/IInstanceService.sol +29 -18
- package/contracts/instance/Instance.sol +103 -85
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +24 -9
- package/contracts/instance/InstanceService.sol +151 -70
- package/contracts/instance/InstanceStore.sol +15 -20
- package/contracts/instance/base/BalanceStore.sol +11 -6
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/ObjectManager.sol +7 -10
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/Oracle.sol +61 -49
- package/contracts/oracle/OracleService.sol +5 -4
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/BundleService.sol +19 -19
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +7 -8
- package/contracts/product/ApplicationService.sol +5 -5
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/ClaimService.sol +5 -5
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/PolicyService.sol +5 -5
- package/contracts/product/PricingService.sol +4 -5
- package/contracts/product/Product.sol +103 -88
- package/contracts/product/ProductService.sol +5 -5
- package/contracts/registry/IRegistry.sol +5 -8
- package/contracts/registry/Registry.sol +6 -4
- package/contracts/registry/RegistryAdmin.sol +276 -148
- package/contracts/registry/RegistryService.sol +5 -5
- package/contracts/registry/RegistryServiceManager.sol +0 -5
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseManager.sol +161 -274
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/shared/ComponentService.sol +24 -61
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +7 -0
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/Service.sol +27 -21
- package/contracts/staking/IStakingService.sol +11 -7
- package/contracts/staking/StakeManagerLib.sol +52 -0
- package/contracts/staking/Staking.sol +58 -96
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingService.sol +61 -56
- package/contracts/staking/StakingServiceManager.sol +0 -1
- package/contracts/staking/StakingStore.sol +82 -39
- package/contracts/type/ObjectType.sol +169 -62
- package/contracts/type/RoleId.sol +103 -75
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/String.sol +53 -0
- package/contracts/type/UFixed.sol +6 -0
- package/package.json +4 -1
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/registry/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/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- 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
@@ -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
|
+
|
@@ -11,7 +11,7 @@ import {IInstance} from "../instance/IInstance.sol";
|
|
11
11
|
import {IAccess} from "../instance/module/IAccess.sol";
|
12
12
|
import {NftId} from "../type/NftId.sol";
|
13
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
|
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
|
|
@@ -287,8 +262,6 @@ contract ComponentService is
|
|
287
262
|
virtual
|
288
263
|
{
|
289
264
|
address contractAddress = msg.sender;
|
290
|
-
RoleId[] memory roles = new RoleId[](0);
|
291
|
-
bytes4[][] memory selectors = new bytes4[][](0);
|
292
265
|
|
293
266
|
// register/create component setup
|
294
267
|
(
|
@@ -298,9 +271,7 @@ contract ComponentService is
|
|
298
271
|
) = _register(
|
299
272
|
contractAddress,
|
300
273
|
ORACLE(),
|
301
|
-
ORACLE_OWNER_ROLE()
|
302
|
-
roles,
|
303
|
-
selectors);
|
274
|
+
ORACLE_OWNER_ROLE());
|
304
275
|
}
|
305
276
|
|
306
277
|
//-------- pool ---------------------------------------------------------//
|
@@ -310,16 +281,6 @@ contract ComponentService is
|
|
310
281
|
virtual
|
311
282
|
{
|
312
283
|
address contractAddress = msg.sender;
|
313
|
-
RoleId[] memory roles = new RoleId[](2);
|
314
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
315
|
-
|
316
|
-
// authorizaion for pool owner
|
317
|
-
roles[0] = POOL_OWNER_ROLE();
|
318
|
-
selectors[0] = _createSelectors(IPoolComponent.setFees.selector);
|
319
|
-
|
320
|
-
// authorizaion for product service
|
321
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
322
|
-
selectors[1] = _createSelectors(IPoolComponent.verifyApplication.selector);
|
323
284
|
|
324
285
|
// register/create component setup
|
325
286
|
(
|
@@ -329,14 +290,13 @@ contract ComponentService is
|
|
329
290
|
) = _register(
|
330
291
|
contractAddress,
|
331
292
|
POOL(),
|
332
|
-
POOL_OWNER_ROLE()
|
333
|
-
roles,
|
334
|
-
selectors);
|
293
|
+
POOL_OWNER_ROLE());
|
335
294
|
|
336
295
|
// create info
|
337
296
|
instanceStore.createPool(
|
338
297
|
componentNftId,
|
339
|
-
IPoolComponent(
|
298
|
+
IPoolComponent(
|
299
|
+
contractAddress).getInitialPoolInfo());
|
340
300
|
}
|
341
301
|
|
342
302
|
|
@@ -466,9 +426,7 @@ contract ComponentService is
|
|
466
426
|
function _register(
|
467
427
|
address componentAddress, // address of component to register
|
468
428
|
ObjectType requiredType, // required type for component for registration
|
469
|
-
RoleId requiredRole
|
470
|
-
RoleId[] memory roles, // roles with write access to component
|
471
|
-
bytes4[][] memory selectors // authorized functions per role with write access
|
429
|
+
RoleId requiredRole // role required for comonent owner for registration
|
472
430
|
)
|
473
431
|
internal
|
474
432
|
virtual
|
@@ -495,21 +453,23 @@ contract ComponentService is
|
|
495
453
|
|
496
454
|
component.linkToRegisteredNftId();
|
497
455
|
|
456
|
+
// setup initial component authorization
|
457
|
+
_instanceService.initializeAuthorization(
|
458
|
+
instance.getNftId(),
|
459
|
+
component);
|
460
|
+
|
498
461
|
// save amended component info with instance
|
499
462
|
instanceReader = instance.getInstanceReader();
|
500
463
|
instanceStore = instance.getInstanceStore();
|
501
464
|
|
502
465
|
IComponents.ComponentInfo memory componentInfo = component.getComponentInfo();
|
503
466
|
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
component.getName(),
|
511
|
-
selectors,
|
512
|
-
roles);
|
467
|
+
|
468
|
+
instanceStore.createComponent(
|
469
|
+
component.getNftId(),
|
470
|
+
componentInfo);
|
471
|
+
|
472
|
+
// TODO add logging
|
513
473
|
}
|
514
474
|
|
515
475
|
|
@@ -610,9 +570,12 @@ contract ComponentService is
|
|
610
570
|
instance = _getInstance(info.parentNftId);
|
611
571
|
owner = info.initialOwner;
|
612
572
|
|
613
|
-
(
|
614
|
-
if(!hasRole) {
|
573
|
+
if(!instance.getInstanceAdmin().hasRole(owner, requiredRole)) {
|
615
574
|
revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
|
616
575
|
}
|
617
576
|
}
|
577
|
+
|
578
|
+
function _getDomain() internal pure virtual override returns(ObjectType) {
|
579
|
+
return COMPONENT();
|
580
|
+
}
|
618
581
|
}
|
@@ -87,7 +87,7 @@ abstract contract ComponentVerifyingService is
|
|
87
87
|
|
88
88
|
// ensure component is not locked
|
89
89
|
if (onlyActive) {
|
90
|
-
if (instance.
|
90
|
+
if (instance.getInstanceAdmin().isTargetLocked(info.objectAddress)) {
|
91
91
|
revert ErrorComponentVerifyingServiceComponentIsLocked(componentNftId);
|
92
92
|
}
|
93
93
|
}
|
@@ -5,6 +5,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
5
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
6
6
|
|
7
7
|
import {IComponent} from "../shared/IComponent.sol";
|
8
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
9
|
import {IComponents} from "../instance/module/IComponents.sol";
|
9
10
|
import {IInstance} from "../instance/IInstance.sol";
|
10
11
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
@@ -43,4 +44,7 @@ interface IInstanceLinkedComponent is
|
|
43
44
|
/// this is only relevant for pool and distribution components
|
44
45
|
function getProductNftId() external view returns (NftId productNftId);
|
45
46
|
|
47
|
+
/// @dev returns the initial component authorization specification.
|
48
|
+
function getAuthorization() external view returns (IAuthorization authorization);
|
49
|
+
|
46
50
|
}
|
@@ -13,6 +13,7 @@ interface IKeyValueStore is ILifecycle {
|
|
13
13
|
|
14
14
|
error ErrorKeyValueStoreTypeUndefined(ObjectType objectType);
|
15
15
|
error ErrorKeyValueStoreAlreadyCreated(Key32 key, ObjectType objectType);
|
16
|
+
error ErrorKeyValueStoreNoLifecycle(ObjectType objectType);
|
16
17
|
error ErrorKeyValueStoreStateZero(Key32 key);
|
17
18
|
error ErrorKeyValueStoreNotExisting(Key32 key);
|
18
19
|
|
@@ -1,13 +1,12 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {NftId} from "../type/NftId.sol";
|
5
4
|
import {ObjectType} from "../type/ObjectType.sol";
|
6
5
|
import {StateId} from "../type/StateId.sol";
|
7
6
|
|
8
7
|
interface ILifecycle {
|
9
8
|
|
10
|
-
error ErrorNoLifecycle(
|
9
|
+
error ErrorNoLifecycle(ObjectType objectType);
|
11
10
|
error ErrorInvalidStateTransition(
|
12
11
|
ObjectType objectType,
|
13
12
|
StateId fromStateId,
|
@@ -6,6 +6,7 @@ import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessMana
|
|
6
6
|
import {IRegisterable} from "./IRegisterable.sol";
|
7
7
|
import {IVersionable} from "./IVersionable.sol";
|
8
8
|
import {ObjectType} from "../type/ObjectType.sol";
|
9
|
+
import {RoleId} from "../type/RoleId.sol";
|
9
10
|
|
10
11
|
interface IService is
|
11
12
|
IRegisterable,
|
@@ -14,5 +15,11 @@ interface IService is
|
|
14
15
|
{
|
15
16
|
error ErrorServiceNotImplemented();
|
16
17
|
|
18
|
+
/// @dev returns the domain for this service.
|
19
|
+
/// In any GIF release only one service for any given domain may be deployed.
|
17
20
|
function getDomain() external pure returns(ObjectType serviceDomain);
|
21
|
+
|
22
|
+
/// @dev returns the GIF release specific role id.
|
23
|
+
/// These role ids are used to authorize service to service communication.
|
24
|
+
function getRoleId() external pure returns(RoleId serviceRoleId);
|
18
25
|
}
|
@@ -9,10 +9,10 @@ import {SafeERC20} from "@openzeppelin/contracts/token/ERC20/utils/SafeERC20.sol
|
|
9
9
|
import {Component} from "./Component.sol";
|
10
10
|
import {IComponentService} from "./IComponentService.sol";
|
11
11
|
import {IInstanceLinkedComponent} from "./IInstanceLinkedComponent.sol";
|
12
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
12
13
|
import {IComponents} from "../instance/module/IComponents.sol";
|
13
14
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
14
15
|
import {IInstance} from "../instance/IInstance.sol";
|
15
|
-
import {InstanceAdmin} from "../instance/InstanceAdmin.sol";
|
16
16
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
17
17
|
import {IRegistry} from "../registry/IRegistry.sol";
|
18
18
|
import {NftId} from "../type/NftId.sol";
|
@@ -35,6 +35,27 @@ abstract contract InstanceLinkedComponent is
|
|
35
35
|
struct InstanceLinkedComponentStorage {
|
36
36
|
IInstance _instance; // instance for this component
|
37
37
|
InstanceReader _instanceReader; // instance reader for this component
|
38
|
+
IAuthorization _initialAuthorization;
|
39
|
+
}
|
40
|
+
|
41
|
+
function lock() external onlyOwner {
|
42
|
+
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
|
43
|
+
}
|
44
|
+
|
45
|
+
function unlock() external onlyOwner {
|
46
|
+
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
47
|
+
}
|
48
|
+
|
49
|
+
function getInstance() public view override returns (IInstance instance) {
|
50
|
+
return _getInstanceLinkedComponentStorage()._instance;
|
51
|
+
}
|
52
|
+
|
53
|
+
function getProductNftId() public view override returns (NftId productNftId) {
|
54
|
+
return getComponentInfo().productNftId;
|
55
|
+
}
|
56
|
+
|
57
|
+
function getAuthorization() external view returns (IAuthorization authorization) {
|
58
|
+
return _getInstanceLinkedComponentStorage()._initialAuthorization;
|
38
59
|
}
|
39
60
|
|
40
61
|
function _getInstanceLinkedComponentStorage() private pure returns (InstanceLinkedComponentStorage storage $) {
|
@@ -43,18 +64,19 @@ abstract contract InstanceLinkedComponent is
|
|
43
64
|
}
|
44
65
|
}
|
45
66
|
|
46
|
-
function
|
67
|
+
function _initializeInstanceLinkedComponent(
|
47
68
|
address registry,
|
48
69
|
NftId instanceNftId,
|
49
70
|
string memory name,
|
50
71
|
address token,
|
51
72
|
ObjectType componentType,
|
73
|
+
IAuthorization authorization,
|
52
74
|
bool isInterceptor,
|
53
75
|
address initialOwner,
|
54
76
|
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
55
77
|
bytes memory componentData // data that will saved with the component info in the instance store
|
56
78
|
)
|
57
|
-
|
79
|
+
internal
|
58
80
|
virtual
|
59
81
|
onlyInitializing()
|
60
82
|
{
|
@@ -82,6 +104,7 @@ abstract contract InstanceLinkedComponent is
|
|
82
104
|
|
83
105
|
// set component state
|
84
106
|
$._instanceReader = $._instance.getInstanceReader();
|
107
|
+
$._initialAuthorization = authorization;
|
85
108
|
|
86
109
|
registerInterface(type(IAccessManaged).interfaceId);
|
87
110
|
registerInterface(type(IInstanceLinkedComponent).interfaceId);
|
@@ -93,22 +116,6 @@ abstract contract InstanceLinkedComponent is
|
|
93
116
|
IComponentService(_getServiceAddress(COMPONENT())).setWallet(newWallet);
|
94
117
|
}
|
95
118
|
|
96
|
-
function lock() external onlyOwner {
|
97
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(true);
|
98
|
-
}
|
99
|
-
|
100
|
-
function unlock() external onlyOwner {
|
101
|
-
IInstanceService(_getServiceAddress(INSTANCE())).setComponentLocked(false);
|
102
|
-
}
|
103
|
-
|
104
|
-
function getInstance() public view override returns (IInstance instance) {
|
105
|
-
return _getInstanceLinkedComponentStorage()._instance;
|
106
|
-
}
|
107
|
-
|
108
|
-
function getProductNftId() public view override returns (NftId productNftId) {
|
109
|
-
return getComponentInfo().productNftId;
|
110
|
-
}
|
111
|
-
|
112
119
|
|
113
120
|
function _getComponentInfo() internal virtual override view returns (IComponents.ComponentInfo memory info) {
|
114
121
|
NftId componentNftId = getRegistry().getNftId(address(this));
|
@@ -11,7 +11,7 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
|
11
11
|
import {Lifecycle} from "./Lifecycle.sol";
|
12
12
|
import {IKeyValueStore} from "./IKeyValueStore.sol";
|
13
13
|
|
14
|
-
contract KeyValueStore is
|
14
|
+
abstract contract KeyValueStore is
|
15
15
|
Lifecycle,
|
16
16
|
IKeyValueStore
|
17
17
|
{
|
@@ -34,8 +34,12 @@ contract KeyValueStore is
|
|
34
34
|
revert ErrorKeyValueStoreAlreadyCreated(key32, objectType);
|
35
35
|
}
|
36
36
|
|
37
|
+
if(!hasLifecycle(objectType)) {
|
38
|
+
revert ErrorKeyValueStoreNoLifecycle(objectType);
|
39
|
+
}
|
40
|
+
|
37
41
|
Blocknumber blocknumber = blockBlocknumber();
|
38
|
-
StateId initialState =
|
42
|
+
StateId initialState = getInitialState(objectType);
|
39
43
|
|
40
44
|
// set metadata
|
41
45
|
metadata.objectType = objectType;
|