@etherisc/gif-next 0.0.2-b9e9dc3-713 → 0.0.2-bad23b9-954
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 +76 -14
- 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 +1349 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +818 -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 +814 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +778 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +567 -246
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +384 -155
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +431 -2918
- 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 +742 -298
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +591 -241
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +386 -76
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3642 -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/{AccessManagedSimple.sol/AccessManagedSimple.json → base/Cloneable.sol/Cloneable.json} +91 -2
- 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 +256 -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 +662 -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 +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +718 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1105 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +746 -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} +297 -358
- 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 +1065 -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 +1432 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +738 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +834 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1278 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +810 -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} +233 -200
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +759 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +707 -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} +259 -284
- 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/{instance/base/IService.sol/IService.json → product/IProductService.sol/IProductService.json} +132 -166
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1146 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +754 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +983 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +778 -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 +679 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +694 -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 +521 -59
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +438 -200
- 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 +828 -311
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +407 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +506 -352
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +339 -134
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +1292 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +137 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -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 +1715 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +1728 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +1806 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +1824 -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 +1490 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +792 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ServiceBase.sol/ServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +225 -167
- 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/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 +867 -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 +4 -0
- package/artifacts/contracts/{components/BaseComponent.sol/BaseComponent.json → shared/IService.sol/IService.json} +97 -78
- 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 +4 -0
- package/artifacts/contracts/{instance/base/ComponentServiceBase.sol/ComponentServiceBase.json → shared/Service.sol/Service.json} +193 -180
- 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 +993 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +444 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2045 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +777 -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 +1324 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +726 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2189 -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/type/NftIdSet.sol/LibNftIdSet.json +33 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +105 -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/{types → type}/RoleId.sol/RoleIdLib.json +5 -5
- 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/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- 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/type/Version.sol/VersionPartLib.json +49 -0
- package/contracts/distribution/Distribution.sol +261 -0
- package/contracts/distribution/DistributionService.sol +298 -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 +126 -0
- package/contracts/instance/IInstance.sol +70 -16
- package/contracts/instance/IInstanceService.sol +72 -8
- package/contracts/instance/Instance.sol +158 -358
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +175 -65
- package/contracts/instance/InstanceService.sol +318 -58
- package/contracts/instance/InstanceServiceManager.sol +12 -24
- package/contracts/instance/InstanceStore.sol +281 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/base/Cloneable.sol +51 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectManager.sol +82 -0
- package/contracts/instance/module/IAccess.sol +29 -21
- package/contracts/instance/module/IBundle.sol +8 -7
- 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 +277 -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 +453 -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 +301 -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 +79 -12
- package/contracts/registry/IRegistryService.sol +54 -20
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +397 -244
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +124 -298
- package/contracts/registry/RegistryServiceManager.sol +26 -32
- package/contracts/registry/ReleaseManager.sol +600 -0
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +315 -0
- package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +277 -223
- package/contracts/shared/AccessManagerExtended.sol +470 -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 +618 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +15 -9
- 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 +18 -0
- 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 +60 -89
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +131 -26
- package/contracts/shared/Registerable.sol +26 -40
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +77 -0
- 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 +149 -0
- package/contracts/staking/StakeManagerLib.sol +179 -0
- package/contracts/staking/Staking.sol +551 -0
- package/contracts/staking/StakingManager.sol +54 -0
- package/contracts/staking/StakingReader.sol +187 -0
- package/contracts/staking/StakingService.sol +406 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +572 -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/type/NftIdSet.sol +62 -0
- package/contracts/{types → type}/ObjectType.sol +32 -16
- 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 +146 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/{types → type}/StateId.sol +38 -4
- package/contracts/{types → type}/Timestamp.sol +23 -14
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +6 -2
- package/package.json +5 -5
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.json +0 -610
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.json +0 -267
- 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 -774
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -754
- 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/AccessManagerSimple.sol/AccessManagerSimple.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerSimple.sol/AccessManagerSimple.json +0 -1119
- 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/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/IService.sol/IService.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/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- 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/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/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- 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/NftIdSet.sol/LibNftIdSet.json +0 -10
- 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/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/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
- package/contracts/components/BaseComponent.sol +0 -86
- package/contracts/components/Distribution.sol +0 -166
- package/contracts/components/IBaseComponent.sol +0 -24
- package/contracts/components/IDistributionComponent.sol +0 -43
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -259
- package/contracts/components/Product.sol +0 -297
- 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 -114
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -49
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/IService.sol +0 -15
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/ServiceBase.sol +0 -44
- package/contracts/instance/module/ISetup.sol +0 -43
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ComponentOwnerService.sol +0 -317
- package/contracts/instance/service/IComponentOwnerService.sol +0 -20
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPoolService.sol +0 -37
- package/contracts/instance/service/IProductService.sol +0 -107
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- 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 -26
- 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/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -82
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,19 +1,29 @@
|
|
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 Initializable, ContextUpgradeable, MulticallUpgradeable, IAccessManager {
|
21
|
+
using Time for *;
|
6
22
|
|
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
23
|
// Structure that stores the details for a target contract.
|
14
24
|
struct TargetConfig {
|
15
25
|
mapping(bytes4 selector => uint64 roleId) allowedRoles;
|
16
|
-
|
26
|
+
Time.Delay adminDelay;
|
17
27
|
bool closed;
|
18
28
|
}
|
19
29
|
|
@@ -23,7 +33,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
23
33
|
// If this is either 0 or in the future, then the role permission is not available.
|
24
34
|
uint48 since;
|
25
35
|
// Delay for execution. Only applies to restricted() / execute() calls.
|
26
|
-
Delay delay;
|
36
|
+
Time.Delay delay;
|
27
37
|
}
|
28
38
|
|
29
39
|
// Structure that stores the details of a role.
|
@@ -35,7 +45,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
35
45
|
// Guardian who can cancel operations targeting functions that need this role.
|
36
46
|
uint64 guardian;
|
37
47
|
// Delay in which the role takes effect after being granted.
|
38
|
-
Delay grantDelay;
|
48
|
+
Time.Delay grantDelay;
|
39
49
|
}
|
40
50
|
|
41
51
|
// Structure that stores the details for a scheduled operation. This structure fits into a single slot.
|
@@ -49,13 +59,26 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
49
59
|
uint64 public constant ADMIN_ROLE = type(uint64).min; // 0
|
50
60
|
uint64 public constant PUBLIC_ROLE = type(uint64).max; // 2**64-1
|
51
61
|
|
52
|
-
|
53
|
-
|
54
|
-
|
62
|
+
/// @custom:storage-location erc7201:openzeppelin.storage.AccessManagerCustom
|
63
|
+
struct AccessManagerStorage {
|
64
|
+
mapping(address target => TargetConfig mode) _targets;
|
65
|
+
mapping(uint64 roleId => Role) _roles;
|
66
|
+
mapping(bytes32 operationId => Schedule) _schedules;
|
67
|
+
|
68
|
+
// Used to identify operations that are currently being executed via {execute}.
|
69
|
+
// This should be transient storage when supported by the EVM.
|
70
|
+
bytes32 _executionId;
|
71
|
+
}
|
72
|
+
|
73
|
+
// TODO compute address
|
74
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.AccessManagerCustom")) - 1)) & ~bytes32(uint256(0xff))
|
75
|
+
bytes32 private constant AccessManagerCustomStorageLocation = 0x77301bc69e8248c80abb894217605b71fa89ea6a9e8bdf359d9e8aa1dd62bf00;
|
55
76
|
|
56
|
-
|
57
|
-
|
58
|
-
|
77
|
+
function _getAccessManagerCustomStorage() private pure returns (AccessManagerStorage storage $) {
|
78
|
+
assembly {
|
79
|
+
$.slot := AccessManagerCustomStorageLocation
|
80
|
+
}
|
81
|
+
}
|
59
82
|
|
60
83
|
/**
|
61
84
|
* @dev Check that the caller is authorized to perform the operation, following the restrictions encoded in
|
@@ -66,7 +89,11 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
66
89
|
_;
|
67
90
|
}
|
68
91
|
|
69
|
-
|
92
|
+
function __AccessManagerCustom_init(address initialAdmin) internal onlyInitializing {
|
93
|
+
__AccessManagerCustom_init_unchained(initialAdmin);
|
94
|
+
}
|
95
|
+
|
96
|
+
function __AccessManagerCustom_init_unchained(address initialAdmin) internal onlyInitializing {
|
70
97
|
if (initialAdmin == address(0)) {
|
71
98
|
revert AccessManagerInvalidInitialAdmin(address(0));
|
72
99
|
}
|
@@ -76,7 +103,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
76
103
|
}
|
77
104
|
|
78
105
|
// =================================================== GETTERS ====================================================
|
79
|
-
/// @inheritdoc
|
106
|
+
/// @inheritdoc IAccessManager
|
80
107
|
function canCall(
|
81
108
|
address caller,
|
82
109
|
address target,
|
@@ -84,10 +111,10 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
84
111
|
) public view virtual returns (bool immediate, uint32 delay) {
|
85
112
|
if (isTargetClosed(target)) {
|
86
113
|
return (false, 0);
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
114
|
+
} else if (caller == address(this)) {
|
115
|
+
// Caller is AccessManager, this means the call was sent through {execute} and it already checked
|
116
|
+
// permissions. We verify that the call "identifier", which is set during {execute}, is correct.
|
117
|
+
return (_isExecuting(target, selector), 0);
|
91
118
|
} else {
|
92
119
|
uint64 roleId = getTargetFunctionRole(target, selector);
|
93
120
|
(bool isMember, uint32 currentDelay) = hasRole(roleId, caller);
|
@@ -95,60 +122,67 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
95
122
|
}
|
96
123
|
}
|
97
124
|
|
98
|
-
/// @inheritdoc
|
125
|
+
/// @inheritdoc IAccessManager
|
99
126
|
function expiration() public view virtual returns (uint32) {
|
100
127
|
return 1 weeks;
|
101
128
|
}
|
102
129
|
|
103
|
-
/// @inheritdoc
|
130
|
+
/// @inheritdoc IAccessManager
|
104
131
|
function minSetback() public view virtual returns (uint32) {
|
105
132
|
return 5 days;
|
106
133
|
}
|
107
134
|
|
108
|
-
/// @inheritdoc
|
135
|
+
/// @inheritdoc IAccessManager
|
109
136
|
function isTargetClosed(address target) public view virtual returns (bool) {
|
110
|
-
|
137
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
138
|
+
return $._targets[target].closed;
|
111
139
|
}
|
112
140
|
|
113
|
-
/// @inheritdoc
|
141
|
+
/// @inheritdoc IAccessManager
|
114
142
|
function getTargetFunctionRole(address target, bytes4 selector) public view virtual returns (uint64) {
|
115
|
-
|
143
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
144
|
+
return $._targets[target].allowedRoles[selector];
|
116
145
|
}
|
117
146
|
|
118
|
-
/// @inheritdoc
|
147
|
+
/// @inheritdoc IAccessManager
|
119
148
|
function getTargetAdminDelay(address target) public view virtual returns (uint32) {
|
120
|
-
|
149
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
150
|
+
return $._targets[target].adminDelay.get();
|
121
151
|
}
|
122
152
|
|
123
|
-
/// @inheritdoc
|
153
|
+
/// @inheritdoc IAccessManager
|
124
154
|
function getRoleAdmin(uint64 roleId) public view virtual returns (uint64) {
|
125
|
-
|
155
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
156
|
+
return $._roles[roleId].admin;
|
126
157
|
}
|
127
158
|
|
128
|
-
/// @inheritdoc
|
159
|
+
/// @inheritdoc IAccessManager
|
129
160
|
function getRoleGuardian(uint64 roleId) public view virtual returns (uint64) {
|
130
|
-
|
161
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
162
|
+
return $._roles[roleId].guardian;
|
131
163
|
}
|
132
164
|
|
133
|
-
/// @inheritdoc
|
165
|
+
/// @inheritdoc IAccessManager
|
134
166
|
function getRoleGrantDelay(uint64 roleId) public view virtual returns (uint32) {
|
135
|
-
|
167
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
168
|
+
return $._roles[roleId].grantDelay.get();
|
136
169
|
}
|
137
170
|
|
138
|
-
/// @inheritdoc
|
171
|
+
/// @inheritdoc IAccessManager
|
139
172
|
function getAccess(
|
140
173
|
uint64 roleId,
|
141
174
|
address account
|
142
175
|
) public view virtual returns (uint48 since, uint32 currentDelay, uint32 pendingDelay, uint48 effect) {
|
143
|
-
|
176
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
177
|
+
Access storage access = $._roles[roleId].members[account];
|
144
178
|
|
145
179
|
since = access.since;
|
146
|
-
|
180
|
+
(currentDelay, pendingDelay, effect) = access.delay.getFull();
|
147
181
|
|
148
182
|
return (since, currentDelay, pendingDelay, effect);
|
149
183
|
}
|
150
184
|
|
151
|
-
/// @inheritdoc
|
185
|
+
/// @inheritdoc IAccessManager
|
152
186
|
function hasRole(
|
153
187
|
uint64 roleId,
|
154
188
|
address account
|
@@ -157,13 +191,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
157
191
|
return (true, 0);
|
158
192
|
} else {
|
159
193
|
(uint48 hasRoleSince, uint32 currentDelay, , ) = getAccess(roleId, account);
|
160
|
-
|
161
|
-
return (hasRoleSince != 0 && hasRoleSince <= uint48(block.timestamp), currentDelay);
|
194
|
+
return (hasRoleSince != 0 && hasRoleSince <= Time.timestamp(), currentDelay);
|
162
195
|
}
|
163
196
|
}
|
164
197
|
|
165
198
|
// =============================================== ROLE MANAGEMENT ===============================================
|
166
|
-
/// @inheritdoc
|
199
|
+
/// @inheritdoc IAccessManager
|
167
200
|
function labelRole(uint64 roleId, string calldata label) public virtual onlyAuthorized {
|
168
201
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
169
202
|
revert AccessManagerLockedRole(roleId);
|
@@ -171,17 +204,17 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
171
204
|
emit RoleLabel(roleId, label);
|
172
205
|
}
|
173
206
|
|
174
|
-
/// @inheritdoc
|
207
|
+
/// @inheritdoc IAccessManager
|
175
208
|
function grantRole(uint64 roleId, address account, uint32 executionDelay) public virtual onlyAuthorized {
|
176
209
|
_grantRole(roleId, account, getRoleGrantDelay(roleId), executionDelay);
|
177
210
|
}
|
178
211
|
|
179
|
-
/// @inheritdoc
|
212
|
+
/// @inheritdoc IAccessManager
|
180
213
|
function revokeRole(uint64 roleId, address account) public virtual onlyAuthorized {
|
181
214
|
_revokeRole(roleId, account);
|
182
215
|
}
|
183
216
|
|
184
|
-
/// @inheritdoc
|
217
|
+
/// @inheritdoc IAccessManager
|
185
218
|
function renounceRole(uint64 roleId, address callerConfirmation) public virtual {
|
186
219
|
if (callerConfirmation != _msgSender()) {
|
187
220
|
revert AccessManagerBadConfirmation();
|
@@ -189,19 +222,19 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
189
222
|
_revokeRole(roleId, callerConfirmation);
|
190
223
|
}
|
191
224
|
|
192
|
-
/// @inheritdoc
|
225
|
+
/// @inheritdoc IAccessManager
|
193
226
|
function setRoleAdmin(uint64 roleId, uint64 admin) public virtual onlyAuthorized {
|
194
227
|
_setRoleAdmin(roleId, admin);
|
195
228
|
}
|
196
229
|
|
197
|
-
/// @inheritdoc
|
230
|
+
/// @inheritdoc IAccessManager
|
198
231
|
function setRoleGuardian(uint64 roleId, uint64 guardian) public virtual onlyAuthorized {
|
199
232
|
_setRoleGuardian(roleId, guardian);
|
200
233
|
}
|
201
234
|
|
202
|
-
/// @inheritdoc
|
235
|
+
/// @inheritdoc IAccessManager
|
203
236
|
function setGrantDelay(uint64 roleId, uint32 newDelay) public virtual onlyAuthorized {
|
204
|
-
|
237
|
+
_setGrantDelay(roleId, newDelay);
|
205
238
|
}
|
206
239
|
|
207
240
|
/**
|
@@ -215,25 +248,25 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
215
248
|
uint32 grantDelay,
|
216
249
|
uint32 executionDelay
|
217
250
|
) internal virtual returns (bool) {
|
251
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
218
252
|
if (roleId == PUBLIC_ROLE) {
|
219
253
|
revert AccessManagerLockedRole(roleId);
|
220
254
|
}
|
221
255
|
|
222
|
-
bool newMember = _roles[roleId].members[account].since == 0;
|
256
|
+
bool newMember = $._roles[roleId].members[account].since == 0;
|
223
257
|
uint48 since;
|
224
258
|
|
225
259
|
if (newMember) {
|
226
|
-
since =
|
227
|
-
_roles[roleId].members[account] = Access({since: since, delay:
|
228
|
-
}
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
// }
|
260
|
+
since = Time.timestamp() + grantDelay;
|
261
|
+
$._roles[roleId].members[account] = Access({since: since, delay: executionDelay.toDelay()});
|
262
|
+
} else {
|
263
|
+
// No setback here. Value can be reset by doing revoke + grant, effectively allowing the admin to perform
|
264
|
+
// any change to the execution delay within the duration of the role admin delay.
|
265
|
+
($._roles[roleId].members[account].delay, since) = $._roles[roleId].members[account].delay.withUpdate(
|
266
|
+
executionDelay,
|
267
|
+
0
|
268
|
+
);
|
269
|
+
}
|
237
270
|
|
238
271
|
emit RoleGranted(roleId, account, executionDelay, since, newMember);
|
239
272
|
return newMember;
|
@@ -246,15 +279,16 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
246
279
|
* Emits a {RoleRevoked} event if the account had the role.
|
247
280
|
*/
|
248
281
|
function _revokeRole(uint64 roleId, address account) internal virtual returns (bool) {
|
282
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
249
283
|
if (roleId == PUBLIC_ROLE) {
|
250
284
|
revert AccessManagerLockedRole(roleId);
|
251
285
|
}
|
252
286
|
|
253
|
-
if (_roles[roleId].members[account].since == 0) {
|
287
|
+
if ($._roles[roleId].members[account].since == 0) {
|
254
288
|
return false;
|
255
289
|
}
|
256
290
|
|
257
|
-
delete _roles[roleId].members[account];
|
291
|
+
delete $._roles[roleId].members[account];
|
258
292
|
|
259
293
|
emit RoleRevoked(roleId, account);
|
260
294
|
return true;
|
@@ -269,11 +303,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
269
303
|
* anyone to set grant or revoke such role.
|
270
304
|
*/
|
271
305
|
function _setRoleAdmin(uint64 roleId, uint64 admin) internal virtual {
|
306
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
272
307
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
273
308
|
revert AccessManagerLockedRole(roleId);
|
274
309
|
}
|
275
310
|
|
276
|
-
_roles[roleId].admin = admin;
|
311
|
+
$._roles[roleId].admin = admin;
|
277
312
|
|
278
313
|
emit RoleAdminChanged(roleId, admin);
|
279
314
|
}
|
@@ -287,11 +322,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
287
322
|
* anyone to cancel any scheduled operation for such role.
|
288
323
|
*/
|
289
324
|
function _setRoleGuardian(uint64 roleId, uint64 guardian) internal virtual {
|
325
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
290
326
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
291
327
|
revert AccessManagerLockedRole(roleId);
|
292
328
|
}
|
293
329
|
|
294
|
-
_roles[roleId].guardian = guardian;
|
330
|
+
$._roles[roleId].guardian = guardian;
|
295
331
|
|
296
332
|
emit RoleGuardianChanged(roleId, guardian);
|
297
333
|
}
|
@@ -301,19 +337,20 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
301
337
|
*
|
302
338
|
* Emits a {RoleGrantDelayChanged} event.
|
303
339
|
*/
|
304
|
-
|
305
|
-
|
306
|
-
|
307
|
-
|
340
|
+
function _setGrantDelay(uint64 roleId, uint32 newDelay) internal virtual {
|
341
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
342
|
+
if (roleId == PUBLIC_ROLE) {
|
343
|
+
revert AccessManagerLockedRole(roleId);
|
344
|
+
}
|
308
345
|
|
309
|
-
|
310
|
-
|
346
|
+
uint48 effect;
|
347
|
+
($._roles[roleId].grantDelay, effect) = $._roles[roleId].grantDelay.withUpdate(newDelay, minSetback());
|
311
348
|
|
312
|
-
|
313
|
-
|
349
|
+
emit RoleGrantDelayChanged(roleId, newDelay, effect);
|
350
|
+
}
|
314
351
|
|
315
352
|
// ============================================= FUNCTION MANAGEMENT ==============================================
|
316
|
-
/// @inheritdoc
|
353
|
+
/// @inheritdoc IAccessManager
|
317
354
|
function setTargetFunctionRole(
|
318
355
|
address target,
|
319
356
|
bytes4[] calldata selectors,
|
@@ -330,13 +367,14 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
330
367
|
* Emits a {TargetFunctionRoleUpdated} event.
|
331
368
|
*/
|
332
369
|
function _setTargetFunctionRole(address target, bytes4 selector, uint64 roleId) internal virtual {
|
333
|
-
|
370
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
371
|
+
$._targets[target].allowedRoles[selector] = roleId;
|
334
372
|
emit TargetFunctionRoleUpdated(target, selector, roleId);
|
335
373
|
}
|
336
374
|
|
337
|
-
/// @inheritdoc
|
375
|
+
/// @inheritdoc IAccessManager
|
338
376
|
function setTargetAdminDelay(address target, uint32 newDelay) public virtual onlyAuthorized {
|
339
|
-
|
377
|
+
_setTargetAdminDelay(target, newDelay);
|
340
378
|
}
|
341
379
|
|
342
380
|
/**
|
@@ -344,15 +382,15 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
344
382
|
*
|
345
383
|
* Emits a {TargetAdminDelayUpdated} event.
|
346
384
|
*/
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
385
|
+
function _setTargetAdminDelay(address target, uint32 newDelay) internal virtual {
|
386
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
387
|
+
uint48 effect;
|
388
|
+
($._targets[target].adminDelay, effect) = $._targets[target].adminDelay.withUpdate(newDelay, minSetback());
|
389
|
+
emit TargetAdminDelayUpdated(target, newDelay, effect);
|
390
|
+
}
|
353
391
|
|
354
392
|
// =============================================== MODE MANAGEMENT ================================================
|
355
|
-
/// @inheritdoc
|
393
|
+
/// @inheritdoc IAccessManager
|
356
394
|
function setTargetClosed(address target, bool closed) public virtual onlyAuthorized {
|
357
395
|
_setTargetClosed(target, closed);
|
358
396
|
}
|
@@ -363,173 +401,181 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
363
401
|
* Emits a {TargetClosed} event.
|
364
402
|
*/
|
365
403
|
function _setTargetClosed(address target, bool closed) internal virtual {
|
404
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
366
405
|
if (target == address(this)) {
|
367
406
|
revert AccessManagerLockedAccount(target);
|
368
407
|
}
|
369
|
-
_targets[target].closed = closed;
|
408
|
+
$._targets[target].closed = closed;
|
370
409
|
emit TargetClosed(target, closed);
|
371
410
|
}
|
372
411
|
|
373
412
|
// ============================================== DELAYED OPERATIONS ==============================================
|
374
|
-
/// @inheritdoc
|
413
|
+
/// @inheritdoc IAccessManager
|
375
414
|
function getSchedule(bytes32 id) public view virtual returns (uint48) {
|
376
|
-
|
377
|
-
|
415
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
416
|
+
uint48 timepoint = $._schedules[id].timepoint;
|
417
|
+
return _isExpired(timepoint) ? 0 : timepoint;
|
378
418
|
}
|
379
419
|
|
380
|
-
/// @inheritdoc
|
420
|
+
/// @inheritdoc IAccessManager
|
381
421
|
function getNonce(bytes32 id) public view virtual returns (uint32) {
|
382
|
-
|
422
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
423
|
+
return $._schedules[id].nonce;
|
383
424
|
}
|
384
425
|
|
385
|
-
/// @inheritdoc
|
426
|
+
/// @inheritdoc IAccessManager
|
386
427
|
function schedule(
|
387
428
|
address target,
|
388
429
|
bytes calldata data,
|
389
430
|
uint48 when
|
390
431
|
) public virtual returns (bytes32 operationId, uint32 nonce) {
|
391
|
-
|
432
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
433
|
+
address caller = _msgSender();
|
392
434
|
|
393
|
-
//
|
394
|
-
|
435
|
+
// Fetch restrictions that apply to the caller on the targeted function
|
436
|
+
(, uint32 setback) = _canCallExtended(caller, target, data);
|
395
437
|
|
396
|
-
|
438
|
+
uint48 minWhen = Time.timestamp() + setback;
|
397
439
|
|
398
|
-
//
|
399
|
-
|
400
|
-
|
401
|
-
|
440
|
+
// if call with delay is not authorized, or if requested timing is too soon
|
441
|
+
if (setback == 0 || (when > 0 && when < minWhen)) {
|
442
|
+
revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
|
443
|
+
}
|
402
444
|
|
403
|
-
//
|
404
|
-
|
445
|
+
// Reuse variable due to stack too deep
|
446
|
+
when = uint48(Math.max(when, minWhen)); // cast is safe: both inputs are uint48
|
405
447
|
|
406
|
-
//
|
407
|
-
|
448
|
+
// If caller is authorised, schedule operation
|
449
|
+
operationId = hashOperation(caller, target, data);
|
408
450
|
|
409
|
-
|
451
|
+
_checkNotScheduled(operationId);
|
410
452
|
|
411
|
-
|
412
|
-
|
413
|
-
|
414
|
-
|
415
|
-
|
416
|
-
|
417
|
-
|
453
|
+
unchecked {
|
454
|
+
// It's not feasible to overflow the nonce in less than 1000 years
|
455
|
+
nonce = $._schedules[operationId].nonce + 1;
|
456
|
+
}
|
457
|
+
$._schedules[operationId].timepoint = when;
|
458
|
+
$._schedules[operationId].nonce = nonce;
|
459
|
+
emit OperationScheduled(operationId, nonce, when, caller, target, data);
|
418
460
|
|
419
|
-
//
|
461
|
+
// Using named return values because otherwise we get stack too deep
|
420
462
|
}
|
421
463
|
|
422
464
|
/**
|
423
465
|
* @dev Reverts if the operation is currently scheduled and has not expired.
|
424
466
|
* (Note: This function was introduced due to stack too deep errors in schedule.)
|
425
467
|
*/
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
|
433
|
-
|
468
|
+
function _checkNotScheduled(bytes32 operationId) private view {
|
469
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
470
|
+
uint48 prevTimepoint = $._schedules[operationId].timepoint;
|
471
|
+
if (prevTimepoint != 0 && !_isExpired(prevTimepoint)) {
|
472
|
+
revert AccessManagerAlreadyScheduled(operationId);
|
473
|
+
}
|
474
|
+
}
|
475
|
+
|
476
|
+
/// @inheritdoc IAccessManager
|
434
477
|
// Reentrancy is not an issue because permissions are checked on msg.sender. Additionally,
|
435
478
|
// _consumeScheduledOp guarantees a scheduled operation is only executed once.
|
436
479
|
// slither-disable-next-line reentrancy-no-eth
|
437
480
|
function execute(address target, bytes calldata data) public payable virtual returns (uint32) {
|
438
|
-
|
481
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
482
|
+
address caller = _msgSender();
|
439
483
|
|
440
|
-
//
|
441
|
-
|
484
|
+
// Fetch restrictions that apply to the caller on the targeted function
|
485
|
+
(bool immediate, uint32 setback) = _canCallExtended(caller, target, data);
|
442
486
|
|
443
|
-
//
|
444
|
-
|
445
|
-
|
446
|
-
|
487
|
+
// If caller is not authorised, revert
|
488
|
+
if (!immediate && setback == 0) {
|
489
|
+
revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
|
490
|
+
}
|
447
491
|
|
448
|
-
|
449
|
-
|
492
|
+
bytes32 operationId = hashOperation(caller, target, data);
|
493
|
+
uint32 nonce;
|
450
494
|
|
451
|
-
//
|
452
|
-
//
|
453
|
-
|
454
|
-
|
455
|
-
|
495
|
+
// If caller is authorised, check operation was scheduled early enough
|
496
|
+
// Consume an available schedule even if there is no currently enforced delay
|
497
|
+
if (setback != 0 || getSchedule(operationId) != 0) {
|
498
|
+
nonce = _consumeScheduledOp(operationId);
|
499
|
+
}
|
456
500
|
|
457
|
-
//
|
458
|
-
|
459
|
-
|
501
|
+
// Mark the target and selector as authorised
|
502
|
+
bytes32 executionIdBefore = $._executionId;
|
503
|
+
$._executionId = _hashExecutionId(target, _checkSelector(data));
|
460
504
|
|
461
|
-
//
|
462
|
-
|
505
|
+
// Perform call
|
506
|
+
Address.functionCallWithValue(target, data, msg.value);
|
463
507
|
|
464
|
-
//
|
465
|
-
|
508
|
+
// Reset execute identifier
|
509
|
+
$._executionId = executionIdBefore;
|
466
510
|
|
467
|
-
|
511
|
+
return nonce;
|
468
512
|
}
|
469
513
|
|
470
|
-
/// @inheritdoc
|
514
|
+
/// @inheritdoc IAccessManager
|
471
515
|
function cancel(address caller, address target, bytes calldata data) public virtual returns (uint32) {
|
472
|
-
|
473
|
-
|
516
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
517
|
+
address msgsender = _msgSender();
|
518
|
+
bytes4 selector = _checkSelector(data);
|
474
519
|
|
475
|
-
|
476
|
-
|
477
|
-
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
|
483
|
-
|
484
|
-
|
485
|
-
|
520
|
+
bytes32 operationId = hashOperation(caller, target, data);
|
521
|
+
if ($._schedules[operationId].timepoint == 0) {
|
522
|
+
revert AccessManagerNotScheduled(operationId);
|
523
|
+
} else if (caller != msgsender) {
|
524
|
+
// calls can only be canceled by the account that scheduled them, a global admin, or by a guardian of the required role.
|
525
|
+
(bool isAdmin, ) = hasRole(ADMIN_ROLE, msgsender);
|
526
|
+
(bool isGuardian, ) = hasRole(getRoleGuardian(getTargetFunctionRole(target, selector)), msgsender);
|
527
|
+
if (!isAdmin && !isGuardian) {
|
528
|
+
revert AccessManagerUnauthorizedCancel(msgsender, caller, target, selector);
|
529
|
+
}
|
530
|
+
}
|
486
531
|
|
487
|
-
|
488
|
-
|
489
|
-
|
532
|
+
delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
|
533
|
+
uint32 nonce = $._schedules[operationId].nonce;
|
534
|
+
emit OperationCanceled(operationId, nonce);
|
490
535
|
|
491
|
-
|
536
|
+
return nonce;
|
492
537
|
}
|
493
538
|
|
494
|
-
/// @inheritdoc
|
539
|
+
/// @inheritdoc IAccessManager
|
495
540
|
function consumeScheduledOp(address caller, bytes calldata data) public virtual {
|
496
|
-
|
497
|
-
|
498
|
-
|
499
|
-
|
500
|
-
|
501
|
-
}
|
502
|
-
|
503
|
-
|
504
|
-
|
505
|
-
|
506
|
-
|
507
|
-
|
508
|
-
|
509
|
-
|
510
|
-
|
511
|
-
|
512
|
-
|
513
|
-
|
514
|
-
|
515
|
-
|
516
|
-
|
517
|
-
|
518
|
-
|
519
|
-
|
520
|
-
|
521
|
-
|
522
|
-
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
541
|
+
address target = _msgSender();
|
542
|
+
if (IAccessManaged(target).isConsumingScheduledOp() != IAccessManaged.isConsumingScheduledOp.selector) {
|
543
|
+
revert AccessManagerUnauthorizedConsume(target);
|
544
|
+
}
|
545
|
+
_consumeScheduledOp(hashOperation(caller, target, data));
|
546
|
+
}
|
547
|
+
|
548
|
+
/**
|
549
|
+
* @dev Internal variant of {consumeScheduledOp} that operates on bytes32 operationId.
|
550
|
+
*
|
551
|
+
* Returns the nonce of the scheduled operation that is consumed.
|
552
|
+
*/
|
553
|
+
function _consumeScheduledOp(bytes32 operationId) internal virtual returns (uint32) {
|
554
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
555
|
+
uint48 timepoint = $._schedules[operationId].timepoint;
|
556
|
+
uint32 nonce = $._schedules[operationId].nonce;
|
557
|
+
|
558
|
+
if (timepoint == 0) {
|
559
|
+
revert AccessManagerNotScheduled(operationId);
|
560
|
+
} else if (timepoint > Time.timestamp()) {
|
561
|
+
revert AccessManagerNotReady(operationId);
|
562
|
+
} else if (_isExpired(timepoint)) {
|
563
|
+
revert AccessManagerExpired(operationId);
|
564
|
+
}
|
565
|
+
|
566
|
+
delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
|
567
|
+
emit OperationExecuted(operationId, nonce);
|
568
|
+
|
569
|
+
return nonce;
|
570
|
+
}
|
571
|
+
|
572
|
+
/// @inheritdoc IAccessManager
|
527
573
|
function hashOperation(address caller, address target, bytes calldata data) public view virtual returns (bytes32) {
|
528
574
|
return keccak256(abi.encode(caller, target, data));
|
529
575
|
}
|
530
576
|
|
531
577
|
// ==================================================== OTHERS ====================================================
|
532
|
-
/// @inheritdoc
|
578
|
+
/// @inheritdoc IAccessManager
|
533
579
|
function updateAuthority(address target, address newAuthority) public virtual onlyAuthorized {
|
534
580
|
IAccessManaged(target).setAuthority(newAuthority);
|
535
581
|
}
|
@@ -539,19 +585,26 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
539
585
|
* @dev Check if the current call is authorized according to admin logic.
|
540
586
|
*/
|
541
587
|
function _checkAuthorized() private {
|
542
|
-
address caller = _msgSender();
|
588
|
+
address caller = msg.sender;//_msgSender();
|
543
589
|
(bool immediate, uint32 delay) = _canCallSelf(caller, _msgData());
|
544
590
|
if (!immediate) {
|
545
591
|
if (delay == 0) {
|
546
592
|
(, uint64 requiredRole, ) = _getAdminRestrictions(_msgData());
|
547
593
|
revert AccessManagerUnauthorizedAccount(caller, requiredRole);
|
594
|
+
} else {
|
595
|
+
_consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
|
548
596
|
}
|
549
|
-
// else {
|
550
|
-
// _consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
|
551
|
-
// }
|
552
597
|
}
|
553
598
|
}
|
554
599
|
|
600
|
+
/**
|
601
|
+
* @dev Get the admin restrictions of a given function call based on the function and arguments involved.
|
602
|
+
*
|
603
|
+
* Returns:
|
604
|
+
* - bool restricted: does this data match a restricted operation
|
605
|
+
* - uint64: which role is this operation restricted to
|
606
|
+
* - uint32: minimum delay to enforce for that operation (max between operation's delay and admin's execution delay)
|
607
|
+
*/
|
555
608
|
/**
|
556
609
|
* @dev Get the admin restrictions of a given function call based on the function and arguments involved.
|
557
610
|
*
|
@@ -562,7 +615,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
562
615
|
*/
|
563
616
|
function _getAdminRestrictions(
|
564
617
|
bytes calldata data
|
565
|
-
)
|
618
|
+
) internal virtual view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
|
566
619
|
if (data.length < 4) {
|
567
620
|
return (false, 0, 0);
|
568
621
|
}
|
@@ -587,7 +640,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
587
640
|
selector == this.setTargetFunctionRole.selector
|
588
641
|
) {
|
589
642
|
// First argument is a target.
|
590
|
-
address target = abi.decode(data[0x04:0x24], (address))
|
643
|
+
address target = abi.decode(data[0x04:0x24], (address));// who is target???
|
591
644
|
uint32 delay = getTargetAdminDelay(target);
|
592
645
|
return (true, ADMIN_ROLE, delay);
|
593
646
|
}
|
@@ -631,11 +684,11 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
631
684
|
return (false, 0);
|
632
685
|
}
|
633
686
|
|
634
|
-
|
635
|
-
|
636
|
-
|
637
|
-
|
638
|
-
|
687
|
+
if (caller == address(this)) {
|
688
|
+
// Caller is AccessManager, this means the call was sent through {execute} and it already checked
|
689
|
+
// permissions. We verify that the call "identifier", which is set during {execute}, is correct.
|
690
|
+
return (_isExecuting(address(this), _checkSelector(data)), 0);
|
691
|
+
}
|
639
692
|
|
640
693
|
(bool enabled, uint64 roleId, uint32 operationDelay) = _getAdminRestrictions(data);
|
641
694
|
if (!enabled) {
|
@@ -648,35 +701,36 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
648
701
|
}
|
649
702
|
|
650
703
|
// downcast is safe because both options are uint32
|
651
|
-
delay =
|
704
|
+
delay = uint32(Math.max(operationDelay, executionDelay));
|
652
705
|
return (delay == 0, delay);
|
653
706
|
}
|
654
707
|
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
708
|
+
/**
|
709
|
+
* @dev Returns true if a call with `target` and `selector` is being executed via {executed}.
|
710
|
+
*/
|
711
|
+
function _isExecuting(address target, bytes4 selector) private view returns (bool) {
|
712
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
713
|
+
return $._executionId == _hashExecutionId(target, selector);
|
714
|
+
}
|
661
715
|
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
|
667
|
-
|
716
|
+
/**
|
717
|
+
* @dev Returns true if a schedule timepoint is past its expiration deadline.
|
718
|
+
*/
|
719
|
+
function _isExpired(uint48 timepoint) private view returns (bool) {
|
720
|
+
return timepoint + expiration() <= Time.timestamp();
|
721
|
+
}
|
668
722
|
|
669
723
|
/**
|
670
724
|
* @dev Extracts the selector from calldata. Panics if data is not at least 4 bytes
|
671
725
|
*/
|
672
|
-
function _checkSelector(bytes calldata data)
|
726
|
+
function _checkSelector(bytes calldata data) internal pure returns (bytes4) {
|
673
727
|
return bytes4(data[0:4]);
|
674
728
|
}
|
675
729
|
|
676
730
|
/**
|
677
731
|
* @dev Hashing function for execute protection
|
678
732
|
*/
|
679
|
-
|
680
|
-
|
681
|
-
|
733
|
+
function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
|
734
|
+
return keccak256(abi.encode(target, selector));
|
735
|
+
}
|
682
736
|
}
|