@etherisc/gif-next 0.0.2-7d65090-351 → 0.0.2-7dc3cd3-858
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +18 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1248 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared → authorization}/IAccessAdmin.sol/IAccessAdmin.json +95 -252
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/{registry → authorization}/IServiceAuthorization.sol/IServiceAuthorization.json +10 -10
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/InstanceAdmin.sol/InstanceAdmin.json +1385 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1505 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +17 -242
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +90 -74
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +30 -30
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +71 -146
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +32 -16
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +33 -39
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +1 -14
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +22 -39
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +30 -91
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdminNew.sol/InstanceAdminNew.json +1616 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +110 -76
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +56 -121
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +18 -42
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +73 -79
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +3 -9
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1155 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +13 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -96
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +4 -4
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +3 -3
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1477 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +2 -2
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +2 -2
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +7 -202
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +7 -303
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +2 -2
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +2 -2
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +4 -4
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +3 -3
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1299 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +2 -2
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -42
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +10 -10
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +6 -6
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +40 -40
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +21 -21
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -153
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +1 -1
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +2 -2
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +2 -2
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +0 -44
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +18 -62
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +228 -388
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +2 -2
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +48 -126
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +24 -16
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +56 -80
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +29 -41
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +13 -53
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +2 -2
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +2 -2
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +2 -2
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +2 -2
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +2 -2
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +2 -2
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +2 -2
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +2 -2
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +55 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +117 -14
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +21 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +131 -297
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/{shared → authorization}/IAccessAdmin.sol +22 -54
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/{registry → authorization}/IServiceAuthorization.sol +5 -5
- package/contracts/authorization/InstanceAdmin.sol +108 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +17 -17
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +43 -0
- package/contracts/distribution/Distribution.sol +126 -104
- package/contracts/distribution/DistributionService.sol +10 -5
- package/contracts/distribution/IDistributionComponent.sol +17 -35
- package/contracts/distribution/IDistributionService.sol +5 -1
- package/contracts/instance/IInstance.sol +5 -6
- package/contracts/instance/IInstanceService.sol +6 -12
- package/contracts/instance/Instance.sol +61 -70
- package/contracts/instance/InstanceAdminNew.sol +261 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +209 -0
- package/contracts/instance/InstanceReader.sol +22 -9
- package/contracts/instance/InstanceService.sol +58 -67
- package/contracts/instance/InstanceStore.sol +5 -1
- package/contracts/instance/base/ObjectManager.sol +7 -8
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/Oracle.sol +61 -49
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +49 -0
- package/contracts/pool/IPoolComponent.sol +0 -60
- package/contracts/pool/Pool.sol +143 -131
- package/contracts/pool/PoolService.sol +1 -1
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +40 -0
- package/contracts/product/IProductComponent.sol +6 -9
- package/contracts/product/Product.sol +103 -88
- package/contracts/registry/IRegistry.sol +5 -8
- package/contracts/registry/Registry.sol +1 -5
- package/contracts/registry/RegistryAdmin.sol +101 -71
- package/contracts/registry/ReleaseManager.sol +32 -41
- package/contracts/registry/ServiceAuthorizationV3.sol +9 -9
- package/contracts/shared/ComponentService.sol +18 -56
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IInstanceLinkedComponent.sol +4 -0
- package/contracts/shared/InstanceLinkedComponent.sol +26 -19
- package/contracts/type/ObjectType.sol +34 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/UFixed.sol +6 -0
- package/package.json +4 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +0 -708
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +0 -171
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +0 -1559
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1747
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1760
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1838
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1856
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +0 -1562
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/contracts/instance/InstanceAdmin.sol +0 -331
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
@@ -0,0 +1,261 @@
|
|
1
|
+
// SPDX-License-Identifier: UNLICENSED
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
|
+
|
6
|
+
import {AccessAdmin} from "../authorization/AccessAdmin.sol";
|
7
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
8
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
9
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
10
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
11
|
+
import {IInstance} from "./IInstance.sol";
|
12
|
+
import {IService} from "../shared/IService.sol";
|
13
|
+
import {ObjectType, ObjectTypeLib, ALL, POOL, RELEASE} from "../type/ObjectType.sol";
|
14
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
15
|
+
import {Str, StrLib} from "../type/String.sol";
|
16
|
+
import {VersionPart} from "../type/Version.sol";
|
17
|
+
|
18
|
+
|
19
|
+
contract InstanceAdminNew is
|
20
|
+
AccessAdmin
|
21
|
+
{
|
22
|
+
string public constant INSTANCE_TARGET_NAME = "Instance";
|
23
|
+
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
24
|
+
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
25
|
+
string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
|
26
|
+
|
27
|
+
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
28
|
+
|
29
|
+
error ErrorInstanceAdminNotRegistered(address target);
|
30
|
+
error ErrorInstanceAdminAlreadyAuthorized(address target);
|
31
|
+
error ErrorInstanceAdminReleaseMismatch();
|
32
|
+
error ErrorInstanceAdminExpectedTargetMissing(string targetName);
|
33
|
+
|
34
|
+
IInstance _instance;
|
35
|
+
IRegistry internal _registry;
|
36
|
+
uint64 _idNext;
|
37
|
+
|
38
|
+
IModuleAuthorization _instanceAuthorization;
|
39
|
+
|
40
|
+
/// @dev Only used for master instance admin.
|
41
|
+
/// Contracts created via constructor come with disabled initializers.
|
42
|
+
constructor(IModuleAuthorization instanceAuthorization) AccessAdmin() {
|
43
|
+
_instanceAuthorization = instanceAuthorization;
|
44
|
+
}
|
45
|
+
|
46
|
+
/// @dev Initializes this instance admin with the provided instances authorization specification.
|
47
|
+
/// Internally the function creates an instance specific OpenZeppelin AccessManager that is used as the authority
|
48
|
+
/// for the inststance authorizatios.
|
49
|
+
/// Important: Initialization of this instance admin is only complete after calling function initializeInstance.
|
50
|
+
function initialize(
|
51
|
+
IModuleAuthorization instanceAuthorization
|
52
|
+
)
|
53
|
+
external
|
54
|
+
initializer()
|
55
|
+
{
|
56
|
+
// create new access manager for this instance admin
|
57
|
+
AccessManager accessManager = new AccessManager(address(this));
|
58
|
+
_initializeAuthority(address(accessManager));
|
59
|
+
|
60
|
+
// create basic instance independent setup
|
61
|
+
_createAdminAndPublicRoles();
|
62
|
+
|
63
|
+
// store instance authorization specification
|
64
|
+
_instanceAuthorization = IModuleAuthorization(instanceAuthorization);
|
65
|
+
}
|
66
|
+
|
67
|
+
function _checkTargetIsReadyForAuthorization(address target)
|
68
|
+
internal
|
69
|
+
view
|
70
|
+
{
|
71
|
+
if (address(_registry) != address(0) && !_registry.isRegistered(target)) {
|
72
|
+
revert ErrorInstanceAdminNotRegistered(target);
|
73
|
+
}
|
74
|
+
|
75
|
+
if (targetExists(target)) {
|
76
|
+
revert ErrorInstanceAdminAlreadyAuthorized(target);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
|
80
|
+
/// @dev Completes the initialization of this instance admin using the provided instance.
|
81
|
+
/// Important: The instance MUST be registered and all instance supporting contracts must be wired to this instance.
|
82
|
+
function initializeInstanceAuthorization(address instanceAddress)
|
83
|
+
external
|
84
|
+
{
|
85
|
+
_checkTargetIsReadyForAuthorization(instanceAddress);
|
86
|
+
|
87
|
+
_idNext = CUSTOM_ROLE_ID_MIN;
|
88
|
+
_instance = IInstance(instanceAddress);
|
89
|
+
_registry = _instance.getRegistry();
|
90
|
+
|
91
|
+
// check matching releases
|
92
|
+
if (_instanceAuthorization.getRelease() != _instance.getMajorVersion()) {
|
93
|
+
revert ErrorInstanceAdminReleaseMismatch();
|
94
|
+
}
|
95
|
+
|
96
|
+
// add instance authorization
|
97
|
+
_createRoles(_instanceAuthorization);
|
98
|
+
_createModuleTargetsWithRoles();
|
99
|
+
_createTargetAuthorizations(_instanceAuthorization);
|
100
|
+
|
101
|
+
// grant component owner roles to instance owner
|
102
|
+
_grantComponentOwnerRoles();
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
/// @dev Initializes the authorization for the specified component.
|
107
|
+
/// Important: The component MUST be registered.
|
108
|
+
function initializeComponentAuthorization(
|
109
|
+
address componentAddress,
|
110
|
+
IAuthorization authorization
|
111
|
+
)
|
112
|
+
external
|
113
|
+
{
|
114
|
+
_checkTargetIsReadyForAuthorization(componentAddress);
|
115
|
+
|
116
|
+
_createRoles(authorization);
|
117
|
+
|
118
|
+
// create component target
|
119
|
+
_createTarget(
|
120
|
+
componentAddress,
|
121
|
+
authorization.getTargetName(),
|
122
|
+
true, // checkAuthority
|
123
|
+
false); // custom
|
124
|
+
|
125
|
+
_grantRoleToAccount(
|
126
|
+
authorization.getTargetRole(
|
127
|
+
authorization.getTarget()),
|
128
|
+
componentAddress);
|
129
|
+
|
130
|
+
_createTargetAuthorizations(authorization);
|
131
|
+
}
|
132
|
+
|
133
|
+
|
134
|
+
function _grantComponentOwnerRoles()
|
135
|
+
internal
|
136
|
+
{
|
137
|
+
address instanceOwner = _registry.ownerOf(_instance.getNftId());
|
138
|
+
_grantRoleToAccount(DISTRIBUTION_OWNER_ROLE(), instanceOwner);
|
139
|
+
_grantRoleToAccount(ORACLE_OWNER_ROLE(), instanceOwner);
|
140
|
+
_grantRoleToAccount(POOL_OWNER_ROLE(), instanceOwner);
|
141
|
+
_grantRoleToAccount(PRODUCT_OWNER_ROLE(), instanceOwner);
|
142
|
+
}
|
143
|
+
|
144
|
+
/// @dev Creates a custom role
|
145
|
+
// TODO implement
|
146
|
+
// function createRole()
|
147
|
+
// external
|
148
|
+
// restricted()
|
149
|
+
// {
|
150
|
+
|
151
|
+
// }
|
152
|
+
|
153
|
+
/// @dev Grants the provided role to the specified account
|
154
|
+
function grantRole(
|
155
|
+
RoleId roleId,
|
156
|
+
address account)
|
157
|
+
external
|
158
|
+
restricted()
|
159
|
+
{
|
160
|
+
_grantRoleToAccount(roleId, account);
|
161
|
+
}
|
162
|
+
|
163
|
+
/// @dev Returns the instance authorization specification used to set up this instance admin.
|
164
|
+
function getInstanceAuthorization()
|
165
|
+
external
|
166
|
+
view
|
167
|
+
returns (IModuleAuthorization instanceAuthorizaion)
|
168
|
+
{
|
169
|
+
return _instanceAuthorization;
|
170
|
+
}
|
171
|
+
|
172
|
+
|
173
|
+
function _createRoles(IAuthorization authorization)
|
174
|
+
internal
|
175
|
+
{
|
176
|
+
RoleId[] memory roles = authorization.getRoles();
|
177
|
+
RoleId roleId;
|
178
|
+
RoleInfo memory roleInfo;
|
179
|
+
|
180
|
+
for(uint256 i = 0; i < roles.length; i++) {
|
181
|
+
roleId = roles[i];
|
182
|
+
_createRole(
|
183
|
+
roleId,
|
184
|
+
authorization.getRoleInfo(roleId));
|
185
|
+
}
|
186
|
+
}
|
187
|
+
|
188
|
+
|
189
|
+
function _createTargetAuthorizations(IAuthorization authorization)
|
190
|
+
internal
|
191
|
+
{
|
192
|
+
Str[] memory targets = authorization.getTargets();
|
193
|
+
Str target;
|
194
|
+
|
195
|
+
for(uint256 i = 0; i < targets.length; i++) {
|
196
|
+
target = targets[i];
|
197
|
+
RoleId[] memory authorizedRoles = authorization.getAuthorizedRoles(target);
|
198
|
+
RoleId authorizedRole;
|
199
|
+
|
200
|
+
for(uint256 j = 0; j < authorizedRoles.length; j++) {
|
201
|
+
authorizedRole = authorizedRoles[j];
|
202
|
+
|
203
|
+
_authorizeTargetFunctions(
|
204
|
+
getTargetForName(target),
|
205
|
+
authorizedRole,
|
206
|
+
authorization.getAuthorizedFunctions(
|
207
|
+
target,
|
208
|
+
authorizedRole));
|
209
|
+
}
|
210
|
+
}
|
211
|
+
}
|
212
|
+
|
213
|
+
function _checkAndCreateTargetWithRole(
|
214
|
+
address target,
|
215
|
+
string memory targetName
|
216
|
+
)
|
217
|
+
internal
|
218
|
+
{
|
219
|
+
// check that target name is defined in authorization specification
|
220
|
+
Str name = StrLib.toStr(targetName);
|
221
|
+
if (!_instanceAuthorization.targetExists(name)) {
|
222
|
+
revert ErrorInstanceAdminExpectedTargetMissing(targetName);
|
223
|
+
}
|
224
|
+
|
225
|
+
// create named target
|
226
|
+
_createTarget(
|
227
|
+
target,
|
228
|
+
targetName,
|
229
|
+
false, // check authority TODO check normal targets, don't check service targets (they share authority with registry admin)
|
230
|
+
false);
|
231
|
+
|
232
|
+
// assign target role if defined
|
233
|
+
RoleId targetRoleId = _instanceAuthorization.getTargetRole(name);
|
234
|
+
if (targetRoleId != RoleIdLib.zero()) {
|
235
|
+
_grantRoleToAccount(targetRoleId, target);
|
236
|
+
}
|
237
|
+
}
|
238
|
+
|
239
|
+
function _createModuleTargetsWithRoles()
|
240
|
+
internal
|
241
|
+
{
|
242
|
+
// create module targets
|
243
|
+
_checkAndCreateTargetWithRole(address(_instance), INSTANCE_TARGET_NAME);
|
244
|
+
_checkAndCreateTargetWithRole(address(_instance.getInstanceStore()), INSTANCE_STORE_TARGET_NAME);
|
245
|
+
_checkAndCreateTargetWithRole(address(_instance.getInstanceAdmin()), INSTANCE_ADMIN_TARGET_NAME);
|
246
|
+
_checkAndCreateTargetWithRole(address(_instance.getBundleManager()), BUNDLE_MANAGER_TARGET_NAME);
|
247
|
+
|
248
|
+
// create targets for services that need to access the module targets
|
249
|
+
ObjectType[] memory serviceDomains = _instanceAuthorization.getServiceDomains();
|
250
|
+
VersionPart release = _instanceAuthorization.getRelease();
|
251
|
+
ObjectType serviceDomain;
|
252
|
+
|
253
|
+
for (uint256 i = 0; i < serviceDomains.length; i++) {
|
254
|
+
serviceDomain = serviceDomains[i];
|
255
|
+
|
256
|
+
_checkAndCreateTargetWithRole(
|
257
|
+
_registry.getServiceAddress(serviceDomain, release),
|
258
|
+
_instanceAuthorization.getServiceTarget(serviceDomain).toString());
|
259
|
+
}
|
260
|
+
}
|
261
|
+
}
|
@@ -0,0 +1,209 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {
|
5
|
+
PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, APPLICATION, POLICY, CLAIM, BUNDLE
|
6
|
+
} from "../../contracts/type/ObjectType.sol";
|
7
|
+
|
8
|
+
import {
|
9
|
+
ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE
|
10
|
+
} from "../../contracts/type/RoleId.sol";
|
11
|
+
|
12
|
+
import {BundleManager} from "../instance/BundleManager.sol";
|
13
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
14
|
+
import {Instance} from "../instance/Instance.sol";
|
15
|
+
import {InstanceAdminNew} from "../instance/InstanceAdminNew.sol";
|
16
|
+
import {InstanceStore} from "../instance/InstanceStore.sol";
|
17
|
+
import {ModuleAuthorization} from "../authorization/ModuleAuthorization.sol";
|
18
|
+
import {RoleId} from "../type/RoleId.sol";
|
19
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
20
|
+
|
21
|
+
|
22
|
+
contract InstanceAuthorizationV3
|
23
|
+
is ModuleAuthorization
|
24
|
+
{
|
25
|
+
|
26
|
+
string public constant INSTANCE_TARGET_NAME = "Instance";
|
27
|
+
string public constant INSTANCE_STORE_TARGET_NAME = "InstanceStore";
|
28
|
+
string public constant INSTANCE_ADMIN_TARGET_NAME = "InstanceAdmin";
|
29
|
+
string public constant BUNDLE_MANAGER_TARGET_NAME = "BundleManager";
|
30
|
+
|
31
|
+
string public constant INSTANCE_ROLE_NAME = "InstanceRole";
|
32
|
+
string public constant DISTRIBUTION_OWNER_ROLE_NAME = "DistributionOwnerRole";
|
33
|
+
string public constant ORACLE_OWNER_ROLE_NAME = "OracleOwnerRole";
|
34
|
+
string public constant POOL_OWNER_ROLE_NAME = "PoolOwnerRole";
|
35
|
+
string public constant PRODUCT_OWNER_ROLE_NAME = "ProductOwnerRole";
|
36
|
+
|
37
|
+
constructor() ModuleAuthorization(INSTANCE_TARGET_NAME) {}
|
38
|
+
|
39
|
+
|
40
|
+
function _setupRoles()
|
41
|
+
internal
|
42
|
+
override
|
43
|
+
{
|
44
|
+
_addGifRole(DISTRIBUTION_OWNER_ROLE(), DISTRIBUTION_OWNER_ROLE_NAME);
|
45
|
+
_addGifRole(ORACLE_OWNER_ROLE(), ORACLE_OWNER_ROLE_NAME);
|
46
|
+
_addGifRole(POOL_OWNER_ROLE(), POOL_OWNER_ROLE_NAME);
|
47
|
+
_addGifRole(PRODUCT_OWNER_ROLE(), PRODUCT_OWNER_ROLE_NAME);
|
48
|
+
}
|
49
|
+
|
50
|
+
|
51
|
+
function _setupTargets()
|
52
|
+
internal
|
53
|
+
override
|
54
|
+
{
|
55
|
+
// instance target
|
56
|
+
_addTargetWithRole(
|
57
|
+
INSTANCE_TARGET_NAME,
|
58
|
+
_getTargetRoleId(INSTANCE()),
|
59
|
+
INSTANCE_ROLE_NAME);
|
60
|
+
|
61
|
+
// instance supporting targets
|
62
|
+
_addTarget(INSTANCE_STORE_TARGET_NAME);
|
63
|
+
_addTarget(INSTANCE_ADMIN_TARGET_NAME);
|
64
|
+
_addTarget(BUNDLE_MANAGER_TARGET_NAME);
|
65
|
+
|
66
|
+
// service targets relevant to instance
|
67
|
+
_addServiceTargetWithRole(INSTANCE());
|
68
|
+
_addServiceTargetWithRole(COMPONENT());
|
69
|
+
_addServiceTargetWithRole(DISTRIBUTION());
|
70
|
+
_addServiceTargetWithRole(ORACLE());
|
71
|
+
_addServiceTargetWithRole(POOL());
|
72
|
+
_addServiceTargetWithRole(BUNDLE());
|
73
|
+
_addServiceTargetWithRole(PRODUCT());
|
74
|
+
_addServiceTargetWithRole(APPLICATION());
|
75
|
+
_addServiceTargetWithRole(POLICY());
|
76
|
+
_addServiceTargetWithRole(CLAIM());
|
77
|
+
}
|
78
|
+
|
79
|
+
|
80
|
+
function _setupTargetAuthorizations()
|
81
|
+
internal
|
82
|
+
override
|
83
|
+
{
|
84
|
+
_setupInstanceAuthorization();
|
85
|
+
_setupInstanceAdminAuthorization();
|
86
|
+
_setupInstanceStoreAuthorization();
|
87
|
+
_setupBundleManagerAuthorization();
|
88
|
+
}
|
89
|
+
|
90
|
+
|
91
|
+
function _setupBundleManagerAuthorization()
|
92
|
+
internal
|
93
|
+
{
|
94
|
+
IAccess.FunctionInfo[] storage functions;
|
95
|
+
|
96
|
+
// authorize bundle service role
|
97
|
+
functions = _authorizeForTarget(BUNDLE_MANAGER_TARGET_NAME, getServiceRole(BUNDLE()));
|
98
|
+
_authorize(functions, BundleManager.linkPolicy.selector, "linkPolicy");
|
99
|
+
_authorize(functions, BundleManager.unlinkPolicy.selector, "unlinkPolicy");
|
100
|
+
_authorize(functions, BundleManager.add.selector, "add");
|
101
|
+
_authorize(functions, BundleManager.lock.selector, "lock");
|
102
|
+
_authorize(functions, BundleManager.unlock.selector, "unlock");
|
103
|
+
}
|
104
|
+
|
105
|
+
|
106
|
+
function _setupInstanceAuthorization()
|
107
|
+
internal
|
108
|
+
{
|
109
|
+
IAccess.FunctionInfo[] storage functions;
|
110
|
+
|
111
|
+
// authorize instance service role
|
112
|
+
functions = _authorizeForTarget(INSTANCE_TARGET_NAME, getServiceRole(INSTANCE()));
|
113
|
+
_authorize(functions, Instance.setInstanceReader.selector, "setInstanceReader");
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
function _setupInstanceAdminAuthorization()
|
118
|
+
internal
|
119
|
+
{
|
120
|
+
IAccess.FunctionInfo[] storage functions;
|
121
|
+
|
122
|
+
// authorize instance role
|
123
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, _getTargetRoleId(INSTANCE()));
|
124
|
+
// _authorize(functions, InstanceAdminNew.createRole.selector, "createRole");
|
125
|
+
_authorize(functions, InstanceAdminNew.grantRole.selector, "grantRole");
|
126
|
+
// _authorize(functions, InstanceAdminNew.createTarget.selector, "createTarget");
|
127
|
+
// _authorize(functions, InstanceAdminNew.setTargetFunctionRoleByInstance.selector, "setTargetFunctionRoleByInstance");
|
128
|
+
// _authorize(functions, InstanceAdminNew.setTargetLockedByInstance.selector, "setTargetLockedByInstance");
|
129
|
+
|
130
|
+
// authorize instance service role
|
131
|
+
functions = _authorizeForTarget(INSTANCE_ADMIN_TARGET_NAME, getServiceRole(INSTANCE()));
|
132
|
+
// _authorize(functions, InstanceAdminNew.createGifTarget.selector, "createGifTarget");
|
133
|
+
// _authorize(functions, InstanceAdminNew.setTargetLockedByService.selector, "setTargetLockedByService");
|
134
|
+
// _authorize(functions, InstanceAdminNew.setTargetFunctionRoleByService.selector, "setTargetFunctionRoleByService");
|
135
|
+
}
|
136
|
+
|
137
|
+
|
138
|
+
function _setupInstanceStoreAuthorization()
|
139
|
+
internal
|
140
|
+
{
|
141
|
+
IAccess.FunctionInfo[] storage functions;
|
142
|
+
|
143
|
+
// authorize component service role
|
144
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(COMPONENT()));
|
145
|
+
_authorize(functions, InstanceStore.createComponent.selector, "createComponent");
|
146
|
+
_authorize(functions, InstanceStore.updateComponent.selector, "updateComponent");
|
147
|
+
_authorize(functions, InstanceStore.createPool.selector, "createPool");
|
148
|
+
_authorize(functions, InstanceStore.createProduct.selector, "createProduct");
|
149
|
+
_authorize(functions, InstanceStore.updateProduct.selector, "updateProduct");
|
150
|
+
_authorize(functions, InstanceStore.increaseBalance.selector, "increaseBalance");
|
151
|
+
_authorize(functions, InstanceStore.increaseFees.selector, "increaseFees");
|
152
|
+
|
153
|
+
// authorize distribution service role
|
154
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(DISTRIBUTION()));
|
155
|
+
_authorize(functions, InstanceStore.createDistributorType.selector, "createDistributorType");
|
156
|
+
_authorize(functions, InstanceStore.updateDistributorType.selector, "updateDistributorType");
|
157
|
+
_authorize(functions, InstanceStore.updateDistributorTypeState.selector, "updateDistributorTypeState");
|
158
|
+
_authorize(functions, InstanceStore.createDistributor.selector, "createDistributor");
|
159
|
+
_authorize(functions, InstanceStore.updateDistributor.selector, "updateDistributor");
|
160
|
+
_authorize(functions, InstanceStore.updateDistributorState.selector, "updateDistributorState");
|
161
|
+
_authorize(functions, InstanceStore.createReferral.selector, "createReferral");
|
162
|
+
_authorize(functions, InstanceStore.updateReferral.selector, "updateReferral");
|
163
|
+
_authorize(functions, InstanceStore.updateReferralState.selector, "updateReferralState");
|
164
|
+
|
165
|
+
// authorize oracle service role
|
166
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(ORACLE()));
|
167
|
+
_authorize(functions, InstanceStore.createRequest.selector, "createRequest");
|
168
|
+
_authorize(functions, InstanceStore.updateRequest.selector, "updateRequest");
|
169
|
+
_authorize(functions, InstanceStore.updateRequestState.selector, "updateRequestState");
|
170
|
+
|
171
|
+
// authorize pool service role
|
172
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POOL()));
|
173
|
+
_authorize(functions, InstanceStore.updatePool.selector, "updatePool");
|
174
|
+
|
175
|
+
// authorize bundle service role
|
176
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(BUNDLE()));
|
177
|
+
_authorize(functions, InstanceStore.createBundle.selector, "createBundle");
|
178
|
+
_authorize(functions, InstanceStore.updateBundle.selector, "updateBundle");
|
179
|
+
_authorize(functions, InstanceStore.updateBundleState.selector, "updateBundleState");
|
180
|
+
_authorize(functions, InstanceStore.increaseLocked.selector, "increaseLocked");
|
181
|
+
_authorize(functions, InstanceStore.decreaseLocked.selector, "decreaseLocked");
|
182
|
+
|
183
|
+
// authorize product service role
|
184
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(PRODUCT()));
|
185
|
+
_authorize(functions, InstanceStore.createRisk.selector, "createRisk");
|
186
|
+
_authorize(functions, InstanceStore.updateRisk.selector, "updateRisk");
|
187
|
+
_authorize(functions, InstanceStore.updateRiskState.selector, "updateRiskState");
|
188
|
+
|
189
|
+
// authorize application service role
|
190
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(APPLICATION()));
|
191
|
+
_authorize(functions, InstanceStore.createApplication.selector, "createApplication");
|
192
|
+
_authorize(functions, InstanceStore.updateApplication.selector, "updateApplication");
|
193
|
+
_authorize(functions, InstanceStore.updateApplicationState.selector, "updateApplicationState");
|
194
|
+
|
195
|
+
// authorize policy service role
|
196
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(POLICY()));
|
197
|
+
_authorize(functions, InstanceStore.updatePolicy.selector, "updatePolicy");
|
198
|
+
_authorize(functions, InstanceStore.updatePolicyState.selector, "updatePolicyState");
|
199
|
+
|
200
|
+
// authorize claim service role
|
201
|
+
functions = _authorizeForTarget(INSTANCE_STORE_TARGET_NAME, getServiceRole(CLAIM()));
|
202
|
+
_authorize(functions, InstanceStore.updatePolicyClaims.selector, "updatePolicyClaims");
|
203
|
+
_authorize(functions, InstanceStore.createClaim.selector, "createClaim");
|
204
|
+
_authorize(functions, InstanceStore.updateClaim.selector, "updateClaim");
|
205
|
+
_authorize(functions, InstanceStore.createPayout.selector, "createPayout");
|
206
|
+
_authorize(functions, InstanceStore.updatePayout.selector, "updatePayout");
|
207
|
+
}
|
208
|
+
}
|
209
|
+
|
@@ -38,24 +38,29 @@ contract InstanceReader {
|
|
38
38
|
error ErrorInstanceReaderAlreadyInitialized();
|
39
39
|
error ErrorInstanceReaderInstanceAddressZero();
|
40
40
|
|
41
|
-
bool private _initialized;
|
41
|
+
bool private _initialized = false;
|
42
42
|
|
43
43
|
IInstance internal _instance;
|
44
44
|
InstanceStore internal _store;
|
45
45
|
|
46
|
-
|
46
|
+
/// @dev This initializer needs to be called from the instance itself.
|
47
|
+
function initialize() public {
|
47
48
|
if(_initialized) {
|
48
49
|
revert ErrorInstanceReaderAlreadyInitialized();
|
49
50
|
}
|
50
51
|
|
51
|
-
|
52
|
-
|
53
|
-
}
|
52
|
+
initializeWithInstance(msg.sender);
|
53
|
+
}
|
54
54
|
|
55
|
-
|
56
|
-
|
55
|
+
/// @dev This initializer needs to be called from the instance itself.
|
56
|
+
function initializeWithInstance(address instanceAddress) public {
|
57
|
+
if(_initialized) {
|
58
|
+
revert ErrorInstanceReaderAlreadyInitialized();
|
59
|
+
}
|
57
60
|
|
58
61
|
_initialized = true;
|
62
|
+
_instance = IInstance(instanceAddress);
|
63
|
+
_store = _instance.getInstanceStore();
|
59
64
|
}
|
60
65
|
|
61
66
|
|
@@ -339,11 +344,19 @@ contract InstanceReader {
|
|
339
344
|
|
340
345
|
|
341
346
|
function hasRole(address account, RoleId roleId) public view returns (bool isMember) {
|
342
|
-
|
343
|
-
|
347
|
+
return _instance.getInstanceAdmin().hasRole(account, roleId);
|
348
|
+
}
|
349
|
+
|
350
|
+
|
351
|
+
function hasAdminRole(address account, RoleId roleId) public view returns (bool isMember) {
|
352
|
+
return _instance.getInstanceAdmin().hasAdminRole(account, roleId);
|
344
353
|
}
|
345
354
|
|
346
355
|
|
356
|
+
function isTargetLocked(address target) public view returns (bool) {
|
357
|
+
return _instance.getInstanceAdmin().isTargetLocked(target);
|
358
|
+
}
|
359
|
+
|
347
360
|
function toPolicyKey(NftId policyNftId) public pure returns (Key32) {
|
348
361
|
return policyNftId.toKey32(POLICY());
|
349
362
|
}
|