@etherisc/gif-next 0.0.2-bb1081a-994 → 0.0.2-bc0a9a8-101
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 +10 -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/{components/IPoolComponent.sol/IPoolComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +398 -276
- 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 +1 -1
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +68 -54
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +268 -1576
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +296 -211
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +455 -2542
- 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 +204 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +609 -425
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +464 -375
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +368 -107
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3458 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +6 -1
- 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 +25 -150
- 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/{ISetup.sol/ISetup.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/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 → pool}/IBundleService.sol/IBundleService.json +256 -346
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/IPoolComponent.sol/IPoolComponent.json} +448 -290
- 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/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +203 -235
- 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/{instance/service → product}/IPolicyService.sol/IPolicyService.json +244 -303
- 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} +263 -221
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/IProductComponent.sol/IProductComponent.json} +370 -281
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IDistributionService.sol/IDistributionService.json → product/IProductService.sol/IProductService.json} +116 -170
- 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/{components/IProductComponent.sol/IProductComponent.json → product/Product.sol/Product.json} +822 -220
- 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 +203 -21
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +349 -220
- 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 +440 -36
- 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 +480 -265
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +340 -95
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +834 -89
- 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 +349 -82
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +4 -0
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +1193 -0
- 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/{components/Distribution.sol/Distribution.json → shared/Component.sol/Component.json} +361 -271
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1475 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +788 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{components/IComponent.sol/IComponent.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +209 -185
- 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/{components/Component.sol/Component.json → shared/IComponent.sol/IComponent.json} +205 -187
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +860 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +221 -211
- 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 -30
- 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 +75 -158
- 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 +108 -35
- 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 -75
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +131 -60
- 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 +178 -160
- 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/{types → type}/NftIdSet.sol/LibNftIdSet.json +3 -3
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/ObjectType.sol/ObjectTypeLib.json +3 -3
- 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/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 +15 -14
- package/contracts/instance/IInstance.sol +53 -46
- package/contracts/instance/IInstanceService.sol +58 -17
- package/contracts/instance/Instance.sol +145 -179
- package/contracts/instance/InstanceAdmin.sol +331 -0
- package/contracts/instance/InstanceAuthorizationsLib.sol +349 -0
- package/contracts/instance/InstanceReader.sol +135 -63
- package/contracts/instance/InstanceService.sol +250 -250
- package/contracts/instance/InstanceServiceManager.sol +12 -22
- package/contracts/instance/InstanceStore.sol +260 -0
- package/contracts/instance/base/BalanceStore.sol +118 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +8 -3
- package/contracts/instance/{ObjectManager.sol → base/ObjectManager.sol} +12 -14
- package/contracts/instance/module/IAccess.sol +19 -21
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +52 -0
- package/contracts/instance/module/IDistribution.sol +7 -4
- package/contracts/instance/module/IPolicy.sol +56 -17
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- 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 +16 -1
- package/contracts/registry/IRegistry.sol +47 -21
- package/contracts/registry/IRegistryService.sol +42 -38
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +220 -96
- package/contracts/registry/RegistryAdmin.sol +237 -0
- package/contracts/registry/RegistryService.sol +108 -104
- package/contracts/registry/RegistryServiceManager.sol +22 -26
- package/contracts/registry/ReleaseManager.sol +458 -191
- package/contracts/registry/ServiceAuthorizationsLib.sol +173 -0
- package/contracts/registry/TokenRegistry.sol +263 -60
- package/contracts/shared/AccessManagerCustom.sol +736 -0
- 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 +278 -0
- package/contracts/shared/ComponentService.sol +596 -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 +91 -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 +3 -3
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +7 -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 +28 -7
- package/contracts/shared/NftIdSetManager.sol +65 -0
- package/contracts/shared/NftOwnable.sol +59 -91
- package/contracts/shared/PolicyHolder.sol +102 -0
- package/contracts/shared/ProxyManager.sol +131 -26
- package/contracts/shared/Registerable.sol +19 -30
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +38 -21
- 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/{types → type}/NftIdSet.sol +2 -2
- package/contracts/{types → type}/ObjectType.sol +26 -9
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +5 -1
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +143 -0
- package/contracts/type/Seconds.sol +81 -0
- package/contracts/{types → type}/StateId.sol +24 -6
- 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 +5 -5
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- 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/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1034
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.json +0 -603
- 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/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1167
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -449
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -772
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.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/instance/service/PolicyService.sol/PolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyService.sol/PolicyService.json +0 -1227
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -505
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -806
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -437
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -856
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -437
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- 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 -313
- 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 -608
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -286
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/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/Component.sol +0 -247
- package/contracts/components/Distribution.sol +0 -143
- package/contracts/components/IComponent.sol +0 -50
- package/contracts/components/IDistributionComponent.sol +0 -47
- package/contracts/components/IPoolComponent.sol +0 -77
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -257
- package/contracts/components/Product.sol +0 -263
- 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/InstanceAccessManager.sol +0 -298
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/module/ISetup.sol +0 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/BundleService.sol +0 -299
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -106
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -54
- package/contracts/instance/service/IDistributionService.sol +0 -12
- package/contracts/instance/service/IPolicyService.sol +0 -94
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -519
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -109
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -232
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- 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 -25
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/test/Usdc.sol +0 -26
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/RoleId.sol +0 -90
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -0,0 +1,470 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
|
5
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
6
|
+
import {IAccessManaged} from "@openzeppelin/contracts/access/manager/IAccessManaged.sol";
|
7
|
+
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
8
|
+
|
9
|
+
import {IAccessManagerExtended} from "./IAccessManagerExtended.sol";
|
10
|
+
import {AccessManagerCustom} from "./AccessManagerCustom.sol";
|
11
|
+
|
12
|
+
import {Timestamp, TimestampLib} from "../type/Timestamp.sol";
|
13
|
+
|
14
|
+
|
15
|
+
// IMPORTANT: check role/target for existance before using return value of getter
|
16
|
+
contract AccessManagerExtended is AccessManagerCustom, IAccessManagerExtended {
|
17
|
+
using EnumerableSet for EnumerableSet.AddressSet;
|
18
|
+
|
19
|
+
string constant private ADMIN_ROLE_NAME = "Admin";
|
20
|
+
string constant private PUBLIC_ROLE_NAME = "Public";
|
21
|
+
|
22
|
+
/// @custom:storage-location erc7201:etherisc.storage.AccessManagerExtended
|
23
|
+
struct AccessManagerExtendedStorage {
|
24
|
+
mapping(address target => TargetInfo info) _targetInfo;
|
25
|
+
mapping(string name => address target) _targetAddressForName;
|
26
|
+
address[] _targetAddresses;
|
27
|
+
|
28
|
+
mapping(uint64 roleId => RoleInfo) _roleInfo;
|
29
|
+
mapping(uint64 roleId => EnumerableSet.AddressSet roleMembers) _roleMembers;
|
30
|
+
mapping(string => uint64) _roleIdForName;
|
31
|
+
uint64[] _roleIds;
|
32
|
+
}
|
33
|
+
|
34
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.AccessManagerExtended")) - 1)) & ~bytes32(uint256(0xff));
|
35
|
+
bytes32 private constant AccessManagerExtendedStorageLocation = 0x5bf600af9ae77c7c374fa7aa6d8057fe6114c74f945a04f4a14ca05a62876900;
|
36
|
+
|
37
|
+
function _getAccessManagerExtendedStorage() private pure returns (AccessManagerExtendedStorage storage $) {
|
38
|
+
assembly {
|
39
|
+
$.slot := AccessManagerExtendedStorageLocation
|
40
|
+
}
|
41
|
+
}
|
42
|
+
|
43
|
+
modifier roleExists(uint64 roleId) {
|
44
|
+
if(!isRoleExists(roleId)) {
|
45
|
+
revert AccessManagerRoleIdNotExists(roleId);
|
46
|
+
}
|
47
|
+
_;
|
48
|
+
}
|
49
|
+
|
50
|
+
modifier targetExists(address target) {
|
51
|
+
if(!isTargetExists(target)) {
|
52
|
+
revert AccessManagerTargetNotExists(target);
|
53
|
+
}
|
54
|
+
_;
|
55
|
+
}
|
56
|
+
|
57
|
+
function __AccessManagerExtended_init(address initialAdmin) internal onlyInitializing {
|
58
|
+
|
59
|
+
_createRole(ADMIN_ROLE, ADMIN_ROLE_NAME);//, IAccess.Type.Core);
|
60
|
+
_createRole(PUBLIC_ROLE, PUBLIC_ROLE_NAME);//, IAccess.Type.Core);
|
61
|
+
|
62
|
+
|
63
|
+
// grants ADMIN role to initialAdmin
|
64
|
+
__AccessManagerCustom_init(initialAdmin);
|
65
|
+
}
|
66
|
+
|
67
|
+
// =================================================== GETTERS ====================================================
|
68
|
+
|
69
|
+
function isTargetExists(address target) public view returns (bool) {
|
70
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
71
|
+
return $._targetInfo[target].createdAt.gtz();
|
72
|
+
}
|
73
|
+
|
74
|
+
function isTargetNameExists(string memory name) public view returns (bool) {
|
75
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
76
|
+
return $._targetAddressForName[name] != address(0);
|
77
|
+
}
|
78
|
+
|
79
|
+
function getTargetAddress(string memory name) public view returns(address targetAddress) {
|
80
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
81
|
+
return $._targetAddressForName[name];
|
82
|
+
}
|
83
|
+
|
84
|
+
function getTargetInfo(address target) public view returns (TargetInfo memory) {
|
85
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
86
|
+
return $._targetInfo[target];
|
87
|
+
}
|
88
|
+
|
89
|
+
function getRoleInfo(uint64 roleId) public view returns (RoleInfo memory) {
|
90
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
91
|
+
return $._roleInfo[roleId];
|
92
|
+
}
|
93
|
+
|
94
|
+
function getRoleMembers(uint64 roleId) public view returns (uint256 numberOfMembers) {
|
95
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
96
|
+
return EnumerableSet.length($._roleMembers[roleId]);
|
97
|
+
}
|
98
|
+
|
99
|
+
function getRoleMember(uint64 roleId, uint256 idx) public view returns (address member) {
|
100
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
101
|
+
return EnumerableSet.at($._roleMembers[roleId], idx);
|
102
|
+
}
|
103
|
+
|
104
|
+
function getRoleId(uint256 idx) public view returns (uint64 roleId) {
|
105
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
106
|
+
return $._roleIds[idx];
|
107
|
+
}
|
108
|
+
|
109
|
+
// TODO returns ADMIN_ROLE id for non existent name
|
110
|
+
function getRoleId(string memory name) public view returns (uint64 roleId) {
|
111
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
112
|
+
return $._roleIdForName[name];
|
113
|
+
}
|
114
|
+
|
115
|
+
function getRoles() public view returns (uint256 numberOfRoles) {
|
116
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
117
|
+
return $._roleIds.length;
|
118
|
+
}
|
119
|
+
|
120
|
+
function isRoleExists(uint64 roleId) public view returns (bool exists) {
|
121
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
122
|
+
return $._roleInfo[roleId].createdAt.gtz();
|
123
|
+
}
|
124
|
+
|
125
|
+
function isRoleNameExists(string memory name) public view returns (bool exists) {
|
126
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
127
|
+
return $._roleIdForName[name] != 0;
|
128
|
+
}
|
129
|
+
|
130
|
+
// =============================================== ROLE MANAGEMENT ===============================================
|
131
|
+
|
132
|
+
/// inheritdoc IAccessManagerExtended
|
133
|
+
function createRole(uint64 roleId, string memory name)//, IAccess.Type rtype)
|
134
|
+
public
|
135
|
+
onlyAuthorized
|
136
|
+
{
|
137
|
+
name = _validateRole(roleId, name);//, rtype);
|
138
|
+
_createRole(roleId, name);//, rtype);
|
139
|
+
}
|
140
|
+
|
141
|
+
function _validateRole(uint64 roleId, string memory name)//, IAccess.Type rtype)
|
142
|
+
internal
|
143
|
+
virtual
|
144
|
+
view
|
145
|
+
returns(string memory)
|
146
|
+
{
|
147
|
+
/*
|
148
|
+
if(rtype == IAccess.Type.Custom && roleId < CUSTOM_ROLE_ID_MIN) {
|
149
|
+
revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
|
150
|
+
}
|
151
|
+
|
152
|
+
if(
|
153
|
+
rtype != IAccess.Type.Custom &&
|
154
|
+
roleId >= CUSTOM_ROLE_ID_MIN &&
|
155
|
+
roleId != PUBLIC_ROLE().toInt())
|
156
|
+
{
|
157
|
+
revert AccessManagerRoleIdTooBig(roleId);
|
158
|
+
}
|
159
|
+
*/
|
160
|
+
|
161
|
+
if(roleId == 0) {
|
162
|
+
revert AccessManagerRoleIdZero();
|
163
|
+
}
|
164
|
+
|
165
|
+
if(bytes(name).length == 0) {
|
166
|
+
revert AccessManagerRoleNameEmpty(roleId);
|
167
|
+
}
|
168
|
+
|
169
|
+
return name;
|
170
|
+
}
|
171
|
+
|
172
|
+
function _createRole(uint64 roleId, string memory name/*, IAccess.Type rtype*/) private
|
173
|
+
{
|
174
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
175
|
+
|
176
|
+
if(isRoleExists(roleId)) {
|
177
|
+
revert AccessManagerRoleIdAlreadyExists(roleId);
|
178
|
+
}
|
179
|
+
|
180
|
+
if(isRoleNameExists(name)) {
|
181
|
+
revert AccessManagerRoleNameAlreadyExists(
|
182
|
+
roleId,
|
183
|
+
getRoleId(name),
|
184
|
+
name);
|
185
|
+
}
|
186
|
+
|
187
|
+
$._roleInfo[roleId] = RoleInfo({
|
188
|
+
id: roleId,
|
189
|
+
name: name,
|
190
|
+
//rtype: rtype,
|
191
|
+
createdAt: TimestampLib.blockTimestamp()
|
192
|
+
// disableAt: 0;
|
193
|
+
});
|
194
|
+
|
195
|
+
$._roleIdForName[name] = roleId;
|
196
|
+
$._roleIds.push(roleId);
|
197
|
+
|
198
|
+
emit LogRoleCreation(roleId, name);//, rtype);
|
199
|
+
}
|
200
|
+
|
201
|
+
/// inheritdoc IAccessManager
|
202
|
+
function labelRole(uint64 roleId, string calldata label)
|
203
|
+
public
|
204
|
+
override (AccessManagerCustom, IAccessManager)
|
205
|
+
roleExists(roleId)
|
206
|
+
{
|
207
|
+
super.labelRole(roleId, label);
|
208
|
+
}
|
209
|
+
|
210
|
+
/// inheritdoc IAccessManager
|
211
|
+
function grantRole(uint64 roleId, address account, uint32 executionDelay)
|
212
|
+
public
|
213
|
+
override (AccessManagerCustom, IAccessManager)
|
214
|
+
roleExists(roleId)
|
215
|
+
{
|
216
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
217
|
+
$._roleMembers[roleId].add(account);
|
218
|
+
super.grantRole(roleId, account, executionDelay);
|
219
|
+
}
|
220
|
+
|
221
|
+
/// inheritdoc IAccessManager
|
222
|
+
function revokeRole(uint64 roleId, address account)
|
223
|
+
public
|
224
|
+
override (AccessManagerCustom, IAccessManager)
|
225
|
+
roleExists(roleId)
|
226
|
+
{
|
227
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
228
|
+
$._roleMembers[roleId].remove(account);
|
229
|
+
super.revokeRole(roleId, account);
|
230
|
+
}
|
231
|
+
|
232
|
+
/// inheritdoc IAccessManager
|
233
|
+
function renounceRole(uint64 roleId, address callerConfirmation)
|
234
|
+
public
|
235
|
+
override (AccessManagerCustom, IAccessManager)
|
236
|
+
roleExists(roleId)
|
237
|
+
{
|
238
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
239
|
+
$._roleMembers[roleId].remove(_msgSender());
|
240
|
+
super.renounceRole(roleId, callerConfirmation);
|
241
|
+
}
|
242
|
+
|
243
|
+
/// inheritdoc IAccessManager
|
244
|
+
function setRoleAdmin(uint64 roleId, uint64 admin)
|
245
|
+
public
|
246
|
+
override (AccessManagerCustom, IAccessManager)
|
247
|
+
roleExists(roleId)
|
248
|
+
roleExists(admin)
|
249
|
+
{
|
250
|
+
super.setRoleAdmin(roleId, admin);
|
251
|
+
}
|
252
|
+
|
253
|
+
/// inheritdoc IAccessManager
|
254
|
+
function setRoleGuardian(uint64 roleId, uint64 guardian)
|
255
|
+
public
|
256
|
+
override (AccessManagerCustom, IAccessManager)
|
257
|
+
roleExists(roleId)
|
258
|
+
{
|
259
|
+
super.setRoleGuardian(roleId, guardian);
|
260
|
+
}
|
261
|
+
|
262
|
+
/// inheritdoc IAccessManager
|
263
|
+
function setGrantDelay(uint64 roleId, uint32 newDelay)
|
264
|
+
public
|
265
|
+
override (AccessManagerCustom, IAccessManager)
|
266
|
+
roleExists(roleId)
|
267
|
+
{
|
268
|
+
super.setGrantDelay(roleId, newDelay);
|
269
|
+
}
|
270
|
+
|
271
|
+
// ============================================= TARGET MANAGEMENT ==============================================
|
272
|
+
/// inheritdoc IAccessManagerExtended
|
273
|
+
function createTarget(address target, string memory name)//, IAccess.Type.Custom)
|
274
|
+
public
|
275
|
+
onlyAuthorized
|
276
|
+
{
|
277
|
+
name = _validateTarget(target, name);
|
278
|
+
_createTarget(target, name);//, IAccess.Type.Custom);
|
279
|
+
}
|
280
|
+
|
281
|
+
/// inheritdoc IAccessManager
|
282
|
+
// TODO must not allow "target = this" -> access manager as target created at the begining
|
283
|
+
function _createTarget(address target, string memory name) private//, IAccess.Type ttype) private
|
284
|
+
{
|
285
|
+
AccessManagerExtendedStorage storage $ = _getAccessManagerExtendedStorage();
|
286
|
+
|
287
|
+
if(isTargetExists(target)) {
|
288
|
+
revert AccessManagerTargetAlreadyExists(target);
|
289
|
+
}
|
290
|
+
|
291
|
+
if(isTargetNameExists(name)) {
|
292
|
+
revert AccessManagerTargetNameAlreadyExists(
|
293
|
+
target,
|
294
|
+
$._targetAddressForName[name],
|
295
|
+
name);
|
296
|
+
}
|
297
|
+
|
298
|
+
$._targetInfo[target] = TargetInfo ({
|
299
|
+
taddress: target,
|
300
|
+
//ttype: ttype,
|
301
|
+
name: name,
|
302
|
+
createdAt: TimestampLib.blockTimestamp()
|
303
|
+
// disableAt: 0;
|
304
|
+
});
|
305
|
+
|
306
|
+
$._targetAddressForName[name] = target;
|
307
|
+
// must revert / panic on duplicate address -> -1 check then
|
308
|
+
$._targetAddresses.push(target);
|
309
|
+
|
310
|
+
emit LogTargetCreation(target, name);//, ttype);
|
311
|
+
}
|
312
|
+
|
313
|
+
/// inheritdoc IAccessManagerExtended
|
314
|
+
// panics in case interface is not supported, 0 address included
|
315
|
+
function _validateTarget(address target, string memory name)
|
316
|
+
internal
|
317
|
+
virtual
|
318
|
+
returns (string memory)
|
319
|
+
{
|
320
|
+
if(target == address(0)) {
|
321
|
+
revert AccessManagerTargetAddressZero();
|
322
|
+
}
|
323
|
+
// panic if not contract
|
324
|
+
//address authority = IAccessManaged(target).authority();
|
325
|
+
|
326
|
+
//if(authority != address(this)) {
|
327
|
+
// revert AccessManagerTargetAuthorityInvalid(target, authority);
|
328
|
+
//}
|
329
|
+
|
330
|
+
if(bytes(name).length == 0) {
|
331
|
+
revert AccessManagerTargetNameEmpty(target);
|
332
|
+
}
|
333
|
+
|
334
|
+
return name;
|
335
|
+
}
|
336
|
+
|
337
|
+
// ============================================= FUNCTION MANAGEMENT ==============================================
|
338
|
+
|
339
|
+
/// inheritdoc IAccessManager
|
340
|
+
function setTargetFunctionRole(
|
341
|
+
address target,
|
342
|
+
bytes4[] calldata selectors,
|
343
|
+
uint64 roleId
|
344
|
+
)
|
345
|
+
public
|
346
|
+
override (AccessManagerCustom, IAccessManager)
|
347
|
+
targetExists(target)
|
348
|
+
roleExists(roleId)
|
349
|
+
{
|
350
|
+
super.setTargetFunctionRole(target, selectors, roleId);
|
351
|
+
}
|
352
|
+
/// inheritdoc IAccessManager
|
353
|
+
function setTargetAdminDelay(address target, uint32 newDelay)
|
354
|
+
public
|
355
|
+
override (AccessManagerCustom, IAccessManager)
|
356
|
+
targetExists(target)
|
357
|
+
{
|
358
|
+
super.setTargetAdminDelay(target, newDelay);
|
359
|
+
}
|
360
|
+
|
361
|
+
// =============================================== MODE MANAGEMENT ================================================
|
362
|
+
/// inheritdoc IAccessManager
|
363
|
+
function setTargetClosed(address target, bool closed)
|
364
|
+
public
|
365
|
+
override (AccessManagerCustom, IAccessManager)
|
366
|
+
targetExists(target)
|
367
|
+
{
|
368
|
+
super.setTargetClosed(target, closed);
|
369
|
+
}
|
370
|
+
|
371
|
+
// ============================================== DELAYED OPERATIONS ==============================================
|
372
|
+
/// inheritdoc IAccessManager
|
373
|
+
function schedule(
|
374
|
+
address target,
|
375
|
+
bytes calldata data,
|
376
|
+
uint48 when
|
377
|
+
)
|
378
|
+
public
|
379
|
+
override (AccessManagerCustom, IAccessManager)
|
380
|
+
targetExists(target)
|
381
|
+
returns (bytes32 operationId, uint32 nonce)
|
382
|
+
{
|
383
|
+
(operationId, nonce) = super.schedule(target, data, when);
|
384
|
+
}
|
385
|
+
|
386
|
+
/// inheritdoc IAccessManager
|
387
|
+
function execute(address target, bytes calldata data)
|
388
|
+
public
|
389
|
+
payable
|
390
|
+
override (AccessManagerCustom, IAccessManager)
|
391
|
+
targetExists(target) returns (uint32)
|
392
|
+
{
|
393
|
+
return super.execute(target, data);
|
394
|
+
}
|
395
|
+
|
396
|
+
/// inheritdoc IAccessManager
|
397
|
+
function cancel(address caller, address target, bytes calldata data)
|
398
|
+
public
|
399
|
+
override (AccessManagerCustom, IAccessManager)
|
400
|
+
targetExists(target) returns (uint32)
|
401
|
+
{
|
402
|
+
return super.cancel(caller, target, data);
|
403
|
+
}
|
404
|
+
|
405
|
+
/// inheritdoc IAccessManager
|
406
|
+
function consumeScheduledOp(address caller, bytes calldata data)
|
407
|
+
public
|
408
|
+
override (AccessManagerCustom, IAccessManager)
|
409
|
+
targetExists(_msgSender())
|
410
|
+
{
|
411
|
+
super.consumeScheduledOp(caller, data);
|
412
|
+
}
|
413
|
+
|
414
|
+
// ==================================================== OTHERS ====================================================
|
415
|
+
/// inheritdoc IAccessManager
|
416
|
+
function updateAuthority(address target, address newAuthority)
|
417
|
+
public
|
418
|
+
override (AccessManagerCustom, IAccessManager)
|
419
|
+
targetExists(target)
|
420
|
+
{
|
421
|
+
super.updateAuthority(target, newAuthority);
|
422
|
+
}
|
423
|
+
|
424
|
+
// ================================================= ADMIN LOGIC ==================================================
|
425
|
+
|
426
|
+
function _getAdminRestrictions(
|
427
|
+
bytes calldata data
|
428
|
+
) internal virtual override view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
|
429
|
+
if (data.length < 4) {
|
430
|
+
return (false, 0, 0);
|
431
|
+
}
|
432
|
+
|
433
|
+
bytes4 selector = _checkSelector(data);
|
434
|
+
|
435
|
+
// Restricted to ADMIN with no delay beside any execution delay the caller may have
|
436
|
+
if (
|
437
|
+
selector == this.labelRole.selector ||
|
438
|
+
selector == this.setRoleAdmin.selector ||
|
439
|
+
selector == this.setRoleGuardian.selector ||
|
440
|
+
selector == this.setGrantDelay.selector ||
|
441
|
+
selector == this.setTargetAdminDelay.selector ||
|
442
|
+
selector == this.createRole.selector ||
|
443
|
+
selector == this.createTarget.selector
|
444
|
+
) {
|
445
|
+
return (true, ADMIN_ROLE, 0);
|
446
|
+
}
|
447
|
+
|
448
|
+
// Restricted to ADMIN with the admin delay corresponding to the target
|
449
|
+
if (
|
450
|
+
selector == this.updateAuthority.selector ||
|
451
|
+
selector == this.setTargetClosed.selector ||
|
452
|
+
selector == this.setTargetFunctionRole.selector
|
453
|
+
) {
|
454
|
+
// First argument is a target.
|
455
|
+
address target = abi.decode(data[0x04:0x24], (address));// who is target???
|
456
|
+
uint32 delay = getTargetAdminDelay(target);
|
457
|
+
return (true, ADMIN_ROLE, delay);
|
458
|
+
}
|
459
|
+
|
460
|
+
// Restricted to that role's admin with no delay beside any execution delay the caller may have.
|
461
|
+
if (selector == this.grantRole.selector || selector == this.revokeRole.selector) {
|
462
|
+
// First argument is a roleId.
|
463
|
+
uint64 roleId = abi.decode(data[0x04:0x24], (uint64));
|
464
|
+
return (true, getRoleAdmin(roleId), 0);
|
465
|
+
}
|
466
|
+
|
467
|
+
return (false, 0, 0);
|
468
|
+
}
|
469
|
+
|
470
|
+
}
|
@@ -0,0 +1,13 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {AccessManagerExtended} from "./AccessManagerExtended.sol";
|
5
|
+
|
6
|
+
|
7
|
+
contract AccessManagerExtendedInitializeable is AccessManagerExtended {
|
8
|
+
|
9
|
+
function initialize(address initialAdmin) initializer public {
|
10
|
+
__AccessManagerExtended_init(initialAdmin);
|
11
|
+
}
|
12
|
+
|
13
|
+
}
|
@@ -0,0 +1,137 @@
|
|
1
|
+
// SPDX-License-Identifier: MIT
|
2
|
+
// OpenZeppelin Contracts (last updated v5.0.0) (access/manager/AccessManager.sol)
|
3
|
+
|
4
|
+
pragma solidity ^0.8.20;
|
5
|
+
|
6
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
7
|
+
|
8
|
+
import {VersionPart} from "../type/Version.sol";
|
9
|
+
import {Timestamp, TimestampLib, zeroTimestamp} from "../type/Timestamp.sol";
|
10
|
+
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
11
|
+
|
12
|
+
import {IAccessManagerExtendedWithDisable} from "./IAccessManagerExtendedWithDisable.sol";
|
13
|
+
import {AccessManagerExtended} from "./AccessManagerExtended.sol";
|
14
|
+
import {AccessManagerCustom} from "./AccessManagerCustom.sol";
|
15
|
+
|
16
|
+
|
17
|
+
contract AccessManagerExtendedWithDisable is AccessManagerExtended, IAccessManagerExtendedWithDisable {
|
18
|
+
|
19
|
+
/// @custom:storage-location erc7201:etherisc.storage.ReleaseAccessManager
|
20
|
+
struct AccessManagerExtendedWithDisableStorage {
|
21
|
+
VersionPart _version;
|
22
|
+
Timestamp _disabledAt;
|
23
|
+
}
|
24
|
+
|
25
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.AccessManagerExtendedWithDisable")) - 1)) & ~bytes32(uint256(0xff));
|
26
|
+
bytes32 private constant AccessManagerExtendedWithDisableStorageLocation = 0x6eab09faeebddf4f4430139353ec193aaa0bd7382b47d6e52082f5add274e600;
|
27
|
+
|
28
|
+
function _getAccessManagerExtendedWithDisableStorage() private pure returns (AccessManagerExtendedWithDisableStorage storage $) {
|
29
|
+
assembly {
|
30
|
+
$.slot := AccessManagerExtendedWithDisableStorageLocation
|
31
|
+
}
|
32
|
+
}
|
33
|
+
|
34
|
+
// TODO add version
|
35
|
+
function __AccessManagerExtendedWithDisable_init(address initialAdmin, VersionPart version) internal onlyInitializing {
|
36
|
+
AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
|
37
|
+
$._version = version;
|
38
|
+
|
39
|
+
__AccessManagerExtended_init(initialAdmin);
|
40
|
+
}
|
41
|
+
|
42
|
+
// =================================================== GETTERS ====================================================
|
43
|
+
|
44
|
+
function canCall(
|
45
|
+
address caller,
|
46
|
+
address target,
|
47
|
+
bytes4 selector
|
48
|
+
)
|
49
|
+
public view
|
50
|
+
virtual override (AccessManagerCustom, IAccessManager)
|
51
|
+
returns (bool immediate, uint32 delay)
|
52
|
+
{
|
53
|
+
AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
|
54
|
+
if(isDisabled()) {
|
55
|
+
revert AccessManagerDisabled();
|
56
|
+
}
|
57
|
+
return super.canCall(caller, target, selector);
|
58
|
+
}
|
59
|
+
|
60
|
+
function getVersion() public view returns (VersionPart) {
|
61
|
+
AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
|
62
|
+
return $._version;
|
63
|
+
}
|
64
|
+
|
65
|
+
function isDisabled() public view returns (bool) {
|
66
|
+
AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
|
67
|
+
return $._disabledAt.gtz() && TimestampLib.blockTimestamp() > $._disabledAt;
|
68
|
+
}
|
69
|
+
|
70
|
+
// ===================================== ACCESS MANAGER MODE MANAGEMENT ============================================
|
71
|
+
|
72
|
+
/// inheritdoc IAccessManagerExtended
|
73
|
+
function disable(Seconds delay) external onlyAuthorized {
|
74
|
+
AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
|
75
|
+
if($._disabledAt.gtz()) {
|
76
|
+
revert AccessManagerDisabled();
|
77
|
+
}
|
78
|
+
$._disabledAt = TimestampLib.blockTimestamp().addSeconds(delay);
|
79
|
+
}
|
80
|
+
/// inheritdoc IAccessManagerExtended
|
81
|
+
function enable() external onlyAuthorized {
|
82
|
+
AccessManagerExtendedWithDisableStorage storage $ = _getAccessManagerExtendedWithDisableStorage();
|
83
|
+
if(isDisabled()) {
|
84
|
+
revert AccessManagerDisabled();
|
85
|
+
}
|
86
|
+
$._disabledAt = zeroTimestamp();
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
// ========================= INTERNAL ==============================
|
91
|
+
|
92
|
+
function _getAdminRestrictions(
|
93
|
+
bytes calldata data
|
94
|
+
) internal virtual override view returns (bool restricted, uint64 roleAdminId, uint32 executionDelay) {
|
95
|
+
if (data.length < 4) {
|
96
|
+
return (false, 0, 0);
|
97
|
+
}
|
98
|
+
|
99
|
+
bytes4 selector = _checkSelector(data);
|
100
|
+
|
101
|
+
// Restricted to ADMIN with no delay beside any execution delay the caller may have
|
102
|
+
if (
|
103
|
+
selector == this.labelRole.selector ||
|
104
|
+
selector == this.setRoleAdmin.selector ||
|
105
|
+
selector == this.setRoleGuardian.selector ||
|
106
|
+
selector == this.setGrantDelay.selector ||
|
107
|
+
selector == this.setTargetAdminDelay.selector ||
|
108
|
+
selector == this.createRole.selector ||
|
109
|
+
selector == this.createTarget.selector ||
|
110
|
+
selector == this.enable.selector ||
|
111
|
+
selector == this.disable.selector
|
112
|
+
) {
|
113
|
+
return (true, ADMIN_ROLE, 0);
|
114
|
+
}
|
115
|
+
|
116
|
+
// Restricted to ADMIN with the admin delay corresponding to the target
|
117
|
+
if (
|
118
|
+
selector == this.updateAuthority.selector ||
|
119
|
+
selector == this.setTargetClosed.selector ||
|
120
|
+
selector == this.setTargetFunctionRole.selector
|
121
|
+
) {
|
122
|
+
// First argument is a target.
|
123
|
+
address target = abi.decode(data[0x04:0x24], (address));// who is target???
|
124
|
+
uint32 delay = getTargetAdminDelay(target);
|
125
|
+
return (true, ADMIN_ROLE, delay);
|
126
|
+
}
|
127
|
+
|
128
|
+
// Restricted to that role's admin with no delay beside any execution delay the caller may have.
|
129
|
+
if (selector == this.grantRole.selector || selector == this.revokeRole.selector) {
|
130
|
+
// First argument is a roleId.
|
131
|
+
uint64 roleId = abi.decode(data[0x04:0x24], (uint64));
|
132
|
+
return (true, getRoleAdmin(roleId), 0);
|
133
|
+
}
|
134
|
+
|
135
|
+
return (false, 0, 0);
|
136
|
+
}
|
137
|
+
}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {VersionPart} from "../type/Version.sol";
|
5
|
+
|
6
|
+
import {AccessManagerExtendedWithDisable} from "./AccessManagerExtendedWithDisable.sol";
|
7
|
+
|
8
|
+
contract AccessManagerExtendedWithDisableInitializeable is AccessManagerExtendedWithDisable {
|
9
|
+
|
10
|
+
function initialize(address initialAdmin, VersionPart version) initializer public {
|
11
|
+
__AccessManagerExtendedWithDisable_init(initialAdmin, version);
|
12
|
+
}
|
13
|
+
|
14
|
+
}
|