@etherisc/gif-next 0.0.2-bdcb44f-543 → 0.0.2-be7d052-160
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 +38 -86
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1548 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +279 -324
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1571 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +858 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +329 -215
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +401 -303
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +296 -2066
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +318 -70
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +401 -2823
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +710 -330
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +379 -265
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +115 -74
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3591 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/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/{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/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +1185 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +418 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +802 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +675 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → oracle/Oracle.sol/Oracle.json} +290 -296
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1034 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +730 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +338 -293
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +410 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1134 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +754 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +281 -211
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +320 -371
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1078 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1288 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1453 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +742 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +863 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1318 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +410 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1315 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +822 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IApplicationService.sol/IApplicationService.json} +174 -181
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +772 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +720 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +146 -153
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +985 -0
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IProductService.sol/IProductService.json +80 -64
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1183 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1012 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1276 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +4 -0
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +708 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +15 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +191 -18
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +199 -149
- 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 +453 -34
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +372 -97
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -54
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +200 -78
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1640 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +812 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +100 -113
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +2 -2
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +236 -52
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +977 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +260 -195
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +3 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +87 -9
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +3 -10
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +96 -19
- 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 +1015 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -22
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +98 -26
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -22
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +103 -21
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +60 -6
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1438 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1035 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +460 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +2005 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +164 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +761 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +592 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1343 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +718 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2237 -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/type/AddressSet.sol/LibAddressSet.json +10 -0
- 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/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- 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/type/Key32.sol/Key32Lib.json +125 -0
- 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 +239 -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/type/RiskId.sol/RiskIdLib.json +86 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +198 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +33 -7
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +10 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +498 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +218 -0
- package/contracts/authorization/IAccess.sol +48 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -0
- package/contracts/authorization/IAuthorization.sol +54 -0
- package/contracts/authorization/IModuleAuthorization.sol +21 -0
- package/contracts/authorization/IServiceAuthorization.sol +38 -0
- package/contracts/authorization/ModuleAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +90 -0
- package/contracts/distribution/BasicDistribution.sol +149 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/{components → distribution}/Distribution.sol +178 -170
- package/contracts/distribution/DistributionService.sol +352 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +39 -27
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +32 -31
- package/contracts/instance/IInstance.sol +60 -66
- package/contracts/instance/IInstanceService.sol +57 -24
- package/contracts/instance/Instance.sol +176 -213
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +173 -61
- package/contracts/instance/InstanceService.sol +310 -357
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +276 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
- package/contracts/instance/module/IAccess.sol +19 -20
- package/contracts/instance/module/IBundle.sol +8 -9
- package/contracts/instance/module/{ISetup.sol → IComponents.sol} +25 -20
- package/contracts/instance/module/IDistribution.sol +7 -6
- package/contracts/instance/module/IPolicy.sol +28 -16
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/TestToken.sol → mock/Dip.sol} +5 -5
- package/contracts/oracle/BasicOracle.sol +48 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +65 -0
- package/contracts/oracle/Oracle.sol +170 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +164 -0
- package/contracts/pool/BasicPoolAuthorization.sol +52 -0
- package/contracts/pool/BundleService.sol +284 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +106 -0
- package/contracts/pool/IPoolComponent.sol +51 -0
- package/contracts/pool/IPoolService.sol +150 -0
- package/contracts/pool/Pool.sol +311 -0
- package/contracts/pool/PoolService.sol +436 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +230 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +82 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +416 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +15 -35
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/{instance/service → product}/IPolicyService.sol +37 -29
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +40 -0
- package/contracts/product/IProductService.sol +33 -0
- package/contracts/product/PolicyService.sol +475 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/{components → product}/Product.sol +210 -107
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +16 -1
- package/contracts/registry/IRegistry.sol +61 -26
- package/contracts/registry/IRegistryService.sol +44 -42
- package/contracts/registry/ITransferInterceptor.sol +1 -0
- package/contracts/registry/Registry.sol +251 -139
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +70 -101
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +487 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +280 -0
- package/contracts/shared/ComponentService.sol +622 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/ERC165.sol +1 -1
- package/contracts/{components → shared}/IComponent.sol +26 -24
- package/contracts/shared/IComponentService.sol +112 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +29 -10
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +15 -8
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InstanceLinkedComponent.sol +172 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +77 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +3 -16
- package/contracts/shared/PolicyHolder.sol +40 -19
- package/contracts/shared/Registerable.sol +13 -12
- package/contracts/shared/RegistryLinked.sol +0 -5
- package/contracts/shared/Service.sol +47 -23
- package/contracts/shared/TokenHandler.sol +37 -6
- package/contracts/staking/IStaking.sol +167 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +231 -0
- package/contracts/staking/Staking.sol +514 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +50 -0
- package/contracts/staking/StakingReader.sol +183 -0
- package/contracts/staking/StakingService.sol +411 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -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/{types → type}/ClaimId.sol +25 -2
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/{types → type}/PayoutId.sol +33 -5
- 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 +174 -0
- package/contracts/{types → type}/Seconds.sol +27 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +34 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +11 -1
- package/contracts/{types → type}/UFixed.sol +7 -0
- package/contracts/{types → type}/Version.sol +5 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
- package/package.json +8 -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/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
- 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 -984
- 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/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/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -968
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1096
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -754
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1553
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -409
- 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/IPoolService.sol/IPoolService.json +0 -347
- 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 -1000
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
- 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/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/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 -383
- 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 -521
- 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 -104
- 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/AddressSet.sol/LibAddressSet.json +0 -10
- 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/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- 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/Key32.sol/Key32Lib.json +0 -125
- 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 -33
- 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/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
- 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/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- 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/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -221
- package/contracts/components/IDistributionComponent.sol +0 -79
- package/contracts/components/IPoolComponent.sol +0 -151
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -378
- package/contracts/instance/InstanceAccessManager.sol +0 -297
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -349
- package/contracts/instance/service/BundleService.sol +0 -299
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -394
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -55
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -402
- 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 -233
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -322
- 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/ObjectType.sol +0 -156
- package/contracts/types/RoleId.sol +0 -95
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -1,378 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {Component} from "./Component.sol";
|
5
|
-
import {Fee, FeeLib} from "../types/Fee.sol";
|
6
|
-
import {IBundleService} from "../instance/service/IBundleService.sol";
|
7
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
8
|
-
import {IPoolComponent} from "./IPoolComponent.sol";
|
9
|
-
import {IPoolService} from "../instance/service/IPoolService.sol";
|
10
|
-
import {ISetup} from "../instance/module/ISetup.sol";
|
11
|
-
import {NftId, NftIdLib} from "../types/NftId.sol";
|
12
|
-
import {POOL} from "../types/ObjectType.sol";
|
13
|
-
import {RoleId, PUBLIC_ROLE} from "../types/RoleId.sol";
|
14
|
-
import {Seconds} from "../types/Seconds.sol";
|
15
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
|
-
import {UFixed} from "../types/UFixed.sol";
|
17
|
-
|
18
|
-
|
19
|
-
abstract contract Pool is
|
20
|
-
Component,
|
21
|
-
IPoolComponent
|
22
|
-
{
|
23
|
-
// keccak256(abi.encode(uint256(keccak256("etherisc.storage.Pool")) - 1)) & ~bytes32(uint256(0xff));
|
24
|
-
bytes32 public constant POOL_STORAGE_LOCATION_V1 = 0x25e3e51823fbfffb988e0a2744bb93722d9f3e906c07cc0a9e77884c46c58300;
|
25
|
-
|
26
|
-
struct PoolStorage {
|
27
|
-
UFixed _collateralizationLevel;
|
28
|
-
UFixed _retentionLevel;
|
29
|
-
uint256 _maxCapitalAmount;
|
30
|
-
|
31
|
-
bool _isExternallyManaged;
|
32
|
-
bool _isVerifyingApplications;
|
33
|
-
|
34
|
-
RoleId _bundleOwnerRole;
|
35
|
-
bool _isInterceptingBundleTransfers;
|
36
|
-
|
37
|
-
Fee _initialPoolFee;
|
38
|
-
Fee _initialStakingFee;
|
39
|
-
Fee _initialPerformanceFee;
|
40
|
-
|
41
|
-
TokenHandler _tokenHandler;
|
42
|
-
|
43
|
-
// may be used to interact with instance by derived contracts
|
44
|
-
IPoolService _poolService;
|
45
|
-
IBundleService _bundleService;
|
46
|
-
}
|
47
|
-
|
48
|
-
|
49
|
-
modifier onlyBundleOwner(NftId bundleNftId) {
|
50
|
-
if(msg.sender != getRegistry().ownerOf(bundleNftId)) {
|
51
|
-
revert ErrorPoolNotBundleOwner(bundleNftId, msg.sender);
|
52
|
-
}
|
53
|
-
_;
|
54
|
-
}
|
55
|
-
|
56
|
-
|
57
|
-
modifier onlyPoolService() {
|
58
|
-
if(msg.sender != address(_getPoolStorage()._poolService)) {
|
59
|
-
revert ErrorPoolNotPoolService(msg.sender);
|
60
|
-
}
|
61
|
-
_;
|
62
|
-
}
|
63
|
-
|
64
|
-
|
65
|
-
function initializePool(
|
66
|
-
address registry,
|
67
|
-
NftId instanceNftId,
|
68
|
-
string memory name,
|
69
|
-
address token,
|
70
|
-
bool isInterceptingNftTransfers,
|
71
|
-
bool isExternallyManaging,
|
72
|
-
bool isVerifying,
|
73
|
-
UFixed collateralizationLevel,
|
74
|
-
UFixed retentionLevel,
|
75
|
-
address initialOwner,
|
76
|
-
bytes memory registryData // writeonly data that will saved in the object info record of the registry
|
77
|
-
)
|
78
|
-
public
|
79
|
-
virtual
|
80
|
-
onlyInitializing()
|
81
|
-
{
|
82
|
-
initializeComponent(registry, instanceNftId, name, token, POOL(), isInterceptingNftTransfers, initialOwner, registryData);
|
83
|
-
|
84
|
-
PoolStorage storage $ = _getPoolStorage();
|
85
|
-
// TODO add validation
|
86
|
-
$._tokenHandler = new TokenHandler(token);
|
87
|
-
$._maxCapitalAmount = type(uint256).max;
|
88
|
-
$._isExternallyManaged = isExternallyManaging;
|
89
|
-
$._isVerifyingApplications = isVerifying;
|
90
|
-
$._bundleOwnerRole = PUBLIC_ROLE();
|
91
|
-
$._collateralizationLevel = collateralizationLevel;
|
92
|
-
$._retentionLevel = retentionLevel;
|
93
|
-
$._initialPoolFee = FeeLib.zeroFee();
|
94
|
-
$._initialStakingFee = FeeLib.zeroFee();
|
95
|
-
$._initialPerformanceFee = FeeLib.zeroFee();
|
96
|
-
$._poolService = getInstance().getPoolService();
|
97
|
-
$._bundleService = getInstance().getBundleService();
|
98
|
-
|
99
|
-
registerInterface(type(IPoolComponent).interfaceId);
|
100
|
-
}
|
101
|
-
|
102
|
-
|
103
|
-
function stake(
|
104
|
-
NftId bundleNftId,
|
105
|
-
uint256 amount
|
106
|
-
)
|
107
|
-
public
|
108
|
-
virtual
|
109
|
-
restricted()
|
110
|
-
onlyBundleOwner(bundleNftId)
|
111
|
-
{
|
112
|
-
// TODO add implementation
|
113
|
-
}
|
114
|
-
|
115
|
-
|
116
|
-
function unstake(
|
117
|
-
NftId bundleNftId,
|
118
|
-
uint256 amount
|
119
|
-
)
|
120
|
-
public
|
121
|
-
virtual
|
122
|
-
restricted()
|
123
|
-
onlyBundleOwner(bundleNftId)
|
124
|
-
{
|
125
|
-
// TODO add implementation
|
126
|
-
}
|
127
|
-
|
128
|
-
|
129
|
-
function extend(
|
130
|
-
NftId bundleNftId,
|
131
|
-
Seconds lifetimeExtension
|
132
|
-
)
|
133
|
-
public
|
134
|
-
virtual
|
135
|
-
restricted()
|
136
|
-
onlyBundleOwner(bundleNftId)
|
137
|
-
{
|
138
|
-
// TODO add implementation
|
139
|
-
}
|
140
|
-
|
141
|
-
|
142
|
-
function lockBundle(NftId bundleNftId)
|
143
|
-
public
|
144
|
-
virtual
|
145
|
-
restricted()
|
146
|
-
onlyBundleOwner(bundleNftId)
|
147
|
-
{
|
148
|
-
_getPoolStorage()._bundleService.lockBundle(bundleNftId);
|
149
|
-
}
|
150
|
-
|
151
|
-
|
152
|
-
function unlockBundle(NftId bundleNftId)
|
153
|
-
public
|
154
|
-
virtual
|
155
|
-
restricted()
|
156
|
-
onlyBundleOwner(bundleNftId)
|
157
|
-
{
|
158
|
-
_getPoolStorage()._bundleService.unlockBundle(bundleNftId);
|
159
|
-
}
|
160
|
-
|
161
|
-
|
162
|
-
function close(NftId bundleNftId)
|
163
|
-
public
|
164
|
-
virtual
|
165
|
-
restricted()
|
166
|
-
onlyBundleOwner(bundleNftId)
|
167
|
-
{
|
168
|
-
// TODO add implementation
|
169
|
-
}
|
170
|
-
|
171
|
-
|
172
|
-
function setBundleFee(
|
173
|
-
NftId bundleNftId,
|
174
|
-
Fee memory fee
|
175
|
-
)
|
176
|
-
public
|
177
|
-
virtual
|
178
|
-
restricted()
|
179
|
-
onlyBundleOwner(bundleNftId)
|
180
|
-
{
|
181
|
-
_getPoolStorage()._bundleService.setBundleFee(bundleNftId, fee);
|
182
|
-
}
|
183
|
-
|
184
|
-
|
185
|
-
function setMaxCapitalAmount(uint256 maxCapitalAmount)
|
186
|
-
public
|
187
|
-
virtual
|
188
|
-
restricted()
|
189
|
-
onlyOwner()
|
190
|
-
{
|
191
|
-
// TODO refactor to use pool service
|
192
|
-
// _getPoolStorage()._poolService.setMaxCapitalAmount(...);
|
193
|
-
|
194
|
-
uint256 previousMaxCapitalAmount = _getPoolStorage()._maxCapitalAmount;
|
195
|
-
_getPoolStorage()._maxCapitalAmount = maxCapitalAmount;
|
196
|
-
|
197
|
-
emit LogPoolBundleMaxCapitalAmountUpdated(previousMaxCapitalAmount, maxCapitalAmount);
|
198
|
-
}
|
199
|
-
|
200
|
-
|
201
|
-
function setBundleOwnerRole(RoleId bundleOwnerRole)
|
202
|
-
public
|
203
|
-
virtual
|
204
|
-
restricted()
|
205
|
-
onlyOwner()
|
206
|
-
{
|
207
|
-
// TODO refactor to use pool service
|
208
|
-
// _getPoolStorage()._poolService.setBundleOwnerRole(...);
|
209
|
-
|
210
|
-
if(_getPoolStorage()._bundleOwnerRole != PUBLIC_ROLE()) {
|
211
|
-
revert ErrorPoolBundleOwnerRoleAlreadySet();
|
212
|
-
}
|
213
|
-
|
214
|
-
_getPoolStorage()._bundleOwnerRole = bundleOwnerRole;
|
215
|
-
|
216
|
-
emit LogPoolBundleOwnerRoleSet(bundleOwnerRole);
|
217
|
-
}
|
218
|
-
|
219
|
-
|
220
|
-
function setFees(
|
221
|
-
Fee memory poolFee,
|
222
|
-
Fee memory stakingFee,
|
223
|
-
Fee memory performanceFee
|
224
|
-
)
|
225
|
-
public
|
226
|
-
virtual
|
227
|
-
restricted()
|
228
|
-
onlyOwner()
|
229
|
-
{
|
230
|
-
_getPoolStorage()._poolService.setFees(poolFee, stakingFee, performanceFee);
|
231
|
-
}
|
232
|
-
|
233
|
-
|
234
|
-
/// @dev see {IPool.verifyApplication}
|
235
|
-
function verifyApplication(
|
236
|
-
NftId applicationNftId,
|
237
|
-
bytes memory applicationData,
|
238
|
-
NftId bundleNftId,
|
239
|
-
bytes memory bundleFilter,
|
240
|
-
uint256 collateralizationAmount
|
241
|
-
)
|
242
|
-
public
|
243
|
-
virtual
|
244
|
-
restricted()
|
245
|
-
{
|
246
|
-
// validate application data against bundle filter
|
247
|
-
if(!applicationMatchesBundle(
|
248
|
-
applicationNftId,
|
249
|
-
applicationData,
|
250
|
-
bundleNftId,
|
251
|
-
bundleFilter,
|
252
|
-
collateralizationAmount)
|
253
|
-
)
|
254
|
-
{
|
255
|
-
revert ErrorPoolApplicationBundleMismatch(applicationNftId);
|
256
|
-
}
|
257
|
-
|
258
|
-
emit LogPoolVerifiedByPool(address(this), applicationNftId, collateralizationAmount);
|
259
|
-
}
|
260
|
-
|
261
|
-
|
262
|
-
function getCollateralizationLevel() public view virtual returns (UFixed collateralizationLevel) {
|
263
|
-
return _getPoolStorage()._collateralizationLevel;
|
264
|
-
}
|
265
|
-
|
266
|
-
|
267
|
-
function getRetentionLevel() public view virtual returns (UFixed retentionLevel) {
|
268
|
-
return _getPoolStorage()._retentionLevel;
|
269
|
-
}
|
270
|
-
|
271
|
-
|
272
|
-
function isExternallyManaged() public view virtual returns (bool) {
|
273
|
-
return _getPoolStorage()._isExternallyManaged;
|
274
|
-
}
|
275
|
-
|
276
|
-
|
277
|
-
function isVerifyingApplications() public view virtual returns (bool isConfirmingApplication) {
|
278
|
-
return _getPoolStorage()._isVerifyingApplications;
|
279
|
-
}
|
280
|
-
|
281
|
-
|
282
|
-
function getMaxCapitalAmount() public view virtual returns (uint256 maxCapitalAmount) {
|
283
|
-
return _getPoolStorage()._maxCapitalAmount;
|
284
|
-
}
|
285
|
-
|
286
|
-
|
287
|
-
function isInterceptingBundleTransfers() public view virtual returns (bool) {
|
288
|
-
return isNftInterceptor();
|
289
|
-
}
|
290
|
-
|
291
|
-
|
292
|
-
function getBundleOwnerRole() public view returns (RoleId bundleOwnerRole) {
|
293
|
-
return _getPoolStorage()._bundleOwnerRole;
|
294
|
-
}
|
295
|
-
|
296
|
-
|
297
|
-
/// @dev see {IPoolComponent.applicationMatchesBundle}
|
298
|
-
/// Override this function to implement any custom application verification
|
299
|
-
/// Default implementation always returns true
|
300
|
-
function applicationMatchesBundle(
|
301
|
-
NftId applicationNftId,
|
302
|
-
bytes memory applicationData,
|
303
|
-
NftId bundleNftId,
|
304
|
-
bytes memory bundleFilter,
|
305
|
-
uint256 collateralizationAmount
|
306
|
-
)
|
307
|
-
public
|
308
|
-
view
|
309
|
-
virtual override
|
310
|
-
returns (bool isMatching)
|
311
|
-
{
|
312
|
-
return true;
|
313
|
-
}
|
314
|
-
|
315
|
-
|
316
|
-
function getSetupInfo() public view returns (ISetup.PoolSetupInfo memory setupInfo) {
|
317
|
-
InstanceReader reader = getInstance().getInstanceReader();
|
318
|
-
setupInfo = reader.getPoolSetupInfo(getNftId());
|
319
|
-
|
320
|
-
// fallback to initial setup info (wallet is always != address(0))
|
321
|
-
if(setupInfo.wallet == address(0)) {
|
322
|
-
setupInfo = _getInitialSetupInfo();
|
323
|
-
}
|
324
|
-
}
|
325
|
-
|
326
|
-
// Internals
|
327
|
-
|
328
|
-
function _createBundle(
|
329
|
-
address bundleOwner,
|
330
|
-
Fee memory fee,
|
331
|
-
uint256 amount,
|
332
|
-
Seconds lifetime,
|
333
|
-
bytes memory filter
|
334
|
-
)
|
335
|
-
internal
|
336
|
-
returns(NftId bundleNftId)
|
337
|
-
{
|
338
|
-
bundleNftId = _getPoolStorage()._bundleService.createBundle(
|
339
|
-
bundleOwner,
|
340
|
-
fee,
|
341
|
-
amount,
|
342
|
-
lifetime,
|
343
|
-
filter);
|
344
|
-
|
345
|
-
// TODO add logging
|
346
|
-
}
|
347
|
-
|
348
|
-
// TODO remove function once this is no longer used to produce contract locations on the fly ...
|
349
|
-
function getContractLocation(bytes memory name) external pure returns (bytes32 hash) {
|
350
|
-
return keccak256(abi.encode(uint256(keccak256(name)) - 1)) & ~bytes32(uint256(0xff));
|
351
|
-
}
|
352
|
-
|
353
|
-
|
354
|
-
function _getInitialSetupInfo() internal view returns (ISetup.PoolSetupInfo memory) {
|
355
|
-
PoolStorage storage $ = _getPoolStorage();
|
356
|
-
return ISetup.PoolSetupInfo(
|
357
|
-
getProductNftId(),
|
358
|
-
$._tokenHandler,
|
359
|
-
$._maxCapitalAmount,
|
360
|
-
isNftInterceptor(),
|
361
|
-
$._isExternallyManaged,
|
362
|
-
$._isVerifyingApplications,
|
363
|
-
$._collateralizationLevel,
|
364
|
-
$._retentionLevel,
|
365
|
-
$._initialPoolFee,
|
366
|
-
$._initialStakingFee,
|
367
|
-
$._initialPerformanceFee,
|
368
|
-
getWallet()
|
369
|
-
);
|
370
|
-
}
|
371
|
-
|
372
|
-
|
373
|
-
function _getPoolStorage() private pure returns (PoolStorage storage $) {
|
374
|
-
assembly {
|
375
|
-
$.slot := POOL_STORAGE_LOCATION_V1
|
376
|
-
}
|
377
|
-
}
|
378
|
-
}
|
@@ -1,297 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {AccessManager} from "@openzeppelin/contracts/access/manager/AccessManager.sol";
|
5
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
6
|
-
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
7
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
8
|
-
|
9
|
-
import {RoleId, RoleIdLib } from "../types/RoleId.sol";
|
10
|
-
import {TimestampLib} from "../types/Timestamp.sol";
|
11
|
-
import {IAccess} from "./module/IAccess.sol";
|
12
|
-
|
13
|
-
contract InstanceAccessManager is
|
14
|
-
AccessManagedUpgradeable
|
15
|
-
{
|
16
|
-
using RoleIdLib for RoleId;
|
17
|
-
|
18
|
-
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
19
|
-
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
20
|
-
|
21
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000;
|
22
|
-
uint32 public constant EXECUTION_DELAY = 0;
|
23
|
-
|
24
|
-
// role specific state
|
25
|
-
mapping(RoleId roleId => IAccess.RoleInfo info) internal _role;
|
26
|
-
mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
|
27
|
-
mapping(ShortString name => RoleId roleId) internal _roleForName;
|
28
|
-
RoleId [] internal _roles;
|
29
|
-
|
30
|
-
// target specific state
|
31
|
-
mapping(address target => IAccess.TargetInfo info) internal _target;
|
32
|
-
mapping(ShortString name => address target) internal _targetForName;
|
33
|
-
address [] internal _targets;
|
34
|
-
|
35
|
-
AccessManager internal _accessManager;
|
36
|
-
|
37
|
-
function initialize(address initialAdmin) external initializer
|
38
|
-
{
|
39
|
-
// if size of the contract gets too large, this can be externalized which will reduce the contract size considerably
|
40
|
-
_accessManager = new AccessManager(address(this));
|
41
|
-
// this service required admin rights to access manager to be able to grant/revoke roles
|
42
|
-
_accessManager.grantRole(_accessManager.ADMIN_ROLE(), initialAdmin, 0);
|
43
|
-
|
44
|
-
__AccessManaged_init(address(_accessManager));
|
45
|
-
|
46
|
-
_createRole(RoleIdLib.toRoleId(_accessManager.ADMIN_ROLE()), ADMIN_ROLE_NAME, false, false);
|
47
|
-
_createRole(RoleIdLib.toRoleId(_accessManager.PUBLIC_ROLE()), PUBLIC_ROLE_NAME, false, false);
|
48
|
-
}
|
49
|
-
|
50
|
-
//--- Role ------------------------------------------------------//
|
51
|
-
function createGifRole(RoleId roleId, string memory name) external restricted() {
|
52
|
-
_createRole(roleId, name, false, true);
|
53
|
-
}
|
54
|
-
|
55
|
-
function createRole(RoleId roleId, string memory name) external restricted() {
|
56
|
-
_createRole(roleId, name, true, true);
|
57
|
-
}
|
58
|
-
|
59
|
-
function setRoleLocked(RoleId roleId, bool locked) external restricted() {
|
60
|
-
if (!roleExists(roleId)) {
|
61
|
-
revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
|
62
|
-
}
|
63
|
-
|
64
|
-
_role[roleId].isLocked = locked;
|
65
|
-
_role[roleId].updatedAt = TimestampLib.blockTimestamp();
|
66
|
-
}
|
67
|
-
|
68
|
-
function roleExists(RoleId roleId) public view returns (bool exists) {
|
69
|
-
return _role[roleId].createdAt.gtz();
|
70
|
-
}
|
71
|
-
|
72
|
-
function grantRole(RoleId roleId, address member) external restricted() returns (bool granted) {
|
73
|
-
if (!roleExists(roleId)) {
|
74
|
-
revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
|
75
|
-
}
|
76
|
-
|
77
|
-
if (_role[roleId].isLocked) {
|
78
|
-
revert IAccess.ErrorIAccessRoleIdNotActive(roleId);
|
79
|
-
}
|
80
|
-
|
81
|
-
if (!EnumerableSet.contains(_roleMembers[roleId], member)) {
|
82
|
-
_accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
|
83
|
-
EnumerableSet.add(_roleMembers[roleId], member);
|
84
|
-
return true;
|
85
|
-
}
|
86
|
-
|
87
|
-
return false;
|
88
|
-
}
|
89
|
-
|
90
|
-
function revokeRole(RoleId roleId, address member) external restricted() returns (bool revoked) {
|
91
|
-
if (!roleExists(roleId)) {
|
92
|
-
revert IAccess.ErrorIAccessRevokeNonexstentRole(roleId);
|
93
|
-
}
|
94
|
-
|
95
|
-
if (EnumerableSet.contains(_roleMembers[roleId], member)) {
|
96
|
-
_accessManager.revokeRole(roleId.toInt(), member);
|
97
|
-
EnumerableSet.remove(_roleMembers[roleId], member);
|
98
|
-
return true;
|
99
|
-
}
|
100
|
-
|
101
|
-
return false;
|
102
|
-
}
|
103
|
-
|
104
|
-
/// @dev not restricted function by intention
|
105
|
-
/// the restriction to role members is already enforced by the call to the access manger
|
106
|
-
function renounceRole(RoleId roleId) external returns (bool revoked) {
|
107
|
-
address member = msg.sender;
|
108
|
-
|
109
|
-
if (!roleExists(roleId)) {
|
110
|
-
revert IAccess.ErrorIAccessRenounceNonexstentRole(roleId);
|
111
|
-
}
|
112
|
-
|
113
|
-
if (EnumerableSet.contains(_roleMembers[roleId], member)) {
|
114
|
-
// cannot use accessManger.renounce as it directly checks against msg.sender
|
115
|
-
_accessManager.revokeRole(roleId.toInt(), member);
|
116
|
-
EnumerableSet.remove(_roleMembers[roleId], member);
|
117
|
-
return true;
|
118
|
-
}
|
119
|
-
|
120
|
-
return false;
|
121
|
-
}
|
122
|
-
|
123
|
-
function roles() external view returns (uint256 numberOfRoles) {
|
124
|
-
return _roles.length;
|
125
|
-
}
|
126
|
-
|
127
|
-
function getRoleId(uint256 idx) external view returns (RoleId roleId) {
|
128
|
-
return _roles[idx];
|
129
|
-
}
|
130
|
-
|
131
|
-
function getRoleIdForName(string memory name) external view returns (RoleId roleId) {
|
132
|
-
return _roleForName[ShortStrings.toShortString(name)];
|
133
|
-
}
|
134
|
-
|
135
|
-
function getRole(RoleId roleId) external view returns (IAccess.RoleInfo memory role) {
|
136
|
-
return _role[roleId];
|
137
|
-
}
|
138
|
-
|
139
|
-
function hasRole(RoleId roleId, address account) external view returns (bool accountHasRole) {
|
140
|
-
(accountHasRole, ) = _accessManager.hasRole(roleId.toInt(), account);
|
141
|
-
}
|
142
|
-
|
143
|
-
function roleMembers(RoleId roleId) external view returns (uint256 numberOfMembers) {
|
144
|
-
return EnumerableSet.length(_roleMembers[roleId]);
|
145
|
-
}
|
146
|
-
|
147
|
-
function getRoleMember(RoleId roleId, uint256 idx) external view returns (address roleMember) {
|
148
|
-
return EnumerableSet.at(_roleMembers[roleId], idx);
|
149
|
-
}
|
150
|
-
|
151
|
-
//--- Target ------------------------------------------------------//
|
152
|
-
function createGifTarget(address target, string memory name) external restricted() {
|
153
|
-
_createTarget(target, name, false, true);
|
154
|
-
}
|
155
|
-
|
156
|
-
function createTarget(address target, string memory name) external restricted() {
|
157
|
-
_createTarget(target, name, true, true);
|
158
|
-
}
|
159
|
-
|
160
|
-
function setTargetLocked(string memory targetName, bool locked) external restricted() {
|
161
|
-
address target = _targetForName[ShortStrings.toShortString(targetName)];
|
162
|
-
|
163
|
-
if (target == address(0)) {
|
164
|
-
revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
|
165
|
-
}
|
166
|
-
|
167
|
-
_target[target].isLocked = locked;
|
168
|
-
_accessManager.setTargetClosed(target, locked);
|
169
|
-
}
|
170
|
-
|
171
|
-
function targetExists(address target) public view returns (bool exists) {
|
172
|
-
return _target[target].createdAt.gtz();
|
173
|
-
}
|
174
|
-
|
175
|
-
//--- internal view/pure functions --------------------------------------//
|
176
|
-
|
177
|
-
function _createRole(RoleId roleId, string memory name, bool isCustom, bool validateParameters) internal {
|
178
|
-
if (validateParameters) {
|
179
|
-
_validateRoleParameters(roleId, name, isCustom);
|
180
|
-
}
|
181
|
-
|
182
|
-
IAccess.RoleInfo memory role = IAccess.RoleInfo(
|
183
|
-
ShortStrings.toShortString(name),
|
184
|
-
isCustom,
|
185
|
-
false, // role un-locked,
|
186
|
-
TimestampLib.blockTimestamp(),
|
187
|
-
TimestampLib.blockTimestamp());
|
188
|
-
|
189
|
-
_role[roleId] = role;
|
190
|
-
_roleForName[role.name] = roleId;
|
191
|
-
_roles.push(roleId);
|
192
|
-
}
|
193
|
-
|
194
|
-
function _validateRoleParameters(
|
195
|
-
RoleId roleId,
|
196
|
-
string memory name,
|
197
|
-
bool isCustom
|
198
|
-
)
|
199
|
-
internal
|
200
|
-
view
|
201
|
-
returns (IAccess.RoleInfo memory existingRole)
|
202
|
-
{
|
203
|
-
// check role id
|
204
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
205
|
-
if(roleIdInt == _accessManager.ADMIN_ROLE() || roleIdInt == _accessManager.PUBLIC_ROLE()) {
|
206
|
-
revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
|
207
|
-
}
|
208
|
-
|
209
|
-
// prevent changing isCustom for existing roles
|
210
|
-
existingRole = _role[roleId];
|
211
|
-
|
212
|
-
if (existingRole.createdAt.gtz() && isCustom != existingRole.isCustom) {
|
213
|
-
revert IAccess.ErrorIAccessRoleIsCustomIsImmutable(roleId, isCustom, existingRole.isCustom);
|
214
|
-
}
|
215
|
-
|
216
|
-
if (isCustom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
|
217
|
-
revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
|
218
|
-
} else if (!isCustom && roleIdInt >= CUSTOM_ROLE_ID_MIN) {
|
219
|
-
revert IAccess.ErrorIAccessRoleIdTooBig(roleId);
|
220
|
-
}
|
221
|
-
|
222
|
-
// role name checks
|
223
|
-
ShortString nameShort = ShortStrings.toShortString(name);
|
224
|
-
if (ShortStrings.byteLength(nameShort) == 0) {
|
225
|
-
revert IAccess.ErrorIAccessRoleNameEmpty(roleId);
|
226
|
-
}
|
227
|
-
|
228
|
-
if (_roleForName[nameShort] != RoleIdLib.zero() && _roleForName[nameShort] != roleId) {
|
229
|
-
revert IAccess.ErrorIAccessRoleNameNotUnique(_roleForName[nameShort], nameShort);
|
230
|
-
}
|
231
|
-
}
|
232
|
-
|
233
|
-
function _createTarget(address target, string memory name, bool isCustom, bool validateParameters) internal {
|
234
|
-
if (validateParameters) {
|
235
|
-
_validateTargetParameters(target, name, isCustom);
|
236
|
-
}
|
237
|
-
|
238
|
-
if (_target[target].createdAt.gtz()) {
|
239
|
-
revert IAccess.ErrorIAccessTargetExists(target, _target[target].name);
|
240
|
-
}
|
241
|
-
if (_targetForName[ShortStrings.toShortString(name)] != address(0)) {
|
242
|
-
revert IAccess.ErrorIAccessTargetNameExists(target, _targetForName[ShortStrings.toShortString(name)], ShortStrings.toShortString(name));
|
243
|
-
}
|
244
|
-
|
245
|
-
IAccess.TargetInfo memory info = IAccess.TargetInfo(
|
246
|
-
ShortStrings.toShortString(name),
|
247
|
-
isCustom,
|
248
|
-
_accessManager.isTargetClosed(target), // sync with state in access manager
|
249
|
-
TimestampLib.blockTimestamp(),
|
250
|
-
TimestampLib.blockTimestamp());
|
251
|
-
|
252
|
-
_target[target] = info;
|
253
|
-
_targetForName[info.name] = target;
|
254
|
-
_targets.push(target);
|
255
|
-
}
|
256
|
-
|
257
|
-
function _validateTargetParameters(address target, string memory name, bool isCustom) internal view {
|
258
|
-
// TODO: implement
|
259
|
-
}
|
260
|
-
|
261
|
-
function setTargetFunctionRole(
|
262
|
-
string memory targetName,
|
263
|
-
bytes4[] calldata selectors,
|
264
|
-
RoleId roleId
|
265
|
-
) public virtual restricted() {
|
266
|
-
address target = _targetForName[ShortStrings.toShortString(targetName)];
|
267
|
-
|
268
|
-
if (target == address(0)) {
|
269
|
-
revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
|
270
|
-
}
|
271
|
-
if (! roleExists(roleId)) {
|
272
|
-
revert IAccess.ErrorIAccessRoleIdInvalid(roleId);
|
273
|
-
}
|
274
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
275
|
-
_accessManager.setTargetFunctionRole(target, selectors, roleIdInt);
|
276
|
-
}
|
277
|
-
|
278
|
-
function setTargetClosed(string memory targetName, bool closed) public restricted() {
|
279
|
-
address target = _targetForName[ShortStrings.toShortString(targetName)];
|
280
|
-
if (target == address(0)) {
|
281
|
-
revert IAccess.ErrorIAccessTargetDoesNotExist(ShortStrings.toShortString(targetName));
|
282
|
-
}
|
283
|
-
_accessManager.setTargetClosed(target, closed);
|
284
|
-
}
|
285
|
-
|
286
|
-
function isTargetLocked(address target) public view returns (bool locked) {
|
287
|
-
return _accessManager.isTargetClosed(target);
|
288
|
-
}
|
289
|
-
|
290
|
-
function canCall(
|
291
|
-
address caller,
|
292
|
-
address target,
|
293
|
-
bytes4 selector
|
294
|
-
) public view virtual returns (bool immediate, uint32 delay) {
|
295
|
-
return _accessManager.canCall(caller, target, selector);
|
296
|
-
}
|
297
|
-
}
|