@etherisc/gif-next 0.0.2-fd2113c-488 → 0.0.2-fd2ea71-734
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 +49 -4
- 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 +29 -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 +1489 -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 +46 -303
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +214 -90
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +71 -55
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +91 -160
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +103 -16
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +6 -19
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +32 -44
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +35 -96
- 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 +132 -140
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +65 -125
- 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 +90 -219
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1126 -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 +43 -37
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +40 -168
- 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 +1395 -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 +394 -62
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +107 -43
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +205 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -289
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +194 -54
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +44 -428
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +262 -90
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +52 -36
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +33 -44
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -40
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -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 +88 -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/IApplicationService.sol/IApplicationService.json +5 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +16 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +188 -108
- 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 +32 -79
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +2 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +254 -174
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +59 -43
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +63 -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 +32 -228
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -46
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +0 -183
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +101 -73
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +234 -389
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +18 -18
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +27 -27
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +43 -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/Component.sol/Component.json +0 -64
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +255 -86
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +69 -61
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +0 -26
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +153 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +32 -37
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +11 -5
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +0 -5
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +32 -128
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +15 -89
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +4 -65
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +6 -6
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +6 -6
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +8 -8
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +330 -11
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +0 -26
- 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 +40 -113
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +55 -119
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +46 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +6 -6
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +26 -26
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +146 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +27 -22
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +37 -8
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +4 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +4 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +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 +26 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +58 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/{shared → authorization}/AccessAdmin.sol +135 -303
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -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 +8 -5
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/{registry → authorization}/ServiceAuthorization.sol +21 -17
- package/contracts/distribution/BasicDistribution.sol +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +144 -110
- package/contracts/distribution/DistributionService.sol +57 -32
- package/contracts/distribution/DistributionServiceManager.sol +2 -5
- package/contracts/distribution/IDistributionComponent.sol +25 -39
- package/contracts/distribution/IDistributionService.sol +15 -1
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +23 -23
- package/contracts/instance/IInstance.sol +14 -38
- package/contracts/instance/IInstanceService.sol +13 -18
- package/contracts/instance/Instance.sol +67 -101
- package/contracts/instance/InstanceAdmin.sol +221 -267
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +32 -16
- package/contracts/instance/InstanceService.sol +104 -76
- package/contracts/instance/InstanceServiceManager.sol +2 -6
- package/contracts/instance/InstanceStore.sol +13 -5
- package/contracts/instance/base/ObjectLifecycle.sol +105 -0
- package/contracts/instance/base/{ObjectManager.sol → ObjectSet.sol} +11 -12
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +1 -7
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +1 -1
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +16 -0
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/Oracle.sol +73 -51
- package/contracts/oracle/OracleService.sol +1 -0
- package/contracts/oracle/OracleServiceManager.sol +2 -5
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +181 -41
- package/contracts/pool/BundleServiceManager.sol +2 -5
- package/contracts/pool/IBundleService.sol +33 -5
- package/contracts/pool/IPoolComponent.sol +6 -60
- package/contracts/pool/IPoolService.sol +37 -24
- package/contracts/pool/Pool.sol +166 -137
- package/contracts/pool/PoolService.sol +175 -86
- package/contracts/pool/PoolServiceManager.sol +2 -5
- package/contracts/product/ApplicationService.sol +49 -53
- package/contracts/product/ApplicationServiceManager.sol +2 -2
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +13 -39
- package/contracts/product/ClaimServiceManager.sol +2 -2
- package/contracts/product/IApplicationService.sol +1 -0
- package/contracts/product/IClaimService.sol +1 -0
- package/contracts/product/IPolicyService.sol +23 -17
- package/contracts/product/IProductComponent.sol +7 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +1 -1
- package/contracts/product/PolicyService.sol +242 -133
- package/contracts/product/PolicyServiceManager.sol +2 -5
- package/contracts/product/PricingService.sol +5 -1
- package/contracts/product/PricingServiceManager.sol +2 -5
- package/contracts/product/Product.sol +141 -107
- package/contracts/product/{ProductService.sol → RiskService.sol} +10 -37
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/IRegistry.sol +26 -16
- package/contracts/registry/IRegistryService.sol +6 -6
- package/contracts/registry/Registry.sol +81 -87
- package/contracts/registry/RegistryAdmin.sol +127 -86
- package/contracts/registry/RegistryService.sol +4 -18
- package/contracts/registry/RegistryServiceManager.sol +2 -2
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +14 -14
- package/contracts/registry/TokenRegistry.sol +2 -2
- package/contracts/shared/Component.sol +24 -37
- package/contracts/shared/ComponentService.sol +96 -72
- package/contracts/shared/ComponentServiceManager.sol +2 -2
- package/contracts/shared/ComponentVerifyingService.sol +1 -1
- package/contracts/shared/IComponent.sol +4 -4
- package/contracts/shared/IComponentService.sol +15 -9
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -7
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +1 -2
- package/contracts/shared/IService.sol +1 -1
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +47 -19
- package/contracts/shared/KeyValueStore.sol +6 -2
- package/contracts/shared/Lifecycle.sol +16 -69
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +2 -2
- package/contracts/shared/PolicyHolder.sol +2 -5
- package/contracts/shared/Service.sol +3 -4
- package/contracts/shared/TokenHandler.sol +100 -19
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +1 -2
- package/contracts/staking/IStakingService.sol +12 -5
- package/contracts/staking/StakeManagerLib.sol +0 -25
- package/contracts/staking/Staking.sol +21 -37
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +2 -6
- package/contracts/staking/StakingReader.sol +12 -16
- package/contracts/staking/StakingService.sol +8 -12
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/staking/StakingStore.sol +15 -23
- package/contracts/type/Amount.sol +12 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ObjectType.sol +37 -7
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RoleId.sol +55 -82
- package/contracts/type/Seconds.sol +13 -1
- package/contracts/type/Timestamp.sol +11 -1
- package/contracts/type/UFixed.sol +34 -9
- package/contracts/type/Version.sol +3 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +3 -4
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/package.json +6 -3
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -709
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -187
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1218
- 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/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- 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/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -527
- package/contracts/shared/AccessManagerCustom.sol +0 -741
- package/contracts/shared/AccessManagerExtended.sol +0 -481
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
- /package/contracts/{shared → upgradeability}/Versionable.sol +0 -0
@@ -1,12 +1,13 @@
|
|
1
1
|
// SPDX-License-Identifier: UNLICENSED
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
4
|
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
6
5
|
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
|
+
import {ReentrancyGuardUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ReentrancyGuardUpgradeable.sol";
|
7
7
|
|
8
|
+
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
8
9
|
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
9
|
-
import {RoleId, RoleIdLib} from "../type/RoleId.sol";
|
10
|
+
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
10
11
|
import {Selector, SelectorLib, SelectorSetLib} from "../type/Selector.sol";
|
11
12
|
import {Str, StrLib} from "../type/String.sol";
|
12
13
|
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
@@ -19,6 +20,7 @@ import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
|
19
20
|
*/
|
20
21
|
contract AccessAdmin is
|
21
22
|
AccessManagedUpgradeable,
|
23
|
+
ReentrancyGuardUpgradeable,
|
22
24
|
IAccessAdmin
|
23
25
|
{
|
24
26
|
using EnumerableSet for EnumerableSet.AddressSet;
|
@@ -26,19 +28,13 @@ contract AccessAdmin is
|
|
26
28
|
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
27
29
|
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
28
30
|
|
29
|
-
uint64 public constant MANAGER_ROLE = type(uint64).min + 1;
|
30
|
-
string public constant MANAGER_ROLE_NAME = "ManagerRole";
|
31
|
-
|
32
31
|
/// @dev the OpenZeppelin access manager driving the access admin contract
|
33
|
-
|
32
|
+
AccessManagerCloneable internal _authority;
|
34
33
|
|
35
34
|
/// @dev stores the deployer address and allows to create initializers
|
36
35
|
/// that are restricted to the deployer address.
|
37
36
|
address internal _deployer;
|
38
37
|
|
39
|
-
/// @dev required role for state changes to this contract
|
40
|
-
RoleId internal _managerRoleId;
|
41
|
-
|
42
38
|
/// @dev store role info per role id
|
43
39
|
mapping(RoleId roleId => RoleInfo info) internal _roleInfo;
|
44
40
|
|
@@ -63,8 +59,8 @@ contract AccessAdmin is
|
|
63
59
|
/// @dev store all managed functions per target
|
64
60
|
mapping(address target => SelectorSetLib.Set selectors) internal _targetFunctions;
|
65
61
|
|
66
|
-
/// @dev
|
67
|
-
mapping(address target => mapping(Selector selector =>
|
62
|
+
/// @dev function infos array
|
63
|
+
mapping(address target => mapping(Selector selector => FunctionInfo)) internal _functionInfo;
|
68
64
|
|
69
65
|
/// @dev temporary dynamic functions array
|
70
66
|
bytes4[] private _functions;
|
@@ -87,7 +83,7 @@ contract AccessAdmin is
|
|
87
83
|
revert ErrorRoleUnknown(roleId);
|
88
84
|
}
|
89
85
|
|
90
|
-
if (!
|
86
|
+
if (!hasAdminRole(msg.sender, roleId)) {
|
91
87
|
revert ErrorNotAdminOfRole(_roleInfo[roleId].adminRoleId);
|
92
88
|
}
|
93
89
|
_;
|
@@ -112,157 +108,15 @@ contract AccessAdmin is
|
|
112
108
|
|
113
109
|
constructor() {
|
114
110
|
_deployer = msg.sender;
|
115
|
-
_authority = new
|
116
|
-
|
117
|
-
_setAuthority(address(_authority));
|
118
|
-
_createInitialRoleSetup();
|
111
|
+
_authority = new AccessManagerCloneable();
|
112
|
+
_authority.initialize(address(this));
|
119
113
|
|
114
|
+
_setAuthority(address(_authority)); // set authority for oz access managed
|
115
|
+
_createAdminAndPublicRoles();
|
120
116
|
_disableInitializers();
|
121
117
|
}
|
122
118
|
|
123
|
-
//---
|
124
|
-
|
125
|
-
function createRole(
|
126
|
-
RoleId roleId,
|
127
|
-
RoleId adminRoleId,
|
128
|
-
string memory name,
|
129
|
-
uint256 maxMemberCount,
|
130
|
-
bool memberRemovalDisabled
|
131
|
-
)
|
132
|
-
external
|
133
|
-
virtual
|
134
|
-
restricted()
|
135
|
-
{
|
136
|
-
_createRole(roleId, adminRoleId, name, maxMemberCount, memberRemovalDisabled);
|
137
|
-
}
|
138
|
-
|
139
|
-
function setRoleDisabled(
|
140
|
-
RoleId roleId,
|
141
|
-
bool disabled
|
142
|
-
)
|
143
|
-
external
|
144
|
-
virtual
|
145
|
-
restricted()
|
146
|
-
{
|
147
|
-
_setRoleDisabled(roleId, disabled);
|
148
|
-
}
|
149
|
-
|
150
|
-
function grantRole(
|
151
|
-
address account,
|
152
|
-
RoleId roleId
|
153
|
-
)
|
154
|
-
external
|
155
|
-
virtual
|
156
|
-
onlyRoleAdmin(roleId)
|
157
|
-
restricted()
|
158
|
-
{
|
159
|
-
_grantRoleToAccount(roleId, account);
|
160
|
-
}
|
161
|
-
|
162
|
-
function revokeRole(
|
163
|
-
address account,
|
164
|
-
RoleId roleId
|
165
|
-
)
|
166
|
-
external
|
167
|
-
virtual
|
168
|
-
onlyRoleAdmin(roleId)
|
169
|
-
restricted()
|
170
|
-
{
|
171
|
-
_revokeRoleFromAccount(roleId, account);
|
172
|
-
}
|
173
|
-
|
174
|
-
function renounceRole(
|
175
|
-
RoleId roleId
|
176
|
-
)
|
177
|
-
external
|
178
|
-
virtual
|
179
|
-
onlyRoleMember(roleId)
|
180
|
-
restricted()
|
181
|
-
{
|
182
|
-
_revokeRoleFromAccount(roleId, msg.sender);
|
183
|
-
}
|
184
|
-
|
185
|
-
//--- target management functions ---------------------------------------//
|
186
|
-
|
187
|
-
function createTarget(
|
188
|
-
address target,
|
189
|
-
string memory name
|
190
|
-
)
|
191
|
-
external
|
192
|
-
virtual
|
193
|
-
restricted()
|
194
|
-
{
|
195
|
-
_createTarget(target, name);
|
196
|
-
}
|
197
|
-
|
198
|
-
function setTargetLocked(
|
199
|
-
address target,
|
200
|
-
bool locked
|
201
|
-
)
|
202
|
-
external
|
203
|
-
virtual
|
204
|
-
onlyExistingTarget(target)
|
205
|
-
restricted()
|
206
|
-
{
|
207
|
-
_authority.setTargetClosed(target, locked);
|
208
|
-
|
209
|
-
// implizit logging: rely on OpenZeppelin log TargetClosed
|
210
|
-
}
|
211
|
-
|
212
|
-
function authorizeFunctions(
|
213
|
-
address target,
|
214
|
-
RoleId roleId,
|
215
|
-
Function[] memory functions
|
216
|
-
)
|
217
|
-
external
|
218
|
-
virtual
|
219
|
-
onlyExistingTarget(target)
|
220
|
-
onlyExistingRole(roleId)
|
221
|
-
restricted()
|
222
|
-
{
|
223
|
-
_authorizeTargetFunctions(target, roleId, functions);
|
224
|
-
}
|
225
|
-
|
226
|
-
function unauthorizeFunctions(
|
227
|
-
address target,
|
228
|
-
Function[] memory functions
|
229
|
-
)
|
230
|
-
external
|
231
|
-
virtual
|
232
|
-
restricted()
|
233
|
-
{
|
234
|
-
_unauthorizeTargetFunctions(target, functions);
|
235
|
-
}
|
236
|
-
|
237
|
-
|
238
|
-
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
239
|
-
return SelectorSetLib.size(_targetFunctions[target]);
|
240
|
-
}
|
241
|
-
|
242
|
-
function getAuthorizedFunction(
|
243
|
-
address target,
|
244
|
-
uint256 idx
|
245
|
-
)
|
246
|
-
external
|
247
|
-
view
|
248
|
-
returns (
|
249
|
-
Function memory func,
|
250
|
-
RoleId roleId
|
251
|
-
)
|
252
|
-
{
|
253
|
-
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
254
|
-
|
255
|
-
func = Function({
|
256
|
-
selector: selector,
|
257
|
-
name: _functionName[target][selector]});
|
258
|
-
|
259
|
-
roleId = RoleIdLib.toRoleId(
|
260
|
-
_authority.getTargetFunctionRole(
|
261
|
-
target,
|
262
|
-
selector.toBytes4()));
|
263
|
-
}
|
264
|
-
|
265
|
-
//--- view functions ----------------------------------------------------//
|
119
|
+
//--- view functions for roles ------------------------------------------//
|
266
120
|
|
267
121
|
function roles() external view returns (uint256 numberOfRoles) {
|
268
122
|
return _roleIds.length;
|
@@ -280,16 +134,8 @@ contract AccessAdmin is
|
|
280
134
|
return RoleId.wrap(_authority.PUBLIC_ROLE());
|
281
135
|
}
|
282
136
|
|
283
|
-
function getManagerRole() public view returns (RoleId roleId) {
|
284
|
-
return _managerRoleId;
|
285
|
-
}
|
286
|
-
|
287
137
|
function roleExists(RoleId roleId) public view returns (bool exists) {
|
288
|
-
return _roleInfo[roleId].
|
289
|
-
}
|
290
|
-
|
291
|
-
function isRoleDisabled(RoleId roleId) public view returns (bool isActive) {
|
292
|
-
return _roleInfo[roleId].disabledAt <= TimestampLib.blockTimestamp();
|
138
|
+
return _roleInfo[roleId].createdAt.gtz();
|
293
139
|
}
|
294
140
|
|
295
141
|
function getRoleInfo(RoleId roleId) external view returns (RoleInfo memory) {
|
@@ -300,6 +146,14 @@ contract AccessAdmin is
|
|
300
146
|
return _roleForName[name];
|
301
147
|
}
|
302
148
|
|
149
|
+
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
150
|
+
return _roleMembers[roleId].length();
|
151
|
+
}
|
152
|
+
|
153
|
+
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address account) {
|
154
|
+
return _roleMembers[roleId].at(idx);
|
155
|
+
}
|
156
|
+
|
303
157
|
function hasRole(address account, RoleId roleId) public view returns (bool) {
|
304
158
|
(bool isMember, ) = _authority.hasRole(
|
305
159
|
RoleId.unwrap(roleId),
|
@@ -307,22 +161,21 @@ contract AccessAdmin is
|
|
307
161
|
return isMember;
|
308
162
|
}
|
309
163
|
|
310
|
-
function
|
311
|
-
|
164
|
+
function hasAdminRole(address account, RoleId roleId)
|
165
|
+
public
|
166
|
+
virtual
|
167
|
+
view
|
168
|
+
returns (bool)
|
169
|
+
{
|
170
|
+
return hasRole(account, _roleInfo[roleId].adminRoleId);
|
312
171
|
}
|
313
172
|
|
314
|
-
|
315
|
-
return _roleMembers[roleId].at(idx);
|
316
|
-
}
|
173
|
+
//--- view functions for targets ----------------------------------------//
|
317
174
|
|
318
175
|
function targetExists(address target) public view returns (bool exists) {
|
319
176
|
return _targetInfo[target].createdAt.gtz();
|
320
177
|
}
|
321
178
|
|
322
|
-
function isTargetLocked(address target) public view returns (bool locked) {
|
323
|
-
return _authority.isTargetClosed(target);
|
324
|
-
}
|
325
|
-
|
326
179
|
function targets() external view returns (uint256 numberOfTargets) {
|
327
180
|
return _targets.length;
|
328
181
|
}
|
@@ -335,10 +188,37 @@ contract AccessAdmin is
|
|
335
188
|
return _targetInfo[target];
|
336
189
|
}
|
337
190
|
|
338
|
-
function getTargetForName(Str name)
|
191
|
+
function getTargetForName(Str name) public view returns (address target) {
|
339
192
|
return _targetForName[name];
|
340
193
|
}
|
341
194
|
|
195
|
+
function isTargetLocked(address target) public view returns (bool locked) {
|
196
|
+
return _authority.isTargetClosed(target);
|
197
|
+
}
|
198
|
+
|
199
|
+
function authorizedFunctions(address target) external view returns (uint256 numberOfFunctions) {
|
200
|
+
return SelectorSetLib.size(_targetFunctions[target]);
|
201
|
+
}
|
202
|
+
|
203
|
+
function getAuthorizedFunction(
|
204
|
+
address target,
|
205
|
+
uint256 idx
|
206
|
+
)
|
207
|
+
external
|
208
|
+
view
|
209
|
+
returns (
|
210
|
+
FunctionInfo memory func,
|
211
|
+
RoleId roleId
|
212
|
+
)
|
213
|
+
{
|
214
|
+
Selector selector = SelectorSetLib.at(_targetFunctions[target], idx);
|
215
|
+
func = _functionInfo[target][selector];
|
216
|
+
roleId = RoleIdLib.toRoleId(
|
217
|
+
_authority.getTargetFunctionRole(
|
218
|
+
target,
|
219
|
+
selector.toBytes4()));
|
220
|
+
}
|
221
|
+
|
342
222
|
function isAccessManaged(address target) public view returns (bool) {
|
343
223
|
if (!_isContract(target)) {
|
344
224
|
return false;
|
@@ -351,18 +231,29 @@ contract AccessAdmin is
|
|
351
231
|
return success;
|
352
232
|
}
|
353
233
|
|
354
|
-
function canCall(address caller, address target, Selector selector) external view returns (bool can) {
|
234
|
+
function canCall(address caller, address target, Selector selector) external virtual view returns (bool can) {
|
355
235
|
(can, ) = _authority.canCall(caller, target, selector.toBytes4());
|
356
236
|
}
|
357
237
|
|
358
|
-
function
|
359
|
-
return
|
238
|
+
function toRole(RoleId adminRoleId, RoleType roleType, uint32 maxMemberCount, string memory name) public view returns (RoleInfo memory) {
|
239
|
+
return RoleInfo({
|
240
|
+
name: StrLib.toStr(name),
|
241
|
+
adminRoleId: adminRoleId,
|
242
|
+
roleType: roleType,
|
243
|
+
maxMemberCount: maxMemberCount,
|
244
|
+
createdAt: TimestampLib.blockTimestamp()
|
245
|
+
});
|
246
|
+
}
|
247
|
+
|
248
|
+
function toFunction(bytes4 selector, string memory name) public view returns (FunctionInfo memory) {
|
249
|
+
return FunctionInfo({
|
250
|
+
name: StrLib.toStr(name),
|
251
|
+
selector: SelectorLib.toSelector(selector),
|
252
|
+
createdAt: TimestampLib.blockTimestamp()});
|
360
253
|
}
|
361
254
|
|
362
|
-
function
|
363
|
-
|
364
|
-
selector: SelectorLib.toSelector(selector),
|
365
|
-
name: StrLib.toStr(name)});
|
255
|
+
function deployer() public view returns (address) {
|
256
|
+
return _deployer;
|
366
257
|
}
|
367
258
|
|
368
259
|
//--- internal/private functions -------------------------------------------------//
|
@@ -370,7 +261,7 @@ contract AccessAdmin is
|
|
370
261
|
function _authorizeTargetFunctions(
|
371
262
|
address target,
|
372
263
|
RoleId roleId,
|
373
|
-
|
264
|
+
FunctionInfo[] memory functions
|
374
265
|
)
|
375
266
|
internal
|
376
267
|
{
|
@@ -387,7 +278,7 @@ contract AccessAdmin is
|
|
387
278
|
|
388
279
|
function _unauthorizeTargetFunctions(
|
389
280
|
address target,
|
390
|
-
|
281
|
+
FunctionInfo[] memory functions
|
391
282
|
)
|
392
283
|
internal
|
393
284
|
{
|
@@ -398,7 +289,7 @@ contract AccessAdmin is
|
|
398
289
|
|
399
290
|
function _processFunctionSelectors(
|
400
291
|
address target,
|
401
|
-
|
292
|
+
FunctionInfo[] memory functions,
|
402
293
|
bool addFunctions
|
403
294
|
)
|
404
295
|
internal
|
@@ -408,7 +299,7 @@ contract AccessAdmin is
|
|
408
299
|
{
|
409
300
|
uint256 n = functions.length;
|
410
301
|
functionSelectors = new bytes4[](n);
|
411
|
-
|
302
|
+
FunctionInfo memory func;
|
412
303
|
Selector selector;
|
413
304
|
|
414
305
|
for (uint256 i = 0; i < n; i++) {
|
@@ -420,7 +311,7 @@ contract AccessAdmin is
|
|
420
311
|
else { SelectorSetLib.remove(_targetFunctions[target], selector); }
|
421
312
|
|
422
313
|
// set function name
|
423
|
-
|
314
|
+
_functionInfo[target][selector] = func;
|
424
315
|
|
425
316
|
// add bytes4 selector to function selector array
|
426
317
|
functionSelectors[i] = selector.toBytes4();
|
@@ -439,75 +330,47 @@ contract AccessAdmin is
|
|
439
330
|
revert ErrorAuthorityAlreadySet();
|
440
331
|
}
|
441
332
|
|
442
|
-
_authority =
|
443
|
-
|
444
|
-
if(!hasRole(address(this), RoleId.wrap(_authority.ADMIN_ROLE()))) {
|
445
|
-
revert ErrorAdminRoleMissing();
|
446
|
-
}
|
447
|
-
|
333
|
+
_authority = AccessManagerCloneable(authorityAddress);
|
448
334
|
__AccessManaged_init(address(_authority));
|
449
335
|
}
|
450
336
|
|
451
337
|
|
452
|
-
function
|
338
|
+
function _initializeAdminAndPublicRoles()
|
453
339
|
internal
|
454
340
|
virtual
|
455
341
|
onlyInitializing()
|
456
342
|
{
|
457
|
-
|
343
|
+
_createAdminAndPublicRoles();
|
458
344
|
}
|
459
345
|
|
460
346
|
|
461
|
-
function
|
347
|
+
/// @dev internal setup function that can be used in both constructor and initializer.
|
348
|
+
function _createAdminAndPublicRoles()
|
462
349
|
internal
|
463
350
|
{
|
464
351
|
RoleId adminRoleId = RoleIdLib.toRoleId(_authority.ADMIN_ROLE());
|
465
|
-
|
352
|
+
FunctionInfo[] memory functions;
|
466
353
|
|
467
354
|
// setup admin role
|
468
355
|
_createRoleUnchecked(
|
469
|
-
|
470
|
-
|
471
|
-
|
472
|
-
|
473
|
-
|
356
|
+
ADMIN_ROLE(),
|
357
|
+
toRole({
|
358
|
+
adminRoleId: ADMIN_ROLE(),
|
359
|
+
roleType: RoleType.Contract,
|
360
|
+
maxMemberCount: 1,
|
361
|
+
name: ADMIN_ROLE_NAME}));
|
474
362
|
|
475
363
|
// add this contract as admin role member
|
476
364
|
_roleMembers[adminRoleId].add(address(this));
|
477
365
|
|
478
366
|
// setup public role
|
479
367
|
_createRoleUnchecked(
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
486
|
-
// setup manager role
|
487
|
-
_managerRoleId = RoleIdLib.toRoleId(MANAGER_ROLE);
|
488
|
-
_createRole(
|
489
|
-
_managerRoleId,
|
490
|
-
adminRoleId,
|
491
|
-
MANAGER_ROLE_NAME,
|
492
|
-
3, // TODO think about max member count
|
493
|
-
false);
|
494
|
-
|
495
|
-
// grant public role access to grant and revoke, renounce
|
496
|
-
functions = new Function[](3);
|
497
|
-
functions[0] = toFunction(IAccessAdmin.grantRole.selector, "grantRole");
|
498
|
-
functions[1] = toFunction(IAccessAdmin.revokeRole.selector, "revokeRole");
|
499
|
-
functions[2] = toFunction(IAccessAdmin.renounceRole.selector, "renounceRole");
|
500
|
-
_authorizeTargetFunctions(address(this), getPublicRole(), functions);
|
501
|
-
|
502
|
-
// grant manager role access to the specified functions
|
503
|
-
functions = new Function[](6);
|
504
|
-
functions[0] = toFunction(IAccessAdmin.createRole.selector, "createRole");
|
505
|
-
functions[1] = toFunction(IAccessAdmin.setRoleDisabled.selector, "setRoleDisabled");
|
506
|
-
functions[2] = toFunction(IAccessAdmin.createTarget.selector, "createTarget");
|
507
|
-
functions[3] = toFunction(IAccessAdmin.setTargetLocked.selector, "setTargetLocked");
|
508
|
-
functions[4] = toFunction(IAccessAdmin.authorizeFunctions.selector, "authorizeFunctions");
|
509
|
-
functions[5] = toFunction(IAccessAdmin.unauthorizeFunctions.selector, "unauthorizeFunctions");
|
510
|
-
_authorizeTargetFunctions(address(this), getManagerRole(), functions);
|
368
|
+
PUBLIC_ROLE(),
|
369
|
+
toRole({
|
370
|
+
adminRoleId: ADMIN_ROLE(),
|
371
|
+
roleType: RoleType.Gif,
|
372
|
+
maxMemberCount: type(uint32).max,
|
373
|
+
name: PUBLIC_ROLE_NAME}));
|
511
374
|
}
|
512
375
|
|
513
376
|
/// @dev check if target exists and reverts if it doesn't
|
@@ -540,13 +403,17 @@ contract AccessAdmin is
|
|
540
403
|
internal
|
541
404
|
{
|
542
405
|
_checkRoleId(roleId);
|
543
|
-
_checkRoleIsActive(roleId);
|
544
406
|
|
545
407
|
// check max role members will not be exceeded
|
546
408
|
if (_roleMembers[roleId].length() >= _roleInfo[roleId].maxMemberCount) {
|
547
409
|
revert ErrorRoleMembersLimitReached(roleId, _roleInfo[roleId].maxMemberCount);
|
548
410
|
}
|
549
411
|
|
412
|
+
// check account is contract for contract role
|
413
|
+
// TODO implement
|
414
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
415
|
+
}
|
416
|
+
|
550
417
|
_roleMembers[roleId].add(account);
|
551
418
|
_authority.grantRole(
|
552
419
|
RoleId.unwrap(roleId),
|
@@ -563,7 +430,7 @@ contract AccessAdmin is
|
|
563
430
|
_checkRoleId(roleId);
|
564
431
|
|
565
432
|
// check role removal is permitted
|
566
|
-
if (_roleInfo[roleId].
|
433
|
+
if (_roleInfo[roleId].roleType == RoleType.Contract) {
|
567
434
|
revert ErrorRoleRemovalDisabled(roleId);
|
568
435
|
}
|
569
436
|
|
@@ -579,7 +446,7 @@ contract AccessAdmin is
|
|
579
446
|
function _checkRoleId(RoleId roleId)
|
580
447
|
internal
|
581
448
|
{
|
582
|
-
if (
|
449
|
+
if (_roleInfo[roleId].createdAt.eqz()) {
|
583
450
|
revert ErrorRoleUnknown(roleId);
|
584
451
|
}
|
585
452
|
|
@@ -591,22 +458,11 @@ contract AccessAdmin is
|
|
591
458
|
}
|
592
459
|
}
|
593
460
|
|
594
|
-
|
595
|
-
|
596
|
-
internal
|
597
|
-
{
|
598
|
-
if (isRoleDisabled(roleId)) {
|
599
|
-
revert ErrorRoleIsDisabled(roleId);
|
600
|
-
}
|
601
|
-
}
|
602
|
-
|
603
|
-
|
461
|
+
/// @dev Creates a role based on the provided parameters.
|
462
|
+
/// Checks that the provided role and role id and role name not already used.
|
604
463
|
function _createRole(
|
605
464
|
RoleId roleId,
|
606
|
-
|
607
|
-
string memory roleName,
|
608
|
-
uint256 maxMemberCount,
|
609
|
-
bool memberRemovalDisabled
|
465
|
+
RoleInfo memory info
|
610
466
|
)
|
611
467
|
internal
|
612
468
|
{
|
@@ -618,84 +474,57 @@ contract AccessAdmin is
|
|
618
474
|
}
|
619
475
|
|
620
476
|
// check admin role exists
|
621
|
-
if(!roleExists(adminRoleId)) {
|
622
|
-
revert ErrorRoleAdminNotExisting(adminRoleId);
|
477
|
+
if(!roleExists(info.adminRoleId)) {
|
478
|
+
revert ErrorRoleAdminNotExisting(info.adminRoleId);
|
623
479
|
}
|
624
480
|
|
625
481
|
// check role name is not empty
|
626
|
-
|
627
|
-
if(name.length() == 0) {
|
482
|
+
if(info.name.length() == 0) {
|
628
483
|
revert ErrorRoleNameEmpty(roleId);
|
629
484
|
}
|
630
485
|
|
631
486
|
// check role name is not used for another role
|
632
|
-
if(_roleForName[name].exists) {
|
487
|
+
if(_roleForName[info.name].exists) {
|
633
488
|
revert ErrorRoleNameAlreadyExists(
|
634
489
|
roleId,
|
635
|
-
|
636
|
-
_roleForName[name].roleId);
|
490
|
+
info.name.toString(),
|
491
|
+
_roleForName[info.name].roleId);
|
637
492
|
}
|
638
493
|
|
639
|
-
_createRoleUnchecked(
|
640
|
-
roleId, adminRoleId,
|
641
|
-
name,
|
642
|
-
maxMemberCount,
|
643
|
-
memberRemovalDisabled);
|
644
|
-
}
|
645
|
-
|
646
|
-
|
647
|
-
function _setRoleDisabled(
|
648
|
-
RoleId roleId,
|
649
|
-
bool disabled
|
650
|
-
)
|
651
|
-
internal
|
652
|
-
{
|
653
|
-
|
654
|
-
_checkRoleId(roleId);
|
655
|
-
Timestamp disabledAtOld = _roleInfo[roleId].disabledAt;
|
656
|
-
|
657
|
-
if (disabled) {
|
658
|
-
_roleInfo[roleId].disabledAt = TimestampLib.blockTimestamp();
|
659
|
-
} else {
|
660
|
-
_roleInfo[roleId].disabledAt = TimestampLib.max();
|
661
|
-
}
|
662
|
-
|
663
|
-
emit LogRoleDisabled(roleId, disabled, disabledAtOld);
|
494
|
+
_createRoleUnchecked(roleId, info);
|
664
495
|
}
|
665
496
|
|
666
497
|
|
667
498
|
function _createRoleUnchecked(
|
668
499
|
RoleId roleId,
|
669
|
-
|
670
|
-
Str name,
|
671
|
-
uint256 maxMemberCount,
|
672
|
-
bool memberRemovalDisabled
|
500
|
+
RoleInfo memory info
|
673
501
|
)
|
674
502
|
private
|
675
503
|
{
|
676
504
|
// create role info
|
677
|
-
|
678
|
-
|
679
|
-
name: name,
|
680
|
-
maxMemberCount: maxMemberCount,
|
681
|
-
memberRemovalDisabled: memberRemovalDisabled,
|
682
|
-
disabledAt: TimestampLib.max(),
|
683
|
-
exists: true});
|
505
|
+
info.createdAt = TimestampLib.blockTimestamp();
|
506
|
+
_roleInfo[roleId] = info;
|
684
507
|
|
685
508
|
// create role name info
|
686
|
-
_roleForName[name] = RoleNameInfo({
|
509
|
+
_roleForName[info.name] = RoleNameInfo({
|
687
510
|
roleId: roleId,
|
688
511
|
exists: true});
|
689
512
|
|
690
513
|
// add role to list of roles
|
691
514
|
_roleIds.push(roleId);
|
692
515
|
|
693
|
-
emit LogRoleCreated(roleId, adminRoleId, name.toString());
|
516
|
+
emit LogRoleCreated(roleId, info.roleType, info.adminRoleId, info.name.toString());
|
694
517
|
}
|
695
518
|
|
696
519
|
|
697
|
-
function _createTarget(
|
520
|
+
function _createTarget(
|
521
|
+
address target,
|
522
|
+
string memory targetName,
|
523
|
+
bool checkAuthority,
|
524
|
+
bool custom
|
525
|
+
)
|
698
526
|
internal
|
527
|
+
nonReentrant()
|
699
528
|
{
|
700
529
|
// check target does not yet exist
|
701
530
|
if(targetExists(target)) {
|
@@ -710,7 +539,7 @@ contract AccessAdmin is
|
|
710
539
|
revert ErrorTargetNameEmpty(target);
|
711
540
|
}
|
712
541
|
|
713
|
-
// check target name is not used for another
|
542
|
+
// check target name is not used for another target
|
714
543
|
if( _targetForName[name] != address(0)) {
|
715
544
|
revert ErrorTargetNameAlreadyExists(
|
716
545
|
target,
|
@@ -724,14 +553,17 @@ contract AccessAdmin is
|
|
724
553
|
}
|
725
554
|
|
726
555
|
// check target shares authority with this contract
|
727
|
-
|
728
|
-
|
729
|
-
|
556
|
+
if (checkAuthority) {
|
557
|
+
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
558
|
+
if (targetAuthority != authority()) {
|
559
|
+
revert ErrorTargetAuthorityMismatch(authority(), targetAuthority);
|
560
|
+
}
|
730
561
|
}
|
731
562
|
|
732
563
|
// create target info
|
733
564
|
_targetInfo[target] = TargetInfo({
|
734
565
|
name: name,
|
566
|
+
isCustom: custom,
|
735
567
|
createdAt: TimestampLib.blockTimestamp()
|
736
568
|
});
|
737
569
|
|