@etherisc/gif-next 0.0.2-92c50c2-136 → 0.0.2-92cdbc9-533
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/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/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
- package/artifacts/contracts/authorization/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 +106 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +55 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +0 -13
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +27 -39
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +29 -90
- 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 +61 -121
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +35 -59
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +6 -6
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/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/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 +32 -32
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +34 -34
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +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 +44 -44
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +40 -40
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +36 -36
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +36 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +32 -32
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +34 -34
- 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 +72 -72
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +54 -54
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +50 -50
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +43 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +58 -58
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +47 -47
- 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 +20 -20
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +28 -28
- 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/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 +233 -388
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +6 -6
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +53 -71
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +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 +62 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/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/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- 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/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/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +32 -32
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +44 -44
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +6 -6
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +40 -40
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +131 -131
- 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 +55 -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 +117 -14
- 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 +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +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/{shared → authorization}/AccessAdmin.sol +135 -303
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -104
- package/contracts/distribution/DistributionService.sol +10 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/IInstance.sol +3 -4
- package/contracts/instance/IInstanceService.sol +7 -12
- package/contracts/instance/Instance.sol +58 -67
- package/contracts/instance/InstanceAdmin.sol +202 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +202 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +66 -62
- package/contracts/instance/InstanceStore.sol +5 -1
- package/contracts/instance/base/ObjectManager.sol +7 -8
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/Oracle.sol +61 -49
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +1 -1
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/Product.sol +103 -88
- package/contracts/registry/IRegistry.sol +5 -8
- package/contracts/registry/Registry.sol +1 -5
- package/contracts/registry/RegistryAdmin.sol +101 -71
- package/contracts/registry/ReleaseManager.sol +53 -69
- package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
- package/contracts/shared/ComponentService.sol +19 -58
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/type/ObjectType.sol +34 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +6 -0
- package/package.json +1 -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/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -190
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -18,7 +18,6 @@ import {StateId, INITIAL, SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED} from "..
|
|
18
18
|
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
19
19
|
|
20
20
|
import {IService} from "../shared/IService.sol";
|
21
|
-
import {AccessManagerExtendedWithDisableInitializeable} from "../shared/AccessManagerExtendedWithDisableInitializeable.sol";
|
22
21
|
import {ILifecycle} from "../shared/ILifecycle.sol";
|
23
22
|
import {INftOwnable} from "../shared/INftOwnable.sol";
|
24
23
|
import {IRegisterable} from "../shared/IRegisterable.sol";
|
@@ -26,14 +25,15 @@ import {IRegisterable} from "../shared/IRegisterable.sol";
|
|
26
25
|
import {IRegistry} from "./IRegistry.sol";
|
27
26
|
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
28
27
|
import {IRegistryService} from "./IRegistryService.sol";
|
29
|
-
import {IServiceAuthorization} from "
|
30
|
-
import {IAccessAdmin} from "../
|
28
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
29
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
31
30
|
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
32
31
|
import {Registry} from "./Registry.sol";
|
33
32
|
import {TokenRegistry} from "./TokenRegistry.sol";
|
34
33
|
import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
|
35
34
|
|
36
|
-
|
35
|
+
// TODO rename to something that does not end with 'Manager'
|
36
|
+
// everywhere else *Manager points to an upgradeable contract
|
37
37
|
contract ReleaseManager is
|
38
38
|
AccessManaged,
|
39
39
|
ReleaseLifecycle,
|
@@ -43,7 +43,7 @@ contract ReleaseManager is
|
|
43
43
|
|
44
44
|
uint256 public constant INITIAL_GIF_VERSION = 3;
|
45
45
|
|
46
|
-
event LogReleaseCreation(VersionPart version, bytes32 salt
|
46
|
+
event LogReleaseCreation(VersionPart version, bytes32 salt);
|
47
47
|
event LogReleaseActivation(VersionPart version);
|
48
48
|
event LogReleaseDisabled(VersionPart version);
|
49
49
|
event LogReleaseEnabled(VersionPart version);
|
@@ -91,17 +91,17 @@ contract ReleaseManager is
|
|
91
91
|
|
92
92
|
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
93
93
|
|
94
|
-
RegistryAdmin
|
95
|
-
|
96
|
-
|
94
|
+
RegistryAdmin public immutable _admin;
|
95
|
+
Registry public immutable _registry;
|
96
|
+
IRegisterable private _staking;
|
97
|
+
address private _stakingOwner;
|
97
98
|
|
98
|
-
// TODO remove once it's clear that release authority will always be registry authority
|
99
|
-
mapping(VersionPart version => address authority) internal _releaseAccessManager;
|
100
99
|
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
101
|
-
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
102
|
-
|
103
100
|
mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
|
104
101
|
|
102
|
+
// TODO check where/why this is used
|
103
|
+
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
104
|
+
|
105
105
|
VersionPart private _initial;// first active version
|
106
106
|
VersionPart internal _latest; // latest active version
|
107
107
|
VersionPart internal _next; // version to create and activate
|
@@ -125,11 +125,6 @@ contract ReleaseManager is
|
|
125
125
|
|
126
126
|
_initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
|
127
127
|
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
128
|
-
|
129
|
-
//AccessManagerExtendedWithDisableInitializeable masterReleaseAccessManager = new AccessManagerExtendedWithDisableInitializeable();
|
130
|
-
//masterReleaseAccessManager.initialize(address(this));
|
131
|
-
//masterReleaseAccessManager.disable();
|
132
|
-
//_releaseAccessManagerCodeAddress = address(masterReleaseAccessManager);
|
133
128
|
}
|
134
129
|
|
135
130
|
/// @dev skips previous release if was not activated
|
@@ -159,50 +154,46 @@ contract ReleaseManager is
|
|
159
154
|
bytes32 releaseSalt
|
160
155
|
)
|
161
156
|
{
|
162
|
-
(
|
163
|
-
|
164
|
-
uint serviceDomainsCount
|
165
|
-
) = serviceAuthorization.getRelease();
|
157
|
+
authority = _admin.authority();
|
158
|
+
version = _next;
|
166
159
|
|
167
|
-
//
|
168
|
-
|
169
|
-
|
160
|
+
// ensures unique salt
|
161
|
+
// TODO CreateX have clones capability also
|
162
|
+
// what would releaseSalt look like if used with CreateX in pemissioned mode?
|
163
|
+
releaseSalt = keccak256(
|
164
|
+
bytes.concat(
|
165
|
+
bytes32(version.toInt()),
|
166
|
+
salt));
|
167
|
+
|
168
|
+
// verify release in state SCHEDULED
|
169
|
+
if (!isValidTransition(RELEASE(), _state[version], DEPLOYING())) {
|
170
|
+
revert ErrorReleaseManagerReleasePreparationDisallowed(version, _state[version]);
|
170
171
|
}
|
171
172
|
|
172
|
-
|
173
|
-
|
174
|
-
|
173
|
+
_state[version] = DEPLOYING();
|
174
|
+
|
175
|
+
// verify authorizaion contract release matches with expected version
|
176
|
+
VersionPart releaseVersion = serviceAuthorization.getRelease();
|
177
|
+
if (releaseVersion != version) {
|
178
|
+
revert ErrorReleaseManagerVersionMismatch(version, releaseVersion);
|
175
179
|
}
|
176
180
|
|
177
|
-
version = _next;
|
178
|
-
StateId state = _state[version];
|
179
|
-
StateId newState = DEPLOYING();
|
180
181
|
|
181
|
-
//
|
182
|
-
|
183
|
-
|
182
|
+
// sanity check to ensure service domain list is not empty
|
183
|
+
uint256 serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
|
184
|
+
if (serviceDomainsCount == 0) {
|
185
|
+
revert ErrorReleaseManagerNoDomains(version);
|
184
186
|
}
|
185
187
|
|
186
188
|
// verify prepareNextRelease is only called once per release
|
187
189
|
if(_servicesToRegister > 0) {
|
188
|
-
revert ErrorReleaseManagerReleaseAlreadyPrepared(version,
|
190
|
+
revert ErrorReleaseManagerReleaseAlreadyPrepared(version, _state[version]);
|
189
191
|
}
|
190
192
|
|
191
|
-
// ensures unique salt
|
192
|
-
// TODO CreateX have clones capability also
|
193
|
-
// what would releaseSalt look like if used with CreateX in pemissioned mode?
|
194
|
-
releaseSalt = keccak256(
|
195
|
-
bytes.concat(
|
196
|
-
bytes32(version.toInt()),
|
197
|
-
salt));
|
198
|
-
|
199
|
-
authority = _admin.authority();
|
200
|
-
_serviceAuthorization[_next] = serviceAuthorization;
|
201
|
-
_releaseAccessManager[_next] = authority;
|
202
193
|
_servicesToRegister = serviceDomainsCount;
|
203
|
-
|
194
|
+
_serviceAuthorization[version] = serviceAuthorization;
|
204
195
|
|
205
|
-
emit LogReleaseCreation(version, releaseSalt
|
196
|
+
emit LogReleaseCreation(version, releaseSalt);
|
206
197
|
}
|
207
198
|
|
208
199
|
// TODO this function can have 0 args -> use stored addresses from prepareNextRelease()
|
@@ -213,14 +204,15 @@ contract ReleaseManager is
|
|
213
204
|
{
|
214
205
|
VersionPart releaseVersion = _next;
|
215
206
|
StateId state = _state[releaseVersion];
|
216
|
-
StateId newState = DEPLOYING();
|
217
207
|
|
218
208
|
// verify release in state DEPLOYING
|
219
|
-
if (!isValidTransition(RELEASE(), state,
|
209
|
+
if (!isValidTransition(RELEASE(), state, DEPLOYING())) {
|
220
210
|
// TOOD name must represent failed state transition
|
221
211
|
revert ErrorReleaseManagerServiceRegistrationDisallowed(state);
|
222
212
|
}
|
223
213
|
|
214
|
+
_state[releaseVersion] = DEPLOYING();
|
215
|
+
|
224
216
|
// not all services are registered
|
225
217
|
if (_servicesToRegister == _registeredServices) {
|
226
218
|
revert ErrorReleaseManagerNoServiceRegistrationExpected();
|
@@ -239,17 +231,9 @@ contract ReleaseManager is
|
|
239
231
|
revert ErrorReleaseManagerServiceDomainMismatch(expectedDomain, serviceDomain);
|
240
232
|
}
|
241
233
|
|
242
|
-
//
|
243
|
-
|
244
|
-
|
245
|
-
if(address(service) != expectedAddress) {
|
246
|
-
//revert ErrorReleaseManagerServiceAddressMismatch(expectedAddress, address(service));
|
247
|
-
}*/
|
248
|
-
|
249
|
-
// checked in registry
|
250
|
-
_releaseInfo[releaseVersion].domains.push(serviceDomain);
|
251
|
-
|
252
|
-
_state[releaseVersion] = newState;
|
234
|
+
// register service with registry
|
235
|
+
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
236
|
+
service.linkToRegisteredNftId();
|
253
237
|
_registeredServices++;
|
254
238
|
|
255
239
|
// setup service authorization
|
@@ -263,10 +247,6 @@ contract ReleaseManager is
|
|
263
247
|
// TODO rename to grantServiceDomainRole()
|
264
248
|
_admin.grantServiceRoleForAllVersions(service, serviceDomain);
|
265
249
|
}
|
266
|
-
|
267
|
-
// register service with registry
|
268
|
-
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
269
|
-
service.linkToRegisteredNftId();
|
270
250
|
}
|
271
251
|
|
272
252
|
|
@@ -391,8 +371,12 @@ contract ReleaseManager is
|
|
391
371
|
return _servicesToRegister - _registeredServices;
|
392
372
|
}
|
393
373
|
|
394
|
-
function
|
395
|
-
|
374
|
+
function getServiceAuthorization(VersionPart version)
|
375
|
+
external
|
376
|
+
view
|
377
|
+
returns (IServiceAuthorization serviceAuthorization)
|
378
|
+
{
|
379
|
+
return _serviceAuthorization[version];
|
396
380
|
}
|
397
381
|
|
398
382
|
function getRegistryAdmin() external view returns (address) {
|
@@ -429,14 +413,14 @@ contract ReleaseManager is
|
|
429
413
|
_verifyServiceInfo(service, serviceInfo, owner);
|
430
414
|
|
431
415
|
VersionPart releaseVersion = _next; // never 0
|
432
|
-
address
|
416
|
+
address expectedAuthority = _admin.authority(); // can be zero if registering service when release is not created
|
433
417
|
|
434
418
|
// IMPORTANT: can not guarantee service access is actually controlled by authority
|
435
|
-
if(serviceAuthority !=
|
419
|
+
if(serviceAuthority != expectedAuthority) {
|
436
420
|
revert ErrorReleaseManagerServiceReleaseAuthorityMismatch(
|
437
421
|
service,
|
438
422
|
serviceAuthority,
|
439
|
-
|
423
|
+
expectedAuthority);
|
440
424
|
}
|
441
425
|
|
442
426
|
if(serviceVersion != releaseVersion) {
|
@@ -6,7 +6,7 @@ import {
|
|
6
6
|
} from "../../contracts/type/ObjectType.sol";
|
7
7
|
|
8
8
|
import {ComponentService} from "../shared/ComponentService.sol";
|
9
|
-
import {
|
9
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
10
10
|
import {IBundleService} from "../pool/IBundleService.sol";
|
11
11
|
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
12
12
|
import {InstanceService} from "../instance/InstanceService.sol";
|
@@ -14,7 +14,7 @@ import {IInstanceService} from "../instance/IInstanceService.sol";
|
|
14
14
|
import {IPoolService} from "../pool/IPoolService.sol";
|
15
15
|
import {IStakingService} from "../staking/IStakingService.sol";
|
16
16
|
import {IRegistryService} from "./IRegistryService.sol";
|
17
|
-
import {ServiceAuthorization} from "
|
17
|
+
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
18
18
|
|
19
19
|
|
20
20
|
contract ServiceAuthorizationV3
|
@@ -64,7 +64,7 @@ contract ServiceAuthorizationV3
|
|
64
64
|
function _setupIRegistryServiceAuthorization()
|
65
65
|
internal
|
66
66
|
{
|
67
|
-
|
67
|
+
IAccess.FunctionInfo[] storage functions;
|
68
68
|
|
69
69
|
functions = _authorizeForService(REGISTRY(), APPLICATION());
|
70
70
|
_authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
|
@@ -98,7 +98,7 @@ contract ServiceAuthorizationV3
|
|
98
98
|
function _setupStakingServiceAuthorization()
|
99
99
|
internal
|
100
100
|
{
|
101
|
-
|
101
|
+
IAccess.FunctionInfo[] storage functions;
|
102
102
|
|
103
103
|
functions = _authorizeForService(STAKING(), INSTANCE());
|
104
104
|
_authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
|
@@ -121,10 +121,10 @@ contract ServiceAuthorizationV3
|
|
121
121
|
function _setupInstanceServiceAuthorization()
|
122
122
|
internal
|
123
123
|
{
|
124
|
-
|
124
|
+
IAccess.FunctionInfo[] storage functions;
|
125
125
|
|
126
126
|
functions = _authorizeForService(INSTANCE(), COMPONENT());
|
127
|
-
_authorize(functions, IInstanceService.
|
127
|
+
_authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
|
128
128
|
}
|
129
129
|
|
130
130
|
|
@@ -159,7 +159,7 @@ contract ServiceAuthorizationV3
|
|
159
159
|
function _setupDistributionServiceAuthorization()
|
160
160
|
internal
|
161
161
|
{
|
162
|
-
|
162
|
+
IAccess.FunctionInfo[] storage functions;
|
163
163
|
|
164
164
|
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
165
165
|
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
@@ -170,7 +170,7 @@ contract ServiceAuthorizationV3
|
|
170
170
|
function _setupPoolServiceAuthorization()
|
171
171
|
internal
|
172
172
|
{
|
173
|
-
|
173
|
+
IAccess.FunctionInfo[] storage functions;
|
174
174
|
|
175
175
|
functions = _authorizeForService(POOL(), POLICY());
|
176
176
|
_authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
|
@@ -187,7 +187,7 @@ contract ServiceAuthorizationV3
|
|
187
187
|
function _setupBundleServiceAuthorization()
|
188
188
|
internal
|
189
189
|
{
|
190
|
-
|
190
|
+
IAccess.FunctionInfo[] storage functions;
|
191
191
|
|
192
192
|
functions = _authorizeForService(BUNDLE(), POOL());
|
193
193
|
_authorize(functions, IBundleService.create.selector, "create");
|
@@ -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";
|
@@ -102,12 +102,6 @@ contract ComponentService is
|
|
102
102
|
virtual
|
103
103
|
{
|
104
104
|
address contractAddress = msg.sender;
|
105
|
-
RoleId[] memory roles = new RoleId[](1);
|
106
|
-
bytes4[][] memory selectors = new bytes4[][](1);
|
107
|
-
|
108
|
-
// authorizaion for distribution owner
|
109
|
-
roles[0] = PRODUCT_OWNER_ROLE();
|
110
|
-
selectors[0] = _createSelectors(IProductComponent.setFees.selector);
|
111
105
|
|
112
106
|
// register/create component setup
|
113
107
|
(
|
@@ -117,9 +111,7 @@ contract ComponentService is
|
|
117
111
|
) = _register(
|
118
112
|
contractAddress,
|
119
113
|
PRODUCT(),
|
120
|
-
PRODUCT_OWNER_ROLE()
|
121
|
-
roles,
|
122
|
-
selectors);
|
114
|
+
PRODUCT_OWNER_ROLE());
|
123
115
|
|
124
116
|
// create product info
|
125
117
|
IComponents.ProductInfo memory productInfo = IProductComponent(contractAddress).getInitialProductInfo();
|
@@ -193,24 +185,12 @@ contract ComponentService is
|
|
193
185
|
virtual
|
194
186
|
{
|
195
187
|
address contractAddress = msg.sender;
|
196
|
-
RoleId[] memory roles = new RoleId[](2);
|
197
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
198
|
-
|
199
|
-
// authorizaion for distribution owner
|
200
|
-
roles[0] = DISTRIBUTION_OWNER_ROLE();
|
201
|
-
selectors[0] = _createSelectors(IDistributionComponent.setFees.selector);
|
202
|
-
|
203
|
-
// authorizaion for product service
|
204
|
-
roles[1] = PRODUCT_SERVICE_ROLE();
|
205
|
-
selectors[1] = _createSelectors(IDistributionComponent.processRenewal.selector);
|
206
188
|
|
207
189
|
// register/create component info
|
208
190
|
_register(
|
209
191
|
contractAddress,
|
210
192
|
DISTRIBUTION(),
|
211
|
-
DISTRIBUTION_OWNER_ROLE()
|
212
|
-
roles,
|
213
|
-
selectors);
|
193
|
+
DISTRIBUTION_OWNER_ROLE());
|
214
194
|
}
|
215
195
|
|
216
196
|
|
@@ -282,8 +262,6 @@ contract ComponentService is
|
|
282
262
|
virtual
|
283
263
|
{
|
284
264
|
address contractAddress = msg.sender;
|
285
|
-
RoleId[] memory roles = new RoleId[](0);
|
286
|
-
bytes4[][] memory selectors = new bytes4[][](0);
|
287
265
|
|
288
266
|
// register/create component setup
|
289
267
|
(
|
@@ -293,9 +271,7 @@ contract ComponentService is
|
|
293
271
|
) = _register(
|
294
272
|
contractAddress,
|
295
273
|
ORACLE(),
|
296
|
-
ORACLE_OWNER_ROLE()
|
297
|
-
roles,
|
298
|
-
selectors);
|
274
|
+
ORACLE_OWNER_ROLE());
|
299
275
|
}
|
300
276
|
|
301
277
|
//-------- pool ---------------------------------------------------------//
|
@@ -305,16 +281,6 @@ contract ComponentService is
|
|
305
281
|
virtual
|
306
282
|
{
|
307
283
|
address contractAddress = msg.sender;
|
308
|
-
RoleId[] memory roles = new RoleId[](2);
|
309
|
-
bytes4[][] memory selectors = new bytes4[][](2);
|
310
|
-
|
311
|
-
// authorizaion for pool owner
|
312
|
-
roles[0] = POOL_OWNER_ROLE();
|
313
|
-
selectors[0] = _createSelectors(IPoolComponent.setFees.selector);
|
314
|
-
|
315
|
-
// authorizaion for product service
|
316
|
-
roles[1] = POLICY_SERVICE_ROLE();
|
317
|
-
selectors[1] = _createSelectors(IPoolComponent.verifyApplication.selector);
|
318
284
|
|
319
285
|
// register/create component setup
|
320
286
|
(
|
@@ -324,14 +290,13 @@ contract ComponentService is
|
|
324
290
|
) = _register(
|
325
291
|
contractAddress,
|
326
292
|
POOL(),
|
327
|
-
POOL_OWNER_ROLE()
|
328
|
-
roles,
|
329
|
-
selectors);
|
293
|
+
POOL_OWNER_ROLE());
|
330
294
|
|
331
295
|
// create info
|
332
296
|
instanceStore.createPool(
|
333
297
|
componentNftId,
|
334
|
-
IPoolComponent(
|
298
|
+
IPoolComponent(
|
299
|
+
contractAddress).getInitialPoolInfo());
|
335
300
|
}
|
336
301
|
|
337
302
|
|
@@ -461,9 +426,7 @@ contract ComponentService is
|
|
461
426
|
function _register(
|
462
427
|
address componentAddress, // address of component to register
|
463
428
|
ObjectType requiredType, // required type for component for registration
|
464
|
-
RoleId requiredRole
|
465
|
-
RoleId[] memory roles, // roles with write access to component
|
466
|
-
bytes4[][] memory selectors // authorized functions per role with write access
|
429
|
+
RoleId requiredRole // role required for comonent owner for registration
|
467
430
|
)
|
468
431
|
internal
|
469
432
|
virtual
|
@@ -490,8 +453,10 @@ contract ComponentService is
|
|
490
453
|
|
491
454
|
component.linkToRegisteredNftId();
|
492
455
|
|
493
|
-
|
494
|
-
|
456
|
+
// setup initial component authorization
|
457
|
+
_instanceService.initializeAuthorization(
|
458
|
+
instance.getNftId(),
|
459
|
+
component);
|
495
460
|
|
496
461
|
// save amended component info with instance
|
497
462
|
instanceReader = instance.getInstanceReader();
|
@@ -499,15 +464,12 @@ contract ComponentService is
|
|
499
464
|
|
500
465
|
IComponents.ComponentInfo memory componentInfo = component.getComponentInfo();
|
501
466
|
componentInfo.tokenHandler = new TokenHandler(address(componentInfo.token));
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
component.getName(),
|
509
|
-
selectors,
|
510
|
-
roles);
|
467
|
+
|
468
|
+
instanceStore.createComponent(
|
469
|
+
component.getNftId(),
|
470
|
+
componentInfo);
|
471
|
+
|
472
|
+
// TODO add logging
|
511
473
|
}
|
512
474
|
|
513
475
|
|
@@ -608,8 +570,7 @@ contract ComponentService is
|
|
608
570
|
instance = _getInstance(info.parentNftId);
|
609
571
|
owner = info.initialOwner;
|
610
572
|
|
611
|
-
(
|
612
|
-
if(!hasRole) {
|
573
|
+
if(!instance.getInstanceAdmin().hasRole(owner, requiredRole)) {
|
613
574
|
revert ErrorComponentServiceExpectedRoleMissing(info.parentNftId, requiredRole, owner);
|
614
575
|
}
|
615
576
|
}
|
@@ -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
|
}
|
@@ -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));
|
@@ -137,6 +137,8 @@ function neObjectType(ObjectType a, ObjectType b) pure returns (bool isSame) {
|
|
137
137
|
// library functions that operate on user defined type
|
138
138
|
library ObjectTypeLib {
|
139
139
|
|
140
|
+
error ErrorVersionTooBig(uint256 version);
|
141
|
+
|
140
142
|
function zero() public pure returns (ObjectType) {
|
141
143
|
return ObjectType.wrap(0);
|
142
144
|
}
|
@@ -209,6 +211,38 @@ library ObjectTypeLib {
|
|
209
211
|
toInt(objectType))));
|
210
212
|
}
|
211
213
|
|
214
|
+
function toVersionedName(
|
215
|
+
string memory name,
|
216
|
+
string memory suffix,
|
217
|
+
uint256 version
|
218
|
+
)
|
219
|
+
external
|
220
|
+
pure
|
221
|
+
returns (string memory versionedName)
|
222
|
+
{
|
223
|
+
if (version > maxNumReleases()) {
|
224
|
+
revert ErrorVersionTooBig(version);
|
225
|
+
}
|
226
|
+
|
227
|
+
string memory versionName = "_v0";
|
228
|
+
|
229
|
+
if (version >= 10) {
|
230
|
+
versionName = "_v";
|
231
|
+
}
|
232
|
+
|
233
|
+
versionedName = string(
|
234
|
+
abi.encodePacked(
|
235
|
+
name,
|
236
|
+
suffix,
|
237
|
+
versionName,
|
238
|
+
toString(version)));
|
239
|
+
}
|
240
|
+
|
241
|
+
/// @dev returns the max number of releases (major versions) this gif setup can handle.
|
242
|
+
function maxNumReleases() public pure returns (uint8) {
|
243
|
+
return 99;
|
244
|
+
}
|
245
|
+
|
212
246
|
/// @dev returns the provied int as a string
|
213
247
|
function toString(uint256 value) public pure returns (string memory name) {
|
214
248
|
|