@etherisc/gif-next 0.0.2-fd275d2-234 → 0.0.2-fd4ee14-428
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -15
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1416 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1378 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +826 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +975 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +827 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +64 -164
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +284 -1317
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +453 -169
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +419 -3062
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +708 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +228 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +630 -351
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +605 -355
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +359 -113
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3598 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +187 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +30 -112
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → oracle/IOracle.sol/IOracle.json} +2 -2
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +759 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1146 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → pool/IBundleService.sol/IBundleService.json} +300 -357
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +1154 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1565 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IComponentOwnerService.sol/IComponentOwnerService.json → product/IApplicationService.sol/IApplicationService.json} +236 -190
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPricingService.sol/IPricingService.json} +253 -373
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +995 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{shared/RegisterableUpgradable.sol/RegisterableUpgradable.json → product/IProductService.sol/IProductService.json} +124 -166
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1397 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +388 -127
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +395 -219
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/IServiceAuthorization.sol/IServiceAuthorization.json +129 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +18 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +576 -182
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1901 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +477 -318
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +337 -133
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1218 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorization.sol/ServiceAuthorization.json +171 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +187 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessAdmin.sol/AccessAdmin.json +1559 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/{instance/IAccessManagerSimple.sol/IAccessManagerSimple.json → shared/AccessManagerCustom.sol/AccessManagerCustom.json} +122 -11
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +1747 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1760 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1838 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1856 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1511 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +796 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +208 -209
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +41 -3
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessAdmin.sol/IAccessAdmin.json +1189 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtended.sol/IAccessManagerExtended.json +1562 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +1600 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +880 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +705 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +50 -11
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +34 -30
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +15 -35
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{experiment/inheritance/IA.sol/ISharedA.json → shared/IRegistryLinked.sol/IRegistryLinked.json} +15 -17
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +97 -172
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +2 -152
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +39 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +1036 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +571 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +194 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +115 -29
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +330 -62
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +132 -53
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +201 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +2 -152
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2261 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +571 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/AddressSet.sol/LibAddressSet.json +3 -3
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +345 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +179 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/DistributorType.sol/DistributorTypeLib.json +5 -5
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +312 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Key32.sol/Key32Lib.json +3 -3
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +209 -0
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +186 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +209 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +4 -0
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +142 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/RiskId.sol/RiskIdLib.json +5 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +266 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +293 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/MathLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/UFixed.sol/UFixedLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionLib.json +3 -3
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Version.sol/VersionPartLib.json +3 -3
- package/contracts/distribution/Distribution.sol +261 -0
- package/contracts/distribution/DistributionService.sol +297 -0
- package/contracts/distribution/DistributionServiceManager.sol +42 -0
- package/contracts/distribution/IDistributionComponent.sol +66 -0
- package/contracts/distribution/IDistributionService.sol +81 -0
- package/contracts/instance/BundleManager.sol +24 -50
- package/contracts/instance/IInstance.sol +67 -36
- package/contracts/instance/IInstanceService.sol +82 -17
- package/contracts/instance/Instance.sol +181 -372
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +160 -83
- package/contracts/instance/InstanceService.sol +372 -165
- package/contracts/instance/InstanceServiceManager.sol +12 -25
- package/contracts/instance/InstanceStore.sol +269 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +17 -32
- package/contracts/instance/module/IAccess.sol +29 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/IOracle.sol +20 -0
- package/contracts/oracle/IOracleComponent.sol +32 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +145 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +42 -0
- package/contracts/pool/BundleService.sol +296 -0
- package/contracts/pool/BundleServiceManager.sol +42 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +112 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +299 -0
- package/contracts/pool/PoolService.sol +452 -0
- package/contracts/pool/PoolServiceManager.sol +42 -0
- package/contracts/product/ApplicationService.sol +254 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/ClaimService.sol +442 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +78 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +42 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +42 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +42 -0
- package/contracts/product/Product.sol +377 -0
- package/contracts/product/ProductService.sol +124 -0
- package/contracts/product/ProductServiceManager.sol +42 -0
- package/contracts/registry/ChainNft.sol +15 -0
- package/contracts/registry/IRegistry.sol +73 -30
- package/contracts/registry/IRegistryService.sol +47 -28
- package/contracts/registry/IServiceAuthorization.sol +35 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +382 -248
- package/contracts/registry/RegistryAdmin.sol +333 -0
- package/contracts/registry/RegistryService.sol +114 -206
- package/contracts/registry/RegistryServiceManager.sol +24 -51
- package/contracts/registry/ReleaseManager.sol +527 -0
- package/contracts/registry/ServiceAuthorization.sol +86 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -57
- package/contracts/shared/AccessAdmin.sol +759 -0
- package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +281 -232
- package/contracts/shared/AccessManagerExtended.sol +481 -0
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +13 -0
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +137 -0
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +14 -0
- package/contracts/shared/Component.sol +281 -0
- package/contracts/shared/ComponentService.sol +617 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +15 -13
- package/contracts/shared/IAccessAdmin.sol +168 -0
- package/contracts/shared/IAccessManagerExtended.sol +74 -0
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +18 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +102 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +46 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +15 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -3
- package/contracts/shared/INftOwnable.sol +13 -12
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +4 -6
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +15 -5
- package/contracts/shared/IVersionable.sol +5 -48
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +144 -0
- package/contracts/shared/KeyValueStore.sol +127 -0
- package/contracts/{instance/base → shared}/Lifecycle.sol +37 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +59 -86
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +131 -26
- package/contracts/shared/Registerable.sol +26 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +57 -29
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/shared/Versionable.sol +4 -92
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +153 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +513 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +613 -0
- package/contracts/staking/TargetManagerLib.sol +207 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +128 -0
- package/contracts/{types → type}/Blocknumber.sol +21 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/{types → type}/DistributorType.sol +2 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +241 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +5 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +201 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +34 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +23 -14
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +2 -1
- package/package.json +5 -5
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -327
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -618
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -280
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.json +0 -152
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -249
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -157
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -787
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -729
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Cloner.json +0 -66
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock1.json +0 -24
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.dbg.json +0 -4
- package/artifacts/contracts/experiment/cloning/Cloner.sol/Mock2.json +0 -42
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagedSimple.sol/AccessManagedSimple.json +0 -101
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1132
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/IAccessManagerSimple.sol/IAccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -917
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -272
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -113
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -827
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -716
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -444
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -446
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -971
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -460
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -1147
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -488
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -305
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -600
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/contracts/components/BaseComponent.sol +0 -91
- package/contracts/components/Distribution.sol +0 -163
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -44
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -247
- package/contracts/components/Product.sol +0 -289
- package/contracts/experiment/cloning/Cloner.sol +0 -47
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/AccessManagedSimple.sol +0 -115
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -134
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/DistributionService.sol +0 -88
- package/contracts/instance/service/DistributionServiceManager.sol +0 -54
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -43
- package/contracts/instance/service/IProductService.sol +0 -110
- package/contracts/instance/service/PoolService.sol +0 -206
- package/contracts/instance/service/PoolServiceManager.sol +0 -54
- package/contracts/instance/service/ProductService.sol +0 -561
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/shared/RegisterableUpgradable.sol +0 -16
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -24
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -152
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,19 +1,34 @@
|
|
1
|
-
// SPDX-License-Identifier:
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
-
import {
|
4
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
5
5
|
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
6
|
+
import {Address} from "@openzeppelin/contracts/utils/Address.sol";
|
7
|
+
import {ContextUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/ContextUpgradeable.sol";
|
8
|
+
import {MulticallUpgradeable} from "@openzeppelin/contracts-upgradeable/utils/MulticallUpgradeable.sol";
|
9
|
+
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
10
|
+
import {Time} from "@openzeppelin/contracts/utils/types/Time.sol";
|
11
|
+
import {Initializable} from "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol";
|
12
|
+
|
13
|
+
/*
|
14
|
+
* copy of @openzeppelin/contract-upgradeable/access/manager/AccessManagerUpgradeable.sol" except:
|
15
|
+
1. abstract
|
16
|
+
2. renamed to AccessManagerCustom
|
17
|
+
2. _getAdminRestrictions() private view -> internal virtual view
|
18
|
+
3. _checkSelector() private pure -> internal pure
|
19
|
+
*/
|
20
|
+
abstract contract AccessManagerCustom is
|
21
|
+
Initializable,
|
22
|
+
ContextUpgradeable,
|
23
|
+
MulticallUpgradeable,
|
24
|
+
IAccessManager
|
25
|
+
{
|
26
|
+
using Time for *;
|
6
27
|
|
7
|
-
import {IAccessManagerSimple} from "./IAccessManagerSimple.sol";
|
8
|
-
|
9
|
-
type Delay is uint112;
|
10
|
-
|
11
|
-
// @dev as oz5 AccessManager but without multicall and without timing logic
|
12
|
-
contract AccessManagerSimple is Context, IAccessManagerSimple {
|
13
28
|
// Structure that stores the details for a target contract.
|
14
29
|
struct TargetConfig {
|
15
30
|
mapping(bytes4 selector => uint64 roleId) allowedRoles;
|
16
|
-
|
31
|
+
Time.Delay adminDelay;
|
17
32
|
bool closed;
|
18
33
|
}
|
19
34
|
|
@@ -23,7 +38,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
23
38
|
// If this is either 0 or in the future, then the role permission is not available.
|
24
39
|
uint48 since;
|
25
40
|
// Delay for execution. Only applies to restricted() / execute() calls.
|
26
|
-
Delay delay;
|
41
|
+
Time.Delay delay;
|
27
42
|
}
|
28
43
|
|
29
44
|
// Structure that stores the details of a role.
|
@@ -35,7 +50,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
35
50
|
// Guardian who can cancel operations targeting functions that need this role.
|
36
51
|
uint64 guardian;
|
37
52
|
// Delay in which the role takes effect after being granted.
|
38
|
-
Delay grantDelay;
|
53
|
+
Time.Delay grantDelay;
|
39
54
|
}
|
40
55
|
|
41
56
|
// Structure that stores the details for a scheduled operation. This structure fits into a single slot.
|
@@ -46,18 +61,29 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
46
61
|
uint32 nonce;
|
47
62
|
}
|
48
63
|
|
49
|
-
bool private _initialized;
|
50
|
-
|
51
64
|
uint64 public constant ADMIN_ROLE = type(uint64).min; // 0
|
52
65
|
uint64 public constant PUBLIC_ROLE = type(uint64).max; // 2**64-1
|
53
66
|
|
54
|
-
|
55
|
-
|
56
|
-
|
67
|
+
/// @custom:storage-location erc7201:openzeppelin.storage.AccessManagerCustom
|
68
|
+
struct AccessManagerStorage {
|
69
|
+
mapping(address target => TargetConfig mode) _targets;
|
70
|
+
mapping(uint64 roleId => Role) _roles;
|
71
|
+
mapping(bytes32 operationId => Schedule) _schedules;
|
72
|
+
|
73
|
+
// Used to identify operations that are currently being executed via {execute}.
|
74
|
+
// This should be transient storage when supported by the EVM.
|
75
|
+
bytes32 _executionId;
|
76
|
+
}
|
77
|
+
|
78
|
+
// TODO compute address
|
79
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.AccessManagerCustom")) - 1)) & ~bytes32(uint256(0xff))
|
80
|
+
bytes32 private constant AccessManagerCustomStorageLocation = 0x77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf00;
|
57
81
|
|
58
|
-
|
59
|
-
|
60
|
-
|
82
|
+
function _getAccessManagerCustomStorage() private pure returns (AccessManagerStorage storage $) {
|
83
|
+
assembly {
|
84
|
+
$.slot := AccessManagerCustomStorageLocation
|
85
|
+
}
|
86
|
+
}
|
61
87
|
|
62
88
|
/**
|
63
89
|
* @dev Check that the caller is authorized to perform the operation, following the restrictions encoded in
|
@@ -68,25 +94,21 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
68
94
|
_;
|
69
95
|
}
|
70
96
|
|
71
|
-
|
72
|
-
|
97
|
+
function __AccessManagerCustom_init(address initialAdmin) internal onlyInitializing {
|
98
|
+
__AccessManagerCustom_init_unchained(initialAdmin);
|
73
99
|
}
|
74
|
-
|
75
|
-
function
|
76
|
-
require(!_initialized, "AccessManager: already initialized");
|
77
|
-
|
100
|
+
|
101
|
+
function __AccessManagerCustom_init_unchained(address initialAdmin) internal onlyInitializing {
|
78
102
|
if (initialAdmin == address(0)) {
|
79
103
|
revert AccessManagerInvalidInitialAdmin(address(0));
|
80
104
|
}
|
81
105
|
|
82
106
|
// admin is active immediately and without any execution delay.
|
83
107
|
_grantRole(ADMIN_ROLE, initialAdmin, 0, 0);
|
84
|
-
_initialized = true;
|
85
108
|
}
|
86
109
|
|
87
|
-
|
88
110
|
// =================================================== GETTERS ====================================================
|
89
|
-
/// @inheritdoc
|
111
|
+
/// @inheritdoc IAccessManager
|
90
112
|
function canCall(
|
91
113
|
address caller,
|
92
114
|
address target,
|
@@ -94,10 +116,10 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
94
116
|
) public view virtual returns (bool immediate, uint32 delay) {
|
95
117
|
if (isTargetClosed(target)) {
|
96
118
|
return (false, 0);
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
119
|
+
} else if (caller == address(this)) {
|
120
|
+
// Caller is AccessManager, this means the call was sent through {execute} and it already checked
|
121
|
+
// permissions. We verify that the call "identifier", which is set during {execute}, is correct.
|
122
|
+
return (_isExecuting(target, selector), 0);
|
101
123
|
} else {
|
102
124
|
uint64 roleId = getTargetFunctionRole(target, selector);
|
103
125
|
(bool isMember, uint32 currentDelay) = hasRole(roleId, caller);
|
@@ -105,60 +127,67 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
105
127
|
}
|
106
128
|
}
|
107
129
|
|
108
|
-
/// @inheritdoc
|
130
|
+
/// @inheritdoc IAccessManager
|
109
131
|
function expiration() public view virtual returns (uint32) {
|
110
132
|
return 1 weeks;
|
111
133
|
}
|
112
134
|
|
113
|
-
/// @inheritdoc
|
135
|
+
/// @inheritdoc IAccessManager
|
114
136
|
function minSetback() public view virtual returns (uint32) {
|
115
137
|
return 5 days;
|
116
138
|
}
|
117
139
|
|
118
|
-
/// @inheritdoc
|
140
|
+
/// @inheritdoc IAccessManager
|
119
141
|
function isTargetClosed(address target) public view virtual returns (bool) {
|
120
|
-
|
142
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
143
|
+
return $._targets[target].closed;
|
121
144
|
}
|
122
145
|
|
123
|
-
/// @inheritdoc
|
146
|
+
/// @inheritdoc IAccessManager
|
124
147
|
function getTargetFunctionRole(address target, bytes4 selector) public view virtual returns (uint64) {
|
125
|
-
|
148
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
149
|
+
return $._targets[target].allowedRoles[selector];
|
126
150
|
}
|
127
151
|
|
128
|
-
/// @inheritdoc
|
152
|
+
/// @inheritdoc IAccessManager
|
129
153
|
function getTargetAdminDelay(address target) public view virtual returns (uint32) {
|
130
|
-
|
154
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
155
|
+
return $._targets[target].adminDelay.get();
|
131
156
|
}
|
132
157
|
|
133
|
-
/// @inheritdoc
|
158
|
+
/// @inheritdoc IAccessManager
|
134
159
|
function getRoleAdmin(uint64 roleId) public view virtual returns (uint64) {
|
135
|
-
|
160
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
161
|
+
return $._roles[roleId].admin;
|
136
162
|
}
|
137
163
|
|
138
|
-
/// @inheritdoc
|
164
|
+
/// @inheritdoc IAccessManager
|
139
165
|
function getRoleGuardian(uint64 roleId) public view virtual returns (uint64) {
|
140
|
-
|
166
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
167
|
+
return $._roles[roleId].guardian;
|
141
168
|
}
|
142
169
|
|
143
|
-
/// @inheritdoc
|
170
|
+
/// @inheritdoc IAccessManager
|
144
171
|
function getRoleGrantDelay(uint64 roleId) public view virtual returns (uint32) {
|
145
|
-
|
172
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
173
|
+
return $._roles[roleId].grantDelay.get();
|
146
174
|
}
|
147
175
|
|
148
|
-
/// @inheritdoc
|
176
|
+
/// @inheritdoc IAccessManager
|
149
177
|
function getAccess(
|
150
178
|
uint64 roleId,
|
151
179
|
address account
|
152
180
|
) public view virtual returns (uint48 since, uint32 currentDelay, uint32 pendingDelay, uint48 effect) {
|
153
|
-
|
181
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
182
|
+
Access storage access = $._roles[roleId].members[account];
|
154
183
|
|
155
184
|
since = access.since;
|
156
|
-
|
185
|
+
(currentDelay, pendingDelay, effect) = access.delay.getFull();
|
157
186
|
|
158
187
|
return (since, currentDelay, pendingDelay, effect);
|
159
188
|
}
|
160
189
|
|
161
|
-
/// @inheritdoc
|
190
|
+
/// @inheritdoc IAccessManager
|
162
191
|
function hasRole(
|
163
192
|
uint64 roleId,
|
164
193
|
address account
|
@@ -167,13 +196,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
167
196
|
return (true, 0);
|
168
197
|
} else {
|
169
198
|
(uint48 hasRoleSince, uint32 currentDelay, , ) = getAccess(roleId, account);
|
170
|
-
|
171
|
-
return (hasRoleSince != 0 && hasRoleSince <= uint48(block.timestamp), currentDelay);
|
199
|
+
return (hasRoleSince != 0 && hasRoleSince <= Time.timestamp(), currentDelay);
|
172
200
|
}
|
173
201
|
}
|
174
202
|
|
175
203
|
// =============================================== ROLE MANAGEMENT ===============================================
|
176
|
-
/// @inheritdoc
|
204
|
+
/// @inheritdoc IAccessManager
|
177
205
|
function labelRole(uint64 roleId, string calldata label) public virtual onlyAuthorized {
|
178
206
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
179
207
|
revert AccessManagerLockedRole(roleId);
|
@@ -181,17 +209,17 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
181
209
|
emit RoleLabel(roleId, label);
|
182
210
|
}
|
183
211
|
|
184
|
-
/// @inheritdoc
|
212
|
+
/// @inheritdoc IAccessManager
|
185
213
|
function grantRole(uint64 roleId, address account, uint32 executionDelay) public virtual onlyAuthorized {
|
186
214
|
_grantRole(roleId, account, getRoleGrantDelay(roleId), executionDelay);
|
187
215
|
}
|
188
216
|
|
189
|
-
/// @inheritdoc
|
217
|
+
/// @inheritdoc IAccessManager
|
190
218
|
function revokeRole(uint64 roleId, address account) public virtual onlyAuthorized {
|
191
219
|
_revokeRole(roleId, account);
|
192
220
|
}
|
193
221
|
|
194
|
-
/// @inheritdoc
|
222
|
+
/// @inheritdoc IAccessManager
|
195
223
|
function renounceRole(uint64 roleId, address callerConfirmation) public virtual {
|
196
224
|
if (callerConfirmation != _msgSender()) {
|
197
225
|
revert AccessManagerBadConfirmation();
|
@@ -199,19 +227,19 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
199
227
|
_revokeRole(roleId, callerConfirmation);
|
200
228
|
}
|
201
229
|
|
202
|
-
/// @inheritdoc
|
230
|
+
/// @inheritdoc IAccessManager
|
203
231
|
function setRoleAdmin(uint64 roleId, uint64 admin) public virtual onlyAuthorized {
|
204
232
|
_setRoleAdmin(roleId, admin);
|
205
233
|
}
|
206
234
|
|
207
|
-
/// @inheritdoc
|
235
|
+
/// @inheritdoc IAccessManager
|
208
236
|
function setRoleGuardian(uint64 roleId, uint64 guardian) public virtual onlyAuthorized {
|
209
237
|
_setRoleGuardian(roleId, guardian);
|
210
238
|
}
|
211
239
|
|
212
|
-
/// @inheritdoc
|
240
|
+
/// @inheritdoc IAccessManager
|
213
241
|
function setGrantDelay(uint64 roleId, uint32 newDelay) public virtual onlyAuthorized {
|
214
|
-
|
242
|
+
_setGrantDelay(roleId, newDelay);
|
215
243
|
}
|
216
244
|
|
217
245
|
/**
|
@@ -225,25 +253,25 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
225
253
|
uint32 grantDelay,
|
226
254
|
uint32 executionDelay
|
227
255
|
) internal virtual returns (bool) {
|
256
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
228
257
|
if (roleId == PUBLIC_ROLE) {
|
229
258
|
revert AccessManagerLockedRole(roleId);
|
230
259
|
}
|
231
260
|
|
232
|
-
bool newMember = _roles[roleId].members[account].since == 0;
|
261
|
+
bool newMember = $._roles[roleId].members[account].since == 0;
|
233
262
|
uint48 since;
|
234
263
|
|
235
264
|
if (newMember) {
|
236
|
-
since =
|
237
|
-
_roles[roleId].members[account] = Access({since: since, delay:
|
238
|
-
}
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
// }
|
265
|
+
since = Time.timestamp() + grantDelay;
|
266
|
+
$._roles[roleId].members[account] = Access({since: since, delay: executionDelay.toDelay()});
|
267
|
+
} else {
|
268
|
+
// No setback here. Value can be reset by doing revoke + grant, effectively allowing the admin to perform
|
269
|
+
// any change to the execution delay within the duration of the role admin delay.
|
270
|
+
($._roles[roleId].members[account].delay, since) = $._roles[roleId].members[account].delay.withUpdate(
|
271
|
+
executionDelay,
|
272
|
+
0
|
273
|
+
);
|
274
|
+
}
|
247
275
|
|
248
276
|
emit RoleGranted(roleId, account, executionDelay, since, newMember);
|
249
277
|
return newMember;
|
@@ -256,15 +284,16 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
256
284
|
* Emits a {RoleRevoked} event if the account had the role.
|
257
285
|
*/
|
258
286
|
function _revokeRole(uint64 roleId, address account) internal virtual returns (bool) {
|
287
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
259
288
|
if (roleId == PUBLIC_ROLE) {
|
260
289
|
revert AccessManagerLockedRole(roleId);
|
261
290
|
}
|
262
291
|
|
263
|
-
if (_roles[roleId].members[account].since == 0) {
|
292
|
+
if ($._roles[roleId].members[account].since == 0) {
|
264
293
|
return false;
|
265
294
|
}
|
266
295
|
|
267
|
-
delete _roles[roleId].members[account];
|
296
|
+
delete $._roles[roleId].members[account];
|
268
297
|
|
269
298
|
emit RoleRevoked(roleId, account);
|
270
299
|
return true;
|
@@ -279,11 +308,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
279
308
|
* anyone to set grant or revoke such role.
|
280
309
|
*/
|
281
310
|
function _setRoleAdmin(uint64 roleId, uint64 admin) internal virtual {
|
311
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
282
312
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
283
313
|
revert AccessManagerLockedRole(roleId);
|
284
314
|
}
|
285
315
|
|
286
|
-
_roles[roleId].admin = admin;
|
316
|
+
$._roles[roleId].admin = admin;
|
287
317
|
|
288
318
|
emit RoleAdminChanged(roleId, admin);
|
289
319
|
}
|
@@ -297,11 +327,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
297
327
|
* anyone to cancel any scheduled operation for such role.
|
298
328
|
*/
|
299
329
|
function _setRoleGuardian(uint64 roleId, uint64 guardian) internal virtual {
|
330
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
300
331
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
301
332
|
revert AccessManagerLockedRole(roleId);
|
302
333
|
}
|
303
334
|
|
304
|
-
_roles[roleId].guardian = guardian;
|
335
|
+
$._roles[roleId].guardian = guardian;
|
305
336
|
|
306
337
|
emit RoleGuardianChanged(roleId, guardian);
|
307
338
|
}
|
@@ -311,19 +342,20 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
311
342
|
*
|
312
343
|
* Emits a {RoleGrantDelayChanged} event.
|
313
344
|
*/
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
345
|
+
function _setGrantDelay(uint64 roleId, uint32 newDelay) internal virtual {
|
346
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
347
|
+
if (roleId == PUBLIC_ROLE) {
|
348
|
+
revert AccessManagerLockedRole(roleId);
|
349
|
+
}
|
318
350
|
|
319
|
-
|
320
|
-
|
351
|
+
uint48 effect;
|
352
|
+
($._roles[roleId].grantDelay, effect) = $._roles[roleId].grantDelay.withUpdate(newDelay, minSetback());
|
321
353
|
|
322
|
-
|
323
|
-
|
354
|
+
emit RoleGrantDelayChanged(roleId, newDelay, effect);
|
355
|
+
}
|
324
356
|
|
325
357
|
// ============================================= FUNCTION MANAGEMENT ==============================================
|
326
|
-
/// @inheritdoc
|
358
|
+
/// @inheritdoc IAccessManager
|
327
359
|
function setTargetFunctionRole(
|
328
360
|
address target,
|
329
361
|
bytes4[] calldata selectors,
|
@@ -340,13 +372,14 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
340
372
|
* Emits a {TargetFunctionRoleUpdated} event.
|
341
373
|
*/
|
342
374
|
function _setTargetFunctionRole(address target, bytes4 selector, uint64 roleId) internal virtual {
|
343
|
-
|
375
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
376
|
+
$._targets[target].allowedRoles[selector] = roleId;
|
344
377
|
emit TargetFunctionRoleUpdated(target, selector, roleId);
|
345
378
|
}
|
346
379
|
|
347
|
-
/// @inheritdoc
|
380
|
+
/// @inheritdoc IAccessManager
|
348
381
|
function setTargetAdminDelay(address target, uint32 newDelay) public virtual onlyAuthorized {
|
349
|
-
|
382
|
+
_setTargetAdminDelay(target, newDelay);
|
350
383
|
}
|
351
384
|
|
352
385
|
/**
|
@@ -354,15 +387,15 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
354
387
|
*
|
355
388
|
* Emits a {TargetAdminDelayUpdated} event.
|
356
389
|
*/
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
390
|
+
function _setTargetAdminDelay(address target, uint32 newDelay) internal virtual {
|
391
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
392
|
+
uint48 effect;
|
393
|
+
($._targets[target].adminDelay, effect) = $._targets[target].adminDelay.withUpdate(newDelay, minSetback());
|
394
|
+
emit TargetAdminDelayUpdated(target, newDelay, effect);
|
395
|
+
}
|
363
396
|
|
364
397
|
// =============================================== MODE MANAGEMENT ================================================
|
365
|
-
/// @inheritdoc
|
398
|
+
/// @inheritdoc IAccessManager
|
366
399
|
function setTargetClosed(address target, bool closed) public virtual onlyAuthorized {
|
367
400
|
_setTargetClosed(target, closed);
|
368
401
|
}
|
@@ -373,173 +406,181 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
373
406
|
* Emits a {TargetClosed} event.
|
374
407
|
*/
|
375
408
|
function _setTargetClosed(address target, bool closed) internal virtual {
|
409
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
376
410
|
if (target == address(this)) {
|
377
411
|
revert AccessManagerLockedAccount(target);
|
378
412
|
}
|
379
|
-
_targets[target].closed = closed;
|
413
|
+
$._targets[target].closed = closed;
|
380
414
|
emit TargetClosed(target, closed);
|
381
415
|
}
|
382
416
|
|
383
417
|
// ============================================== DELAYED OPERATIONS ==============================================
|
384
|
-
/// @inheritdoc
|
418
|
+
/// @inheritdoc IAccessManager
|
385
419
|
function getSchedule(bytes32 id) public view virtual returns (uint48) {
|
386
|
-
|
387
|
-
|
420
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
421
|
+
uint48 timepoint = $._schedules[id].timepoint;
|
422
|
+
return _isExpired(timepoint) ? 0 : timepoint;
|
388
423
|
}
|
389
424
|
|
390
|
-
/// @inheritdoc
|
425
|
+
/// @inheritdoc IAccessManager
|
391
426
|
function getNonce(bytes32 id) public view virtual returns (uint32) {
|
392
|
-
|
427
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
428
|
+
return $._schedules[id].nonce;
|
393
429
|
}
|
394
430
|
|
395
|
-
/// @inheritdoc
|
431
|
+
/// @inheritdoc IAccessManager
|
396
432
|
function schedule(
|
397
433
|
address target,
|
398
434
|
bytes calldata data,
|
399
435
|
uint48 when
|
400
436
|
) public virtual returns (bytes32 operationId, uint32 nonce) {
|
401
|
-
|
437
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
438
|
+
address caller = _msgSender();
|
402
439
|
|
403
|
-
//
|
404
|
-
|
440
|
+
// Fetch restrictions that apply to the caller on the targeted function
|
441
|
+
(, uint32 setback) = _canCallExtended(caller, target, data);
|
405
442
|
|
406
|
-
|
443
|
+
uint48 minWhen = Time.timestamp() + setback;
|
407
444
|
|
408
|
-
//
|
409
|
-
|
410
|
-
|
411
|
-
|
445
|
+
// if call with delay is not authorized, or if requested timing is too soon
|
446
|
+
if (setback == 0 || (when > 0 && when < minWhen)) {
|
447
|
+
revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
|
448
|
+
}
|
412
449
|
|
413
|
-
//
|
414
|
-
|
450
|
+
// Reuse variable due to stack too deep
|
451
|
+
when = uint48(Math.max(when, minWhen)); // cast is safe: both inputs are uint48
|
415
452
|
|
416
|
-
//
|
417
|
-
|
453
|
+
// If caller is authorised, schedule operation
|
454
|
+
operationId = hashOperation(caller, target, data);
|
418
455
|
|
419
|
-
|
456
|
+
_checkNotScheduled(operationId);
|
420
457
|
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
458
|
+
unchecked {
|
459
|
+
// It's not feasible to overflow the nonce in less than 1000 years
|
460
|
+
nonce = $._schedules[operationId].nonce + 1;
|
461
|
+
}
|
462
|
+
$._schedules[operationId].timepoint = when;
|
463
|
+
$._schedules[operationId].nonce = nonce;
|
464
|
+
emit OperationScheduled(operationId, nonce, when, caller, target, data);
|
428
465
|
|
429
|
-
//
|
466
|
+
// Using named return values because otherwise we get stack too deep
|
430
467
|
}
|
431
468
|
|
432
469
|
/**
|
433
470
|
* @dev Reverts if the operation is currently scheduled and has not expired.
|
434
471
|
* (Note: This function was introduced due to stack too deep errors in schedule.)
|
435
472
|
*/
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
473
|
+
function _checkNotScheduled(bytes32 operationId) private view {
|
474
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
475
|
+
uint48 prevTimepoint = $._schedules[operationId].timepoint;
|
476
|
+
if (prevTimepoint != 0 && !_isExpired(prevTimepoint)) {
|
477
|
+
revert AccessManagerAlreadyScheduled(operationId);
|
478
|
+
}
|
479
|
+
}
|
480
|
+
|
481
|
+
/// @inheritdoc IAccessManager
|
444
482
|
// Reentrancy is not an issue because permissions are checked on msg.sender. Additionally,
|
445
483
|
// _consumeScheduledOp guarantees a scheduled operation is only executed once.
|
446
484
|
// slither-disable-next-line reentrancy-no-eth
|
447
485
|
function execute(address target, bytes calldata data) public payable virtual returns (uint32) {
|
448
|
-
|
486
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
487
|
+
address caller = _msgSender();
|
449
488
|
|
450
|
-
//
|
451
|
-
|
489
|
+
// Fetch restrictions that apply to the caller on the targeted function
|
490
|
+
(bool immediate, uint32 setback) = _canCallExtended(caller, target, data);
|
452
491
|
|
453
|
-
//
|
454
|
-
|
455
|
-
|
456
|
-
|
492
|
+
// If caller is not authorised, revert
|
493
|
+
if (!immediate && setback == 0) {
|
494
|
+
revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
|
495
|
+
}
|
457
496
|
|
458
|
-
|
459
|
-
|
497
|
+
bytes32 operationId = hashOperation(caller, target, data);
|
498
|
+
uint32 nonce;
|
460
499
|
|
461
|
-
//
|
462
|
-
//
|
463
|
-
|
464
|
-
|
465
|
-
|
500
|
+
// If caller is authorised, check operation was scheduled early enough
|
501
|
+
// Consume an available schedule even if there is no currently enforced delay
|
502
|
+
if (setback != 0 || getSchedule(operationId) != 0) {
|
503
|
+
nonce = _consumeScheduledOp(operationId);
|
504
|
+
}
|
466
505
|
|
467
|
-
//
|
468
|
-
|
469
|
-
|
506
|
+
// Mark the target and selector as authorised
|
507
|
+
bytes32 executionIdBefore = $._executionId;
|
508
|
+
$._executionId = _hashExecutionId(target, _checkSelector(data));
|
470
509
|
|
471
|
-
//
|
472
|
-
|
510
|
+
// Perform call
|
511
|
+
Address.functionCallWithValue(target, data, msg.value);
|
473
512
|
|
474
|
-
//
|
475
|
-
|
513
|
+
// Reset execute identifier
|
514
|
+
$._executionId = executionIdBefore;
|
476
515
|
|
477
|
-
|
516
|
+
return nonce;
|
478
517
|
}
|
479
518
|
|
480
|
-
/// @inheritdoc
|
519
|
+
/// @inheritdoc IAccessManager
|
481
520
|
function cancel(address caller, address target, bytes calldata data) public virtual returns (uint32) {
|
482
|
-
|
483
|
-
|
521
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
522
|
+
address msgsender = _msgSender();
|
523
|
+
bytes4 selector = _checkSelector(data);
|
484
524
|
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
525
|
+
bytes32 operationId = hashOperation(caller, target, data);
|
526
|
+
if ($._schedules[operationId].timepoint == 0) {
|
527
|
+
revert AccessManagerNotScheduled(operationId);
|
528
|
+
} else if (caller != msgsender) {
|
529
|
+
// calls can only be canceled by the account that scheduled them, a global admin, or by a guardian of the required role.
|
530
|
+
(bool isAdmin, ) = hasRole(ADMIN_ROLE, msgsender);
|
531
|
+
(bool isGuardian, ) = hasRole(getRoleGuardian(getTargetFunctionRole(target, selector)), msgsender);
|
532
|
+
if (!isAdmin && !isGuardian) {
|
533
|
+
revert AccessManagerUnauthorizedCancel(msgsender, caller, target, selector);
|
534
|
+
}
|
535
|
+
}
|
496
536
|
|
497
|
-
|
498
|
-
|
499
|
-
|
537
|
+
delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
|
538
|
+
uint32 nonce = $._schedules[operationId].nonce;
|
539
|
+
emit OperationCanceled(operationId, nonce);
|
500
540
|
|
501
|
-
|
541
|
+
return nonce;
|
502
542
|
}
|
503
543
|
|
504
|
-
/// @inheritdoc
|
544
|
+
/// @inheritdoc IAccessManager
|
505
545
|
function consumeScheduledOp(address caller, bytes calldata data) public virtual {
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
}
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
527
|
-
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
535
|
-
|
536
|
-
|
546
|
+
address target = _msgSender();
|
547
|
+
if (IAccessManaged(target).isConsumingScheduledOp() != IAccessManaged.isConsumingScheduledOp.selector) {
|
548
|
+
revert AccessManagerUnauthorizedConsume(target);
|
549
|
+
}
|
550
|
+
_consumeScheduledOp(hashOperation(caller, target, data));
|
551
|
+
}
|
552
|
+
|
553
|
+
/**
|
554
|
+
* @dev Internal variant of {consumeScheduledOp} that operates on bytes32 operationId.
|
555
|
+
*
|
556
|
+
* Returns the nonce of the scheduled operation that is consumed.
|
557
|
+
*/
|
558
|
+
function _consumeScheduledOp(bytes32 operationId) internal virtual returns (uint32) {
|
559
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
560
|
+
uint48 timepoint = $._schedules[operationId].timepoint;
|
561
|
+
uint32 nonce = $._schedules[operationId].nonce;
|
562
|
+
|
563
|
+
if (timepoint == 0) {
|
564
|
+
revert AccessManagerNotScheduled(operationId);
|
565
|
+
} else if (timepoint > Time.timestamp()) {
|
566
|
+
revert AccessManagerNotReady(operationId);
|
567
|
+
} else if (_isExpired(timepoint)) {
|
568
|
+
revert AccessManagerExpired(operationId);
|
569
|
+
}
|
570
|
+
|
571
|
+
delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
|
572
|
+
emit OperationExecuted(operationId, nonce);
|
573
|
+
|
574
|
+
return nonce;
|
575
|
+
}
|
576
|
+
|
577
|
+
/// @inheritdoc IAccessManager
|
537
578
|
function hashOperation(address caller, address target, bytes calldata data) public view virtual returns (bytes32) {
|
538
579
|
return keccak256(abi.encode(caller, target, data));
|
539
580
|
}
|
540
581
|
|
541
582
|
// ==================================================== OTHERS ====================================================
|
542
|
-
/// @inheritdoc
|
583
|
+
/// @inheritdoc IAccessManager
|
543
584
|
function updateAuthority(address target, address newAuthority) public virtual onlyAuthorized {
|
544
585
|
IAccessManaged(target).setAuthority(newAuthority);
|
545
586
|
}
|
@@ -549,19 +590,26 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
549
590
|
* @dev Check if the current call is authorized according to admin logic.
|
550
591
|
*/
|
551
592
|
function _checkAuthorized() private {
|
552
|
-
address caller = _msgSender();
|
593
|
+
address caller = msg.sender;//_msgSender();
|
553
594
|
(bool immediate, uint32 delay) = _canCallSelf(caller, _msgData());
|
554
595
|
if (!immediate) {
|
555
596
|
if (delay == 0) {
|
556
597
|
(, uint64 requiredRole, ) = _getAdminRestrictions(_msgData());
|
557
598
|
revert AccessManagerUnauthorizedAccount(caller, requiredRole);
|
599
|
+
} else {
|
600
|
+
_consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
|
558
601
|
}
|
559
|
-
// else {
|
560
|
-
// _consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
|
561
|
-
// }
|
562
602
|
}
|
563
603
|
}
|
564
604
|
|
605
|
+
/**
|
606
|
+
* @dev Get the admin restrictions of a given function call based on the function and arguments involved.
|
607
|
+
*
|
608
|
+
* Returns:
|
609
|
+
* - bool restricted: does this data match a restricted operation
|
610
|
+
* - uint64: which role is this operation restricted to
|
611
|
+
* - uint32: minimum delay to enforce for that operation (max between operation's delay and admin's execution delay)
|
612
|
+
*/
|
565
613
|
/**
|
566
614
|
* @dev Get the admin restrictions of a given function call based on the function and arguments involved.
|
567
615
|
*
|
@@ -572,7 +620,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
572
620
|
*/
|
573
621
|
function _getAdminRestrictions(
|
574
622
|
bytes calldata data
|
575
|
-
)
|
623
|
+
) internal virtual view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
|
576
624
|
if (data.length < 4) {
|
577
625
|
return (false, 0, 0);
|
578
626
|
}
|
@@ -597,7 +645,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
597
645
|
selector == this.setTargetFunctionRole.selector
|
598
646
|
) {
|
599
647
|
// First argument is a target.
|
600
|
-
address target = abi.decode(data[0x04:0x24], (address))
|
648
|
+
address target = abi.decode(data[0x04:0x24], (address));// who is target???
|
601
649
|
uint32 delay = getTargetAdminDelay(target);
|
602
650
|
return (true, ADMIN_ROLE, delay);
|
603
651
|
}
|
@@ -641,11 +689,11 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
641
689
|
return (false, 0);
|
642
690
|
}
|
643
691
|
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
692
|
+
if (caller == address(this)) {
|
693
|
+
// Caller is AccessManager, this means the call was sent through {execute} and it already checked
|
694
|
+
// permissions. We verify that the call "identifier", which is set during {execute}, is correct.
|
695
|
+
return (_isExecuting(address(this), _checkSelector(data)), 0);
|
696
|
+
}
|
649
697
|
|
650
698
|
(bool enabled, uint64 roleId, uint32 operationDelay) = _getAdminRestrictions(data);
|
651
699
|
if (!enabled) {
|
@@ -658,35 +706,36 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
658
706
|
}
|
659
707
|
|
660
708
|
// downcast is safe because both options are uint32
|
661
|
-
delay =
|
709
|
+
delay = uint32(Math.max(operationDelay, executionDelay));
|
662
710
|
return (delay == 0, delay);
|
663
711
|
}
|
664
712
|
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
713
|
+
/**
|
714
|
+
* @dev Returns true if a call with `target` and `selector` is being executed via {executed}.
|
715
|
+
*/
|
716
|
+
function _isExecuting(address target, bytes4 selector) private view returns (bool) {
|
717
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
718
|
+
return $._executionId == _hashExecutionId(target, selector);
|
719
|
+
}
|
671
720
|
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
721
|
+
/**
|
722
|
+
* @dev Returns true if a schedule timepoint is past its expiration deadline.
|
723
|
+
*/
|
724
|
+
function _isExpired(uint48 timepoint) private view returns (bool) {
|
725
|
+
return timepoint + expiration() <= Time.timestamp();
|
726
|
+
}
|
678
727
|
|
679
728
|
/**
|
680
729
|
* @dev Extracts the selector from calldata. Panics if data is not at least 4 bytes
|
681
730
|
*/
|
682
|
-
function _checkSelector(bytes calldata data)
|
731
|
+
function _checkSelector(bytes calldata data) internal pure returns (bytes4) {
|
683
732
|
return bytes4(data[0:4]);
|
684
733
|
}
|
685
734
|
|
686
735
|
/**
|
687
736
|
* @dev Hashing function for execute protection
|
688
737
|
*/
|
689
|
-
|
690
|
-
|
691
|
-
|
738
|
+
function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
|
739
|
+
return keccak256(abi.encode(target, selector));
|
740
|
+
}
|
692
741
|
}
|