@etherisc/gif-next 0.0.2-ef2f083-203 → 0.0.2-efd035d-094
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 +72 -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 +537 -309
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +343 -173
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +530 -3074
- 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 +726 -308
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +536 -310
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +360 -94
- 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 +718 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → oracle/IOracleService.sol/IOracleService.json} +269 -174
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +1133 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +868 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +714 -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/{components/BaseComponent.sol/BaseComponent.json → product/IProductService.sol/IProductService.json} +147 -87
- 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 +371 -218
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +448 -191
- 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 +577 -294
- 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 +515 -337
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +328 -144
- 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 +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +351 -100
- 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/ComponentServiceBase.sol/ComponentServiceBase.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +225 -180
- 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 +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +88 -176
- 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 +191 -165
- 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/{types → type}/Timestamp.sol/TimestampLib.json +39 -8
- 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 +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 +68 -19
- package/contracts/instance/IInstanceService.sol +64 -13
- package/contracts/instance/Instance.sol +157 -364
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +377 -0
- package/contracts/instance/InstanceReader.sol +172 -72
- package/contracts/instance/InstanceService.sol +301 -97
- 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 +16 -0
- package/contracts/oracle/IOracleService.sol +42 -0
- package/contracts/oracle/Oracle.sol +122 -0
- package/contracts/oracle/OracleService.sol +191 -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 +93 -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 +75 -45
- package/contracts/registry/IRegistryService.sol +52 -16
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +368 -281
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +124 -257
- package/contracts/registry/RegistryServiceManager.sol +24 -46
- package/contracts/registry/ReleaseManager.sol +599 -0
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +261 -57
- package/contracts/{instance/AccessManagerSimple.sol → shared/AccessManagerCustom.sol} +276 -232
- 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 +111 -0
- package/contracts/shared/ERC165.sol +15 -13
- 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 +8 -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 +35 -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 -41
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +47 -24
- 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 +30 -4
- package/contracts/{types → type}/Timestamp.sol +18 -13
- package/contracts/{types → type}/UFixed.sol +1 -0
- package/contracts/{types → type}/Version.sol +2 -1
- package/package.json +3 -3
- 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 -670
- 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 -204
- 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 -790
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -775
- 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 -1132
- 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/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 -641
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -428
- 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/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/shared/RegisterableUpgradable.sol/RegisterableUpgradable.dbg.json +0 -4
- package/artifacts/contracts/shared/RegisterableUpgradable.sol/RegisterableUpgradable.json +0 -442
- 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/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 -166
- package/contracts/components/IBaseComponent.sol +0 -25
- package/contracts/components/IDistributionComponent.sol +0 -46
- package/contracts/components/IPoolComponent.sol +0 -62
- package/contracts/components/IProductComponent.sol +0 -35
- package/contracts/components/Pool.sol +0 -258
- 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 -115
- package/contracts/instance/IAccessManagerSimple.sol +0 -391
- package/contracts/instance/InstanceAccessManager.sol +0 -288
- package/contracts/instance/base/ComponentServiceBase.sol +0 -39
- package/contracts/instance/base/IInstanceBase.sol +0 -23
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- 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/DistributionService.sol +0 -96
- package/contracts/instance/service/DistributionServiceManager.sol +0 -53
- 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/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/NftIdSet.sol +0 -60
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -88
- /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.
|
@@ -46,18 +56,29 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
46
56
|
uint32 nonce;
|
47
57
|
}
|
48
58
|
|
49
|
-
bool private _initialized;
|
50
|
-
|
51
59
|
uint64 public constant ADMIN_ROLE = type(uint64).min; // 0
|
52
60
|
uint64 public constant PUBLIC_ROLE = type(uint64).max; // 2**64-1
|
53
61
|
|
54
|
-
|
55
|
-
|
56
|
-
|
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;
|
57
76
|
|
58
|
-
|
59
|
-
|
60
|
-
|
77
|
+
function _getAccessManagerCustomStorage() private pure returns (AccessManagerStorage storage $) {
|
78
|
+
assembly {
|
79
|
+
$.slot := AccessManagerCustomStorageLocation
|
80
|
+
}
|
81
|
+
}
|
61
82
|
|
62
83
|
/**
|
63
84
|
* @dev Check that the caller is authorized to perform the operation, following the restrictions encoded in
|
@@ -68,25 +89,21 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
68
89
|
_;
|
69
90
|
}
|
70
91
|
|
71
|
-
|
72
|
-
|
92
|
+
function __AccessManagerCustom_init(address initialAdmin) internal onlyInitializing {
|
93
|
+
__AccessManagerCustom_init_unchained(initialAdmin);
|
73
94
|
}
|
74
|
-
|
75
|
-
function
|
76
|
-
require(!_initialized, "AccessManager: already initialized");
|
77
|
-
|
95
|
+
|
96
|
+
function __AccessManagerCustom_init_unchained(address initialAdmin) internal onlyInitializing {
|
78
97
|
if (initialAdmin == address(0)) {
|
79
98
|
revert AccessManagerInvalidInitialAdmin(address(0));
|
80
99
|
}
|
81
100
|
|
82
101
|
// admin is active immediately and without any execution delay.
|
83
102
|
_grantRole(ADMIN_ROLE, initialAdmin, 0, 0);
|
84
|
-
_initialized = true;
|
85
103
|
}
|
86
104
|
|
87
|
-
|
88
105
|
// =================================================== GETTERS ====================================================
|
89
|
-
/// @inheritdoc
|
106
|
+
/// @inheritdoc IAccessManager
|
90
107
|
function canCall(
|
91
108
|
address caller,
|
92
109
|
address target,
|
@@ -94,10 +111,10 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
94
111
|
) public view virtual returns (bool immediate, uint32 delay) {
|
95
112
|
if (isTargetClosed(target)) {
|
96
113
|
return (false, 0);
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
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);
|
101
118
|
} else {
|
102
119
|
uint64 roleId = getTargetFunctionRole(target, selector);
|
103
120
|
(bool isMember, uint32 currentDelay) = hasRole(roleId, caller);
|
@@ -105,60 +122,67 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
105
122
|
}
|
106
123
|
}
|
107
124
|
|
108
|
-
/// @inheritdoc
|
125
|
+
/// @inheritdoc IAccessManager
|
109
126
|
function expiration() public view virtual returns (uint32) {
|
110
127
|
return 1 weeks;
|
111
128
|
}
|
112
129
|
|
113
|
-
/// @inheritdoc
|
130
|
+
/// @inheritdoc IAccessManager
|
114
131
|
function minSetback() public view virtual returns (uint32) {
|
115
132
|
return 5 days;
|
116
133
|
}
|
117
134
|
|
118
|
-
/// @inheritdoc
|
135
|
+
/// @inheritdoc IAccessManager
|
119
136
|
function isTargetClosed(address target) public view virtual returns (bool) {
|
120
|
-
|
137
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
138
|
+
return $._targets[target].closed;
|
121
139
|
}
|
122
140
|
|
123
|
-
/// @inheritdoc
|
141
|
+
/// @inheritdoc IAccessManager
|
124
142
|
function getTargetFunctionRole(address target, bytes4 selector) public view virtual returns (uint64) {
|
125
|
-
|
143
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
144
|
+
return $._targets[target].allowedRoles[selector];
|
126
145
|
}
|
127
146
|
|
128
|
-
/// @inheritdoc
|
147
|
+
/// @inheritdoc IAccessManager
|
129
148
|
function getTargetAdminDelay(address target) public view virtual returns (uint32) {
|
130
|
-
|
149
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
150
|
+
return $._targets[target].adminDelay.get();
|
131
151
|
}
|
132
152
|
|
133
|
-
/// @inheritdoc
|
153
|
+
/// @inheritdoc IAccessManager
|
134
154
|
function getRoleAdmin(uint64 roleId) public view virtual returns (uint64) {
|
135
|
-
|
155
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
156
|
+
return $._roles[roleId].admin;
|
136
157
|
}
|
137
158
|
|
138
|
-
/// @inheritdoc
|
159
|
+
/// @inheritdoc IAccessManager
|
139
160
|
function getRoleGuardian(uint64 roleId) public view virtual returns (uint64) {
|
140
|
-
|
161
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
162
|
+
return $._roles[roleId].guardian;
|
141
163
|
}
|
142
164
|
|
143
|
-
/// @inheritdoc
|
165
|
+
/// @inheritdoc IAccessManager
|
144
166
|
function getRoleGrantDelay(uint64 roleId) public view virtual returns (uint32) {
|
145
|
-
|
167
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
168
|
+
return $._roles[roleId].grantDelay.get();
|
146
169
|
}
|
147
170
|
|
148
|
-
/// @inheritdoc
|
171
|
+
/// @inheritdoc IAccessManager
|
149
172
|
function getAccess(
|
150
173
|
uint64 roleId,
|
151
174
|
address account
|
152
175
|
) public view virtual returns (uint48 since, uint32 currentDelay, uint32 pendingDelay, uint48 effect) {
|
153
|
-
|
176
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
177
|
+
Access storage access = $._roles[roleId].members[account];
|
154
178
|
|
155
179
|
since = access.since;
|
156
|
-
|
180
|
+
(currentDelay, pendingDelay, effect) = access.delay.getFull();
|
157
181
|
|
158
182
|
return (since, currentDelay, pendingDelay, effect);
|
159
183
|
}
|
160
184
|
|
161
|
-
/// @inheritdoc
|
185
|
+
/// @inheritdoc IAccessManager
|
162
186
|
function hasRole(
|
163
187
|
uint64 roleId,
|
164
188
|
address account
|
@@ -167,13 +191,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
167
191
|
return (true, 0);
|
168
192
|
} else {
|
169
193
|
(uint48 hasRoleSince, uint32 currentDelay, , ) = getAccess(roleId, account);
|
170
|
-
|
171
|
-
return (hasRoleSince != 0 && hasRoleSince <= uint48(block.timestamp), currentDelay);
|
194
|
+
return (hasRoleSince != 0 && hasRoleSince <= Time.timestamp(), currentDelay);
|
172
195
|
}
|
173
196
|
}
|
174
197
|
|
175
198
|
// =============================================== ROLE MANAGEMENT ===============================================
|
176
|
-
/// @inheritdoc
|
199
|
+
/// @inheritdoc IAccessManager
|
177
200
|
function labelRole(uint64 roleId, string calldata label) public virtual onlyAuthorized {
|
178
201
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
179
202
|
revert AccessManagerLockedRole(roleId);
|
@@ -181,17 +204,17 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
181
204
|
emit RoleLabel(roleId, label);
|
182
205
|
}
|
183
206
|
|
184
|
-
/// @inheritdoc
|
207
|
+
/// @inheritdoc IAccessManager
|
185
208
|
function grantRole(uint64 roleId, address account, uint32 executionDelay) public virtual onlyAuthorized {
|
186
209
|
_grantRole(roleId, account, getRoleGrantDelay(roleId), executionDelay);
|
187
210
|
}
|
188
211
|
|
189
|
-
/// @inheritdoc
|
212
|
+
/// @inheritdoc IAccessManager
|
190
213
|
function revokeRole(uint64 roleId, address account) public virtual onlyAuthorized {
|
191
214
|
_revokeRole(roleId, account);
|
192
215
|
}
|
193
216
|
|
194
|
-
/// @inheritdoc
|
217
|
+
/// @inheritdoc IAccessManager
|
195
218
|
function renounceRole(uint64 roleId, address callerConfirmation) public virtual {
|
196
219
|
if (callerConfirmation != _msgSender()) {
|
197
220
|
revert AccessManagerBadConfirmation();
|
@@ -199,19 +222,19 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
199
222
|
_revokeRole(roleId, callerConfirmation);
|
200
223
|
}
|
201
224
|
|
202
|
-
/// @inheritdoc
|
225
|
+
/// @inheritdoc IAccessManager
|
203
226
|
function setRoleAdmin(uint64 roleId, uint64 admin) public virtual onlyAuthorized {
|
204
227
|
_setRoleAdmin(roleId, admin);
|
205
228
|
}
|
206
229
|
|
207
|
-
/// @inheritdoc
|
230
|
+
/// @inheritdoc IAccessManager
|
208
231
|
function setRoleGuardian(uint64 roleId, uint64 guardian) public virtual onlyAuthorized {
|
209
232
|
_setRoleGuardian(roleId, guardian);
|
210
233
|
}
|
211
234
|
|
212
|
-
/// @inheritdoc
|
235
|
+
/// @inheritdoc IAccessManager
|
213
236
|
function setGrantDelay(uint64 roleId, uint32 newDelay) public virtual onlyAuthorized {
|
214
|
-
|
237
|
+
_setGrantDelay(roleId, newDelay);
|
215
238
|
}
|
216
239
|
|
217
240
|
/**
|
@@ -225,25 +248,25 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
225
248
|
uint32 grantDelay,
|
226
249
|
uint32 executionDelay
|
227
250
|
) internal virtual returns (bool) {
|
251
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
228
252
|
if (roleId == PUBLIC_ROLE) {
|
229
253
|
revert AccessManagerLockedRole(roleId);
|
230
254
|
}
|
231
255
|
|
232
|
-
bool newMember = _roles[roleId].members[account].since == 0;
|
256
|
+
bool newMember = $._roles[roleId].members[account].since == 0;
|
233
257
|
uint48 since;
|
234
258
|
|
235
259
|
if (newMember) {
|
236
|
-
since =
|
237
|
-
_roles[roleId].members[account] = Access({since: since, delay:
|
238
|
-
}
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
// }
|
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
|
+
}
|
247
270
|
|
248
271
|
emit RoleGranted(roleId, account, executionDelay, since, newMember);
|
249
272
|
return newMember;
|
@@ -256,15 +279,16 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
256
279
|
* Emits a {RoleRevoked} event if the account had the role.
|
257
280
|
*/
|
258
281
|
function _revokeRole(uint64 roleId, address account) internal virtual returns (bool) {
|
282
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
259
283
|
if (roleId == PUBLIC_ROLE) {
|
260
284
|
revert AccessManagerLockedRole(roleId);
|
261
285
|
}
|
262
286
|
|
263
|
-
if (_roles[roleId].members[account].since == 0) {
|
287
|
+
if ($._roles[roleId].members[account].since == 0) {
|
264
288
|
return false;
|
265
289
|
}
|
266
290
|
|
267
|
-
delete _roles[roleId].members[account];
|
291
|
+
delete $._roles[roleId].members[account];
|
268
292
|
|
269
293
|
emit RoleRevoked(roleId, account);
|
270
294
|
return true;
|
@@ -279,11 +303,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
279
303
|
* anyone to set grant or revoke such role.
|
280
304
|
*/
|
281
305
|
function _setRoleAdmin(uint64 roleId, uint64 admin) internal virtual {
|
306
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
282
307
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
283
308
|
revert AccessManagerLockedRole(roleId);
|
284
309
|
}
|
285
310
|
|
286
|
-
_roles[roleId].admin = admin;
|
311
|
+
$._roles[roleId].admin = admin;
|
287
312
|
|
288
313
|
emit RoleAdminChanged(roleId, admin);
|
289
314
|
}
|
@@ -297,11 +322,12 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
297
322
|
* anyone to cancel any scheduled operation for such role.
|
298
323
|
*/
|
299
324
|
function _setRoleGuardian(uint64 roleId, uint64 guardian) internal virtual {
|
325
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
300
326
|
if (roleId == ADMIN_ROLE || roleId == PUBLIC_ROLE) {
|
301
327
|
revert AccessManagerLockedRole(roleId);
|
302
328
|
}
|
303
329
|
|
304
|
-
_roles[roleId].guardian = guardian;
|
330
|
+
$._roles[roleId].guardian = guardian;
|
305
331
|
|
306
332
|
emit RoleGuardianChanged(roleId, guardian);
|
307
333
|
}
|
@@ -311,19 +337,20 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
311
337
|
*
|
312
338
|
* Emits a {RoleGrantDelayChanged} event.
|
313
339
|
*/
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
340
|
+
function _setGrantDelay(uint64 roleId, uint32 newDelay) internal virtual {
|
341
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
342
|
+
if (roleId == PUBLIC_ROLE) {
|
343
|
+
revert AccessManagerLockedRole(roleId);
|
344
|
+
}
|
318
345
|
|
319
|
-
|
320
|
-
|
346
|
+
uint48 effect;
|
347
|
+
($._roles[roleId].grantDelay, effect) = $._roles[roleId].grantDelay.withUpdate(newDelay, minSetback());
|
321
348
|
|
322
|
-
|
323
|
-
|
349
|
+
emit RoleGrantDelayChanged(roleId, newDelay, effect);
|
350
|
+
}
|
324
351
|
|
325
352
|
// ============================================= FUNCTION MANAGEMENT ==============================================
|
326
|
-
/// @inheritdoc
|
353
|
+
/// @inheritdoc IAccessManager
|
327
354
|
function setTargetFunctionRole(
|
328
355
|
address target,
|
329
356
|
bytes4[] calldata selectors,
|
@@ -340,13 +367,14 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
340
367
|
* Emits a {TargetFunctionRoleUpdated} event.
|
341
368
|
*/
|
342
369
|
function _setTargetFunctionRole(address target, bytes4 selector, uint64 roleId) internal virtual {
|
343
|
-
|
370
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
371
|
+
$._targets[target].allowedRoles[selector] = roleId;
|
344
372
|
emit TargetFunctionRoleUpdated(target, selector, roleId);
|
345
373
|
}
|
346
374
|
|
347
|
-
/// @inheritdoc
|
375
|
+
/// @inheritdoc IAccessManager
|
348
376
|
function setTargetAdminDelay(address target, uint32 newDelay) public virtual onlyAuthorized {
|
349
|
-
|
377
|
+
_setTargetAdminDelay(target, newDelay);
|
350
378
|
}
|
351
379
|
|
352
380
|
/**
|
@@ -354,15 +382,15 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
354
382
|
*
|
355
383
|
* Emits a {TargetAdminDelayUpdated} event.
|
356
384
|
*/
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
361
|
-
|
362
|
-
|
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
|
+
}
|
363
391
|
|
364
392
|
// =============================================== MODE MANAGEMENT ================================================
|
365
|
-
/// @inheritdoc
|
393
|
+
/// @inheritdoc IAccessManager
|
366
394
|
function setTargetClosed(address target, bool closed) public virtual onlyAuthorized {
|
367
395
|
_setTargetClosed(target, closed);
|
368
396
|
}
|
@@ -373,173 +401,181 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
373
401
|
* Emits a {TargetClosed} event.
|
374
402
|
*/
|
375
403
|
function _setTargetClosed(address target, bool closed) internal virtual {
|
404
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
376
405
|
if (target == address(this)) {
|
377
406
|
revert AccessManagerLockedAccount(target);
|
378
407
|
}
|
379
|
-
_targets[target].closed = closed;
|
408
|
+
$._targets[target].closed = closed;
|
380
409
|
emit TargetClosed(target, closed);
|
381
410
|
}
|
382
411
|
|
383
412
|
// ============================================== DELAYED OPERATIONS ==============================================
|
384
|
-
/// @inheritdoc
|
413
|
+
/// @inheritdoc IAccessManager
|
385
414
|
function getSchedule(bytes32 id) public view virtual returns (uint48) {
|
386
|
-
|
387
|
-
|
415
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
416
|
+
uint48 timepoint = $._schedules[id].timepoint;
|
417
|
+
return _isExpired(timepoint) ? 0 : timepoint;
|
388
418
|
}
|
389
419
|
|
390
|
-
/// @inheritdoc
|
420
|
+
/// @inheritdoc IAccessManager
|
391
421
|
function getNonce(bytes32 id) public view virtual returns (uint32) {
|
392
|
-
|
422
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
423
|
+
return $._schedules[id].nonce;
|
393
424
|
}
|
394
425
|
|
395
|
-
/// @inheritdoc
|
426
|
+
/// @inheritdoc IAccessManager
|
396
427
|
function schedule(
|
397
428
|
address target,
|
398
429
|
bytes calldata data,
|
399
430
|
uint48 when
|
400
431
|
) public virtual returns (bytes32 operationId, uint32 nonce) {
|
401
|
-
|
432
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
433
|
+
address caller = _msgSender();
|
402
434
|
|
403
|
-
//
|
404
|
-
|
435
|
+
// Fetch restrictions that apply to the caller on the targeted function
|
436
|
+
(, uint32 setback) = _canCallExtended(caller, target, data);
|
405
437
|
|
406
|
-
|
438
|
+
uint48 minWhen = Time.timestamp() + setback;
|
407
439
|
|
408
|
-
//
|
409
|
-
|
410
|
-
|
411
|
-
|
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
|
+
}
|
412
444
|
|
413
|
-
//
|
414
|
-
|
445
|
+
// Reuse variable due to stack too deep
|
446
|
+
when = uint48(Math.max(when, minWhen)); // cast is safe: both inputs are uint48
|
415
447
|
|
416
|
-
//
|
417
|
-
|
448
|
+
// If caller is authorised, schedule operation
|
449
|
+
operationId = hashOperation(caller, target, data);
|
418
450
|
|
419
|
-
|
451
|
+
_checkNotScheduled(operationId);
|
420
452
|
|
421
|
-
|
422
|
-
|
423
|
-
|
424
|
-
|
425
|
-
|
426
|
-
|
427
|
-
|
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);
|
428
460
|
|
429
|
-
//
|
461
|
+
// Using named return values because otherwise we get stack too deep
|
430
462
|
}
|
431
463
|
|
432
464
|
/**
|
433
465
|
* @dev Reverts if the operation is currently scheduled and has not expired.
|
434
466
|
* (Note: This function was introduced due to stack too deep errors in schedule.)
|
435
467
|
*/
|
436
|
-
|
437
|
-
|
438
|
-
|
439
|
-
|
440
|
-
|
441
|
-
|
442
|
-
|
443
|
-
|
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
|
444
477
|
// Reentrancy is not an issue because permissions are checked on msg.sender. Additionally,
|
445
478
|
// _consumeScheduledOp guarantees a scheduled operation is only executed once.
|
446
479
|
// slither-disable-next-line reentrancy-no-eth
|
447
480
|
function execute(address target, bytes calldata data) public payable virtual returns (uint32) {
|
448
|
-
|
481
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
482
|
+
address caller = _msgSender();
|
449
483
|
|
450
|
-
//
|
451
|
-
|
484
|
+
// Fetch restrictions that apply to the caller on the targeted function
|
485
|
+
(bool immediate, uint32 setback) = _canCallExtended(caller, target, data);
|
452
486
|
|
453
|
-
//
|
454
|
-
|
455
|
-
|
456
|
-
|
487
|
+
// If caller is not authorised, revert
|
488
|
+
if (!immediate && setback == 0) {
|
489
|
+
revert AccessManagerUnauthorizedCall(caller, target, _checkSelector(data));
|
490
|
+
}
|
457
491
|
|
458
|
-
|
459
|
-
|
492
|
+
bytes32 operationId = hashOperation(caller, target, data);
|
493
|
+
uint32 nonce;
|
460
494
|
|
461
|
-
//
|
462
|
-
//
|
463
|
-
|
464
|
-
|
465
|
-
|
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
|
+
}
|
466
500
|
|
467
|
-
//
|
468
|
-
|
469
|
-
|
501
|
+
// Mark the target and selector as authorised
|
502
|
+
bytes32 executionIdBefore = $._executionId;
|
503
|
+
$._executionId = _hashExecutionId(target, _checkSelector(data));
|
470
504
|
|
471
|
-
//
|
472
|
-
|
505
|
+
// Perform call
|
506
|
+
Address.functionCallWithValue(target, data, msg.value);
|
473
507
|
|
474
|
-
//
|
475
|
-
|
508
|
+
// Reset execute identifier
|
509
|
+
$._executionId = executionIdBefore;
|
476
510
|
|
477
|
-
|
511
|
+
return nonce;
|
478
512
|
}
|
479
513
|
|
480
|
-
/// @inheritdoc
|
514
|
+
/// @inheritdoc IAccessManager
|
481
515
|
function cancel(address caller, address target, bytes calldata data) public virtual returns (uint32) {
|
482
|
-
|
483
|
-
|
516
|
+
AccessManagerStorage storage $ = _getAccessManagerCustomStorage();
|
517
|
+
address msgsender = _msgSender();
|
518
|
+
bytes4 selector = _checkSelector(data);
|
484
519
|
|
485
|
-
|
486
|
-
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
|
491
|
-
|
492
|
-
|
493
|
-
|
494
|
-
|
495
|
-
|
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
|
+
}
|
496
531
|
|
497
|
-
|
498
|
-
|
499
|
-
|
532
|
+
delete $._schedules[operationId].timepoint; // reset the timepoint, keep the nonce
|
533
|
+
uint32 nonce = $._schedules[operationId].nonce;
|
534
|
+
emit OperationCanceled(operationId, nonce);
|
500
535
|
|
501
|
-
|
536
|
+
return nonce;
|
502
537
|
}
|
503
538
|
|
504
|
-
/// @inheritdoc
|
539
|
+
/// @inheritdoc IAccessManager
|
505
540
|
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
|
-
|
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
|
537
573
|
function hashOperation(address caller, address target, bytes calldata data) public view virtual returns (bytes32) {
|
538
574
|
return keccak256(abi.encode(caller, target, data));
|
539
575
|
}
|
540
576
|
|
541
577
|
// ==================================================== OTHERS ====================================================
|
542
|
-
/// @inheritdoc
|
578
|
+
/// @inheritdoc IAccessManager
|
543
579
|
function updateAuthority(address target, address newAuthority) public virtual onlyAuthorized {
|
544
580
|
IAccessManaged(target).setAuthority(newAuthority);
|
545
581
|
}
|
@@ -549,19 +585,26 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
549
585
|
* @dev Check if the current call is authorized according to admin logic.
|
550
586
|
*/
|
551
587
|
function _checkAuthorized() private {
|
552
|
-
address caller = _msgSender();
|
588
|
+
address caller = msg.sender;//_msgSender();
|
553
589
|
(bool immediate, uint32 delay) = _canCallSelf(caller, _msgData());
|
554
590
|
if (!immediate) {
|
555
591
|
if (delay == 0) {
|
556
592
|
(, uint64 requiredRole, ) = _getAdminRestrictions(_msgData());
|
557
593
|
revert AccessManagerUnauthorizedAccount(caller, requiredRole);
|
594
|
+
} else {
|
595
|
+
_consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
|
558
596
|
}
|
559
|
-
// else {
|
560
|
-
// _consumeScheduledOp(hashOperation(caller, address(this), _msgData()));
|
561
|
-
// }
|
562
597
|
}
|
563
598
|
}
|
564
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
|
+
*/
|
565
608
|
/**
|
566
609
|
* @dev Get the admin restrictions of a given function call based on the function and arguments involved.
|
567
610
|
*
|
@@ -572,7 +615,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
572
615
|
*/
|
573
616
|
function _getAdminRestrictions(
|
574
617
|
bytes calldata data
|
575
|
-
)
|
618
|
+
) internal virtual view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
|
576
619
|
if (data.length < 4) {
|
577
620
|
return (false, 0, 0);
|
578
621
|
}
|
@@ -597,7 +640,7 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
597
640
|
selector == this.setTargetFunctionRole.selector
|
598
641
|
) {
|
599
642
|
// First argument is a target.
|
600
|
-
address target = abi.decode(data[0x04:0x24], (address))
|
643
|
+
address target = abi.decode(data[0x04:0x24], (address));// who is target???
|
601
644
|
uint32 delay = getTargetAdminDelay(target);
|
602
645
|
return (true, ADMIN_ROLE, delay);
|
603
646
|
}
|
@@ -641,11 +684,11 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
641
684
|
return (false, 0);
|
642
685
|
}
|
643
686
|
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
648
|
-
|
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
|
+
}
|
649
692
|
|
650
693
|
(bool enabled, uint64 roleId, uint32 operationDelay) = _getAdminRestrictions(data);
|
651
694
|
if (!enabled) {
|
@@ -658,35 +701,36 @@ contract AccessManagerSimple is Context, IAccessManagerSimple {
|
|
658
701
|
}
|
659
702
|
|
660
703
|
// downcast is safe because both options are uint32
|
661
|
-
delay =
|
704
|
+
delay = uint32(Math.max(operationDelay, executionDelay));
|
662
705
|
return (delay == 0, delay);
|
663
706
|
}
|
664
707
|
|
665
|
-
|
666
|
-
|
667
|
-
|
668
|
-
|
669
|
-
|
670
|
-
|
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
|
+
}
|
671
715
|
|
672
|
-
|
673
|
-
|
674
|
-
|
675
|
-
|
676
|
-
|
677
|
-
|
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
|
+
}
|
678
722
|
|
679
723
|
/**
|
680
724
|
* @dev Extracts the selector from calldata. Panics if data is not at least 4 bytes
|
681
725
|
*/
|
682
|
-
function _checkSelector(bytes calldata data)
|
726
|
+
function _checkSelector(bytes calldata data) internal pure returns (bytes4) {
|
683
727
|
return bytes4(data[0:4]);
|
684
728
|
}
|
685
729
|
|
686
730
|
/**
|
687
731
|
* @dev Hashing function for execute protection
|
688
732
|
*/
|
689
|
-
|
690
|
-
|
691
|
-
|
733
|
+
function _hashExecutionId(address target, bytes4 selector) private pure returns (bytes32) {
|
734
|
+
return keccak256(abi.encode(target, selector));
|
735
|
+
}
|
692
736
|
}
|