@etherisc/gif-next 0.0.2-f626d92-602 → 0.0.2-f634e5c-828
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 +77 -10
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -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 +414 -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 +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1310 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +348 -313
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +903 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +221 -327
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1415 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1965 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1163 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2267 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +350 -1997
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +189 -113
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +406 -2791
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1328 -331
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +264 -425
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +156 -151
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -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 -54
- 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 +223 -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 +8 -116
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- 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 +947 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -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 +762 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +282 -179
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +274 -253
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -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} +321 -457
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1360 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +323 -60
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +346 -281
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +387 -436
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -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/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +409 -442
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +117 -166
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IPolicyService.sol/IPolicyService.json} +485 -385
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +578 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +991 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +41 -62
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1313 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -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 +1092 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -110
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -245
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -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/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +292 -204
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1908 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +850 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +124 -125
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +146 -131
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1467 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
- 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 +46 -6
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -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 +28 -70
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +58 -112
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +708 -602
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -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 +398 -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 +203 -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 +317 -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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -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 +180 -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 +246 -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/type/StateId.sol/StateIdLib.json +105 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +548 -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 +618 -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 +615 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/{components → distribution}/Distribution.sol +166 -162
- package/contracts/distribution/DistributionService.sol +354 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +35 -34
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +65 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +45 -72
- package/contracts/instance/IInstanceService.sol +37 -39
- package/contracts/instance/Instance.sol +162 -250
- package/contracts/instance/InstanceAdmin.sol +288 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +218 -0
- package/contracts/instance/InstanceReader.sol +351 -61
- package/contracts/instance/InstanceService.sol +250 -353
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +287 -0
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/ObjectSet.sol +78 -0
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +27 -18
- package/contracts/instance/module/IDistribution.sol +6 -6
- package/contracts/instance/module/IPolicy.sol +48 -35
- package/contracts/instance/module/IRisk.sol +2 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +47 -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 +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +309 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +68 -0
- package/contracts/pool/BundleService.sol +423 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +122 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +153 -0
- package/contracts/pool/Pool.sol +345 -0
- package/contracts/pool/PoolService.sol +612 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +259 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +614 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
- package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
- package/contracts/product/IClaimService.sol +123 -0
- package/contracts/product/IPolicyService.sol +90 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +59 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +733 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +427 -0
- package/contracts/product/RiskService.sol +107 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -40
- package/contracts/registry/IRegistry.sol +98 -26
- package/contracts/registry/IRegistryService.sol +34 -40
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +453 -195
- package/contracts/registry/RegistryAdmin.sol +451 -0
- package/contracts/registry/RegistryService.sol +87 -128
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +486 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +176 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +222 -0
- package/contracts/shared/ComponentService.sol +869 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +67 -0
- package/contracts/shared/IComponentService.sol +134 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +4 -2
- package/contracts/shared/IPolicyHolder.sol +23 -14
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +12 -3
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +197 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +32 -25
- package/contracts/shared/PolicyHolder.sol +22 -41
- package/contracts/shared/Registerable.sol +32 -23
- package/contracts/shared/RegistryLinked.sol +9 -19
- package/contracts/shared/Service.sol +48 -36
- package/contracts/shared/TokenHandler.sol +368 -12
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +173 -0
- package/contracts/staking/IStakingService.sol +157 -0
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +505 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +440 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +150 -0
- package/contracts/{types → type}/Blocknumber.sol +26 -3
- package/contracts/{types → type}/ClaimId.sol +31 -3
- package/contracts/{types → type}/Fee.sol +24 -22
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +21 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +278 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +31 -5
- package/contracts/type/RoleId.sol +162 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +47 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +21 -2
- package/contracts/{types → type}/UFixed.sol +40 -121
- package/contracts/{types → type}/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
- package/package.json +11 -7
- 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/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- 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 -1330
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- 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 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- 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/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -1039
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
- 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/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 -1092
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- 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 -559
- 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/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- 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 -596
- 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/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
- 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 -288
- 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 -166
- 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 -142
- 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/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
- 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 -253
- package/contracts/components/IComponent.sol +0 -76
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -113
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -303
- package/contracts/components/Product.sol +0 -293
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/BundleManager.sol +0 -127
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/ObjectManager.sol +0 -82
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/base/Lifecycle.sol +0 -109
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -350
- package/contracts/instance/service/BundleService.sol +0 -431
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -435
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -93
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IPolicyService.sol +0 -72
- package/contracts/instance/service/IPoolService.sol +0 -99
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -362
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -210
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- 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/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/Amount.sol +0 -60
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/PayoutId.sol +0 -54
- package/contracts/types/RoleId.sol +0 -97
- package/contracts/types/Seconds.sol +0 -54
- /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -1,127 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {IInstance} from "./IInstance.sol";
|
5
|
-
import {INSTANCE} from "../types/ObjectType.sol";
|
6
|
-
import {InstanceReader} from "./InstanceReader.sol";
|
7
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
8
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
9
|
-
import {LibNftIdSet} from "../types/NftIdSet.sol";
|
10
|
-
import {NftId} from "../types/NftId.sol";
|
11
|
-
import {TimestampLib} from "../types/Timestamp.sol";
|
12
|
-
|
13
|
-
import {ObjectManager} from "./ObjectManager.sol";
|
14
|
-
|
15
|
-
contract BundleManager is
|
16
|
-
ObjectManager
|
17
|
-
{
|
18
|
-
|
19
|
-
event LogBundleManagerPolicyLinked(NftId bundleNftId, NftId policyNftId);
|
20
|
-
event LogBundleManagerPolicyUnlinked(NftId bundleNftId, NftId policyNftId);
|
21
|
-
|
22
|
-
event LogBundleManagerBundleAdded(NftId poolNftId, NftId bundleNftId);
|
23
|
-
event LogBundleManagerBundleUnlocked(NftId poolNftId, NftId bundleNftId);
|
24
|
-
event LogBundleManagerBundleLocked(NftId poolNftId, NftId bundleNftId);
|
25
|
-
event LogBundleManagerBundleClosed(NftId poolNftId, NftId bundleNftId);
|
26
|
-
|
27
|
-
error ErrorBundleManagerPolicyAlreadyActivated(NftId policyNftId);
|
28
|
-
error ErrorBundleManagerBundleLocked(NftId bundleNftId, NftId policyNftId);
|
29
|
-
error ErrorBundleManagerPolicyWithOpenClaims(NftId policyNftId, uint256 openClaimsCount);
|
30
|
-
error ErrorBundleManagerPolicyNotCloseable(NftId policyNftId);
|
31
|
-
error ErrorBundleManagerBundleUnknown(NftId bundleNftId);
|
32
|
-
error ErrorBundleManagerBundleNotRegistered(NftId bundleNftId);
|
33
|
-
|
34
|
-
mapping(NftId bundleNftId => LibNftIdSet.Set policies) internal _activePolicies;
|
35
|
-
|
36
|
-
/// @dev links a policy to its bundle
|
37
|
-
// to link a policy it MUST NOT yet have been activated
|
38
|
-
// the bundle MUST be unlocked (active) for linking (underwriting) and registered with this instance
|
39
|
-
function linkPolicy(NftId policyNftId) external restricted() {
|
40
|
-
NftId bundleNftId = _instance.getInstanceReader().getPolicyInfo(policyNftId).bundleNftId;
|
41
|
-
// decision will likely depend on the decision what to check here and what in the service
|
42
|
-
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
43
|
-
|
44
|
-
// ensure bundle is unlocked (in active set) and registered with this instance
|
45
|
-
if (!_isActive(poolNftId, bundleNftId)) {
|
46
|
-
revert ErrorBundleManagerBundleLocked(bundleNftId, policyNftId);
|
47
|
-
}
|
48
|
-
|
49
|
-
LibNftIdSet.add(_activePolicies[bundleNftId], policyNftId);
|
50
|
-
emit LogBundleManagerPolicyLinked(bundleNftId, policyNftId);
|
51
|
-
}
|
52
|
-
|
53
|
-
|
54
|
-
/// @dev unlinks a policy from its bundle
|
55
|
-
// to unlink a policy it must closable, ie. meet one of the following criterias
|
56
|
-
// - the policy MUST be past its expiry period and it MUST NOT have any open claims
|
57
|
-
// - the policy's payoutAmount MUST be equal to its sumInsuredAmount and MUST NOT have any open claims
|
58
|
-
function unlinkPolicy(NftId policyNftId) external restricted() {
|
59
|
-
IPolicy.PolicyInfo memory policyInfo = _instance.getInstanceReader().getPolicyInfo(policyNftId);
|
60
|
-
|
61
|
-
NftId bundleNftId = policyInfo.bundleNftId;
|
62
|
-
// decision will likely depend on the decision what to check here and what in the service
|
63
|
-
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
64
|
-
|
65
|
-
// ensure bundle is registered with this instance
|
66
|
-
if (!_contains(poolNftId, bundleNftId)) {
|
67
|
-
revert ErrorBundleManagerBundleUnknown(bundleNftId);
|
68
|
-
}
|
69
|
-
|
70
|
-
LibNftIdSet.remove(_activePolicies[bundleNftId], policyNftId);
|
71
|
-
emit LogBundleManagerPolicyUnlinked(policyInfo.bundleNftId, policyNftId);
|
72
|
-
}
|
73
|
-
|
74
|
-
|
75
|
-
/// @dev add a new bundle to a pool registerd with this instance
|
76
|
-
// the corresponding pool is fetched via instance reader
|
77
|
-
function add(NftId bundleNftId) external restricted() {
|
78
|
-
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
79
|
-
|
80
|
-
// ensure pool is registered with instance
|
81
|
-
if(poolNftId.eqz()) {
|
82
|
-
revert ErrorBundleManagerBundleNotRegistered(bundleNftId);
|
83
|
-
}
|
84
|
-
|
85
|
-
_add(poolNftId, bundleNftId);
|
86
|
-
emit LogBundleManagerBundleAdded(poolNftId, bundleNftId);
|
87
|
-
}
|
88
|
-
|
89
|
-
|
90
|
-
/// @dev unlocked (active) bundles are available to underwrite new policies
|
91
|
-
function unlock(NftId bundleNftId) external restricted() {
|
92
|
-
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
93
|
-
_activate(poolNftId, bundleNftId);
|
94
|
-
emit LogBundleManagerBundleUnlocked(poolNftId, bundleNftId);
|
95
|
-
}
|
96
|
-
|
97
|
-
/// @dev locked (deactivated) bundles may not underwrite any new policies
|
98
|
-
function lock(NftId bundleNftId) external restricted() {
|
99
|
-
NftId poolNftId = _instance.getInstanceReader().getBundleInfo(bundleNftId).poolNftId;
|
100
|
-
_deactivate(poolNftId, bundleNftId);
|
101
|
-
emit LogBundleManagerBundleLocked(poolNftId, bundleNftId);
|
102
|
-
}
|
103
|
-
|
104
|
-
function bundles(NftId poolNftId) external view returns(uint256) {
|
105
|
-
return _objects(poolNftId);
|
106
|
-
}
|
107
|
-
|
108
|
-
function getBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
|
109
|
-
return _getObject(poolNftId, idx);
|
110
|
-
}
|
111
|
-
|
112
|
-
function activeBundles(NftId poolNftId) external view returns(uint256) {
|
113
|
-
return _activeObjs(poolNftId);
|
114
|
-
}
|
115
|
-
|
116
|
-
function getActiveBundleNftId(NftId poolNftId, uint256 idx) external view returns(NftId bundleNftId) {
|
117
|
-
return _getActiveObject(poolNftId, idx);
|
118
|
-
}
|
119
|
-
|
120
|
-
function activePolicies(NftId bundleNftId) external view returns(uint256) {
|
121
|
-
return LibNftIdSet.size(_activePolicies[bundleNftId]);
|
122
|
-
}
|
123
|
-
|
124
|
-
function getActivePolicy(NftId bundleNftId, uint256 idx) external view returns(NftId policyNftId) {
|
125
|
-
return LibNftIdSet.getElementAt(_activePolicies[bundleNftId], idx);
|
126
|
-
}
|
127
|
-
}
|
@@ -1,51 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {IERC165} from "@openzeppelin/contracts/utils/introspection/IERC165.sol";
|
6
|
-
|
7
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
8
|
-
|
9
|
-
abstract contract Cloneable is
|
10
|
-
AccessManagedUpgradeable
|
11
|
-
{
|
12
|
-
event CloneableInitialized(address authority, address registry);
|
13
|
-
|
14
|
-
error CloneableAuthorityZero();
|
15
|
-
error CloneableRegistryInvalid(address registry);
|
16
|
-
|
17
|
-
IRegistry internal _registry;
|
18
|
-
|
19
|
-
constructor() {
|
20
|
-
_registry = IRegistry(address(0));
|
21
|
-
}
|
22
|
-
|
23
|
-
/// @dev call to initialize MUST be made in the same transaction as cloning of the contract
|
24
|
-
function initialize(
|
25
|
-
address authority,
|
26
|
-
address registry
|
27
|
-
)
|
28
|
-
public
|
29
|
-
onlyInitializing
|
30
|
-
{
|
31
|
-
// check/handle access managed
|
32
|
-
if(authority == address(0)) {
|
33
|
-
revert CloneableAuthorityZero();
|
34
|
-
}
|
35
|
-
|
36
|
-
__AccessManaged_init(authority);
|
37
|
-
|
38
|
-
// check/handle registry
|
39
|
-
if (registry.code.length == 0) {
|
40
|
-
revert CloneableRegistryInvalid(registry);
|
41
|
-
}
|
42
|
-
|
43
|
-
_registry = IRegistry(registry);
|
44
|
-
|
45
|
-
emit CloneableInitialized(authority, registry);
|
46
|
-
}
|
47
|
-
|
48
|
-
function getRegistry() external view returns (IRegistry) {
|
49
|
-
return _registry;
|
50
|
-
}
|
51
|
-
}
|
@@ -1,527 +0,0 @@
|
|
1
|
-
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.20;
|
3
|
-
|
4
|
-
import {AccessManagedUpgradeable} from "@openzeppelin/contracts-upgradeable/access/manager/AccessManagedUpgradeable.sol";
|
5
|
-
import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
6
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
7
|
-
|
8
|
-
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE, INSTANCE_SERVICE_ROLE, INSTANCE_OWNER_ROLE, INSTANCE_ROLE} from "../types/RoleId.sol";
|
9
|
-
import {TimestampLib} from "../types/Timestamp.sol";
|
10
|
-
import {NftId} from "../types/NftId.sol";
|
11
|
-
|
12
|
-
import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
|
13
|
-
|
14
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
15
|
-
|
16
|
-
import {IInstance} from "./IInstance.sol";
|
17
|
-
import {IAccess} from "./module/IAccess.sol";
|
18
|
-
|
19
|
-
contract InstanceAccessManager is
|
20
|
-
AccessManagedUpgradeable
|
21
|
-
{
|
22
|
-
event LogRoleCreation(RoleId roleId, ShortString name, IAccess.Type rtype);
|
23
|
-
event LogTargetCreation(address target, ShortString name, IAccess.Type ttype, bool isLocked);
|
24
|
-
|
25
|
-
using RoleIdLib for RoleId;
|
26
|
-
|
27
|
-
string public constant ADMIN_ROLE_NAME = "AdminRole";
|
28
|
-
string public constant PUBLIC_ROLE_NAME = "PublicRole";
|
29
|
-
string public constant INSTANCE_ROLE_NAME = "InstanceRole";
|
30
|
-
string public constant INSTANCE_OWNER_ROLE_NAME = "InstanceOwnerRole";
|
31
|
-
|
32
|
-
uint64 public constant CUSTOM_ROLE_ID_MIN = 10000; // MUST be even
|
33
|
-
uint32 public constant EXECUTION_DELAY = 0;
|
34
|
-
|
35
|
-
// role specific state
|
36
|
-
mapping(RoleId roleId => IAccess.RoleInfo info) internal _roleInfo;
|
37
|
-
mapping(RoleId roleId => EnumerableSet.AddressSet roleMembers) internal _roleMembers;
|
38
|
-
mapping(ShortString name => RoleId roleId) internal _roleIdForName;
|
39
|
-
RoleId [] internal _roleIds;
|
40
|
-
uint64 _idNext;
|
41
|
-
|
42
|
-
// target specific state
|
43
|
-
mapping(address target => IAccess.TargetInfo info) internal _targetInfo;
|
44
|
-
mapping(ShortString name => address target) internal _targetAddressForName;
|
45
|
-
address [] internal _targets;
|
46
|
-
|
47
|
-
AccessManagerUpgradeableInitializeable internal _accessManager;
|
48
|
-
IRegistry internal _registry;
|
49
|
-
|
50
|
-
modifier restrictedToRoleAdmin(RoleId roleId) {
|
51
|
-
RoleId admin = getRoleAdmin(roleId);
|
52
|
-
(bool inRole, uint32 executionDelay) = _accessManager.hasRole(admin.toInt(), _msgSender());
|
53
|
-
assert(executionDelay == 0); // to be sure no delayed execution functionality is used
|
54
|
-
if (!inRole) {
|
55
|
-
revert IAccess.ErrorIAccessCallerIsNotRoleAdmin(_msgSender(), roleId);
|
56
|
-
}
|
57
|
-
_;
|
58
|
-
}
|
59
|
-
|
60
|
-
// instance owner is granted upon instance nft minting in callback function
|
61
|
-
function initialize(address instanceAddress) external initializer
|
62
|
-
{
|
63
|
-
IInstance instance = IInstance(instanceAddress);
|
64
|
-
IRegistry registry = instance.getRegistry();
|
65
|
-
address authority = instance.authority();
|
66
|
-
|
67
|
-
__AccessManaged_init(authority);
|
68
|
-
|
69
|
-
_accessManager = AccessManagerUpgradeableInitializeable(authority);
|
70
|
-
_registry = registry;
|
71
|
-
_idNext = CUSTOM_ROLE_ID_MIN;
|
72
|
-
|
73
|
-
_createRole(ADMIN_ROLE(), ADMIN_ROLE_NAME, IAccess.Type.Core);
|
74
|
-
_createRole(PUBLIC_ROLE(), PUBLIC_ROLE_NAME, IAccess.Type.Core);
|
75
|
-
_createRole(INSTANCE_ROLE(), INSTANCE_ROLE_NAME, IAccess.Type.Core);
|
76
|
-
_createRole(INSTANCE_OWNER_ROLE(), INSTANCE_OWNER_ROLE_NAME, IAccess.Type.Gif);
|
77
|
-
|
78
|
-
// assume `this` is already a member of ADMIN_ROLE
|
79
|
-
EnumerableSet.add(_roleMembers[ADMIN_ROLE()], address(this));
|
80
|
-
|
81
|
-
grantRole(INSTANCE_ROLE(), instanceAddress);
|
82
|
-
setRoleAdmin(INSTANCE_OWNER_ROLE(), INSTANCE_ROLE());
|
83
|
-
}
|
84
|
-
|
85
|
-
//--- Role ------------------------------------------------------//
|
86
|
-
// ADMIN_ROLE
|
87
|
-
// assume all core roles are know at deployment time
|
88
|
-
// assume core roles are set and granted only during instance cloning
|
89
|
-
// assume core roles are never revoked -> core roles admin is never active after intialization
|
90
|
-
function createCoreRole(RoleId roleId, string memory name)
|
91
|
-
external
|
92
|
-
restricted()
|
93
|
-
{
|
94
|
-
_createRole(roleId, name, IAccess.Type.Core);
|
95
|
-
}
|
96
|
-
// ADMIN_ROLE
|
97
|
-
// assume gif roles can be revoked
|
98
|
-
// assume admin is INSTANCE_OWNER_ROLE or INSTANCE_ROLE
|
99
|
-
function createGifRole(RoleId roleId, string memory name, RoleId admin)
|
100
|
-
external
|
101
|
-
restricted()
|
102
|
-
{
|
103
|
-
_createRole(roleId, name, IAccess.Type.Gif);
|
104
|
-
setRoleAdmin(roleId, admin);
|
105
|
-
}
|
106
|
-
|
107
|
-
// INSTANCE_OWNER_ROLE
|
108
|
-
function createRole(string memory roleName, string memory adminName)
|
109
|
-
external
|
110
|
-
restricted()
|
111
|
-
returns(RoleId roleId, RoleId admin)
|
112
|
-
{
|
113
|
-
(roleId, admin) = _getNextCustomRoleId();
|
114
|
-
|
115
|
-
_createRole(roleId, roleName, IAccess.Type.Custom);
|
116
|
-
_createRole(admin, adminName, IAccess.Type.Custom);
|
117
|
-
|
118
|
-
// TODO works without this -> why?
|
119
|
-
setRoleAdmin(roleId, admin);
|
120
|
-
setRoleAdmin(admin, INSTANCE_OWNER_ROLE());
|
121
|
-
}
|
122
|
-
|
123
|
-
// ADMIN_ROLE
|
124
|
-
// assume used by instance service only during instance cloning
|
125
|
-
// assume used only by this.createRole(), this.createGifRole() afterwards
|
126
|
-
function setRoleAdmin(RoleId roleId, RoleId admin)
|
127
|
-
public
|
128
|
-
restricted()
|
129
|
-
{
|
130
|
-
if (!roleExists(roleId)) {
|
131
|
-
revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
|
132
|
-
}
|
133
|
-
|
134
|
-
if(_roleInfo[roleId].rtype == IAccess.Type.Core) {
|
135
|
-
revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Core);
|
136
|
-
}
|
137
|
-
|
138
|
-
if (!roleExists(admin)) {
|
139
|
-
revert IAccess.ErrorIAccessRoleIdDoesNotExist(admin);
|
140
|
-
}
|
141
|
-
|
142
|
-
_roleInfo[roleId].admin = admin;
|
143
|
-
}
|
144
|
-
|
145
|
-
function grantRole(RoleId roleId, address member)
|
146
|
-
public
|
147
|
-
restrictedToRoleAdmin(roleId)
|
148
|
-
returns (bool granted)
|
149
|
-
{
|
150
|
-
if (!roleExists(roleId)) {
|
151
|
-
revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
|
152
|
-
}
|
153
|
-
|
154
|
-
granted = EnumerableSet.add(_roleMembers[roleId], member);
|
155
|
-
if(granted) {
|
156
|
-
_accessManager.grantRole(roleId.toInt(), member, EXECUTION_DELAY);
|
157
|
-
}
|
158
|
-
}
|
159
|
-
|
160
|
-
function revokeRole(RoleId roleId, address member)
|
161
|
-
external
|
162
|
-
restrictedToRoleAdmin(roleId)
|
163
|
-
returns (bool)
|
164
|
-
{
|
165
|
-
return _revokeRole(roleId, member);
|
166
|
-
}
|
167
|
-
|
168
|
-
// INSTANCE_OWNER_ROLE
|
169
|
-
// IMPORTANT: unbounded function, revoke all or revert
|
170
|
-
// Instance owner role decides what to do in case of custom role admin bening revoked, e.g.:
|
171
|
-
// 1) revoke custom role from ALL members
|
172
|
-
// 2) revoke custom role admin from ALL members
|
173
|
-
// 3) 1) + 2)
|
174
|
-
// 4) revoke only 1 member of custom role admin
|
175
|
-
function revokeRoleAllMembers(RoleId roleId)
|
176
|
-
external
|
177
|
-
restrictedToRoleAdmin(roleId)
|
178
|
-
returns (bool revoked)
|
179
|
-
{
|
180
|
-
if (!roleExists(roleId)) {
|
181
|
-
revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
|
182
|
-
}
|
183
|
-
|
184
|
-
uint memberCount = EnumerableSet.length(_roleMembers[roleId]);
|
185
|
-
for(uint memberIdx = 0; memberIdx < memberCount; memberIdx++)
|
186
|
-
{
|
187
|
-
address member = EnumerableSet.at(_roleMembers[roleId], memberIdx);
|
188
|
-
EnumerableSet.remove(_roleMembers[roleId], member);
|
189
|
-
_accessManager.revokeRole(roleId.toInt(), member);
|
190
|
-
}
|
191
|
-
}
|
192
|
-
|
193
|
-
/// @dev not restricted function by intention
|
194
|
-
/// the restriction to role members is already enforced by the call to the access manager
|
195
|
-
function renounceRole(RoleId roleId)
|
196
|
-
external
|
197
|
-
returns (bool)
|
198
|
-
{
|
199
|
-
IAccess.Type rtype = _roleInfo[roleId].rtype;
|
200
|
-
if(rtype == IAccess.Type.Core || rtype == IAccess.Type.Gif) {
|
201
|
-
revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, rtype);
|
202
|
-
}
|
203
|
-
|
204
|
-
address member = msg.sender;
|
205
|
-
// cannot use accessManger.renounce as it directly checks against msg.sender
|
206
|
-
return _revokeRole(roleId, member);
|
207
|
-
}
|
208
|
-
|
209
|
-
function roleExists(RoleId roleId) public view returns (bool exists) {
|
210
|
-
return _roleInfo[roleId].createdAt.gtz();
|
211
|
-
}
|
212
|
-
// TODO returns ADMIN_ROLE id for non existent roleId
|
213
|
-
function getRoleAdmin(RoleId roleId) public view returns(RoleId admin) {
|
214
|
-
return _roleInfo[roleId].admin;
|
215
|
-
}
|
216
|
-
|
217
|
-
function getRoleInfo(RoleId roleId) external view returns (IAccess.RoleInfo memory info) {
|
218
|
-
return _roleInfo[roleId];
|
219
|
-
}
|
220
|
-
|
221
|
-
function roleMembers(RoleId roleId) public view returns (uint256 numberOfMembers) {
|
222
|
-
return EnumerableSet.length(_roleMembers[roleId]);
|
223
|
-
}
|
224
|
-
|
225
|
-
function getRoleId(uint256 idx) external view returns (RoleId roleId) {
|
226
|
-
return _roleIds[idx];
|
227
|
-
}
|
228
|
-
|
229
|
-
// TODO now: for non existent name returns ADMIN_ROLE id
|
230
|
-
function getRoleIdForName(string memory name) external view returns (RoleId roleId) {
|
231
|
-
return _roleIdForName[ShortStrings.toShortString(name)];
|
232
|
-
}
|
233
|
-
|
234
|
-
function roleMember(RoleId roleId, uint256 idx) external view returns (address member) {
|
235
|
-
return EnumerableSet.at(_roleMembers[roleId], idx);
|
236
|
-
}
|
237
|
-
|
238
|
-
function hasRole(RoleId roleId, address account) external view returns (bool accountHasRole) {
|
239
|
-
(accountHasRole, ) = _accessManager.hasRole(roleId.toInt(), account);
|
240
|
-
}
|
241
|
-
|
242
|
-
function roles() external view returns (uint256 numberOfRoles) {
|
243
|
-
return _roleIds.length;
|
244
|
-
}
|
245
|
-
|
246
|
-
//--- Target ------------------------------------------------------//
|
247
|
-
// ADMIN_ROLE
|
248
|
-
// assume some core targets are registred (instance) while others are not (instance accesss manager, instance reader, bundle manager)
|
249
|
-
function createCoreTarget(address target, string memory name) external restricted() {
|
250
|
-
_createTarget(target, name, IAccess.Type.Core);
|
251
|
-
}
|
252
|
-
// INSTANCE_SERVICE_ROLE
|
253
|
-
// assume gif target is registered and belongs to the same instance as instance access manager
|
254
|
-
function createGifTarget(address target, string memory name) external restricted()
|
255
|
-
{
|
256
|
-
if(!_registry.isRegistered(target)) {
|
257
|
-
revert IAccess.ErrorIAccessTargetNotRegistered(target);
|
258
|
-
}
|
259
|
-
|
260
|
-
_createTarget(target, name, IAccess.Type.Gif);
|
261
|
-
}
|
262
|
-
// INSTANCE_OWNER_ROLE
|
263
|
-
// assume custom target.authority() is constant -> target MUST not be used with different instance access manager
|
264
|
-
// assume custom target can not be registered as component -> each service which is doing component registration MUST register a gif target
|
265
|
-
// assume custom target can not be registered as instance or service -> why?
|
266
|
-
// TODO check target associated with instance owner or instance or instance components or components helpers
|
267
|
-
function createTarget(address target, string memory name) external restricted()
|
268
|
-
{
|
269
|
-
_createTarget(target, name, IAccess.Type.Custom);
|
270
|
-
}
|
271
|
-
|
272
|
-
// INSTANCE_SERVICE_ROLE
|
273
|
-
// IMPORTANT: instance access manager MUST be of Core type -> otherwise will be locked forever
|
274
|
-
function setTargetLocked(address target, bool locked)
|
275
|
-
external
|
276
|
-
restricted()
|
277
|
-
{
|
278
|
-
IAccess.Type targetType = _targetInfo[target].ttype;
|
279
|
-
if(target == address(0) || targetType == IAccess.Type.NotInitialized) {
|
280
|
-
revert IAccess.ErrorIAccessTargetDoesNotExist(target);
|
281
|
-
}
|
282
|
-
|
283
|
-
if(targetType == IAccess.Type.Core) {
|
284
|
-
revert IAccess.ErrorIAccessTargetTypeInvalid(target, targetType);
|
285
|
-
}
|
286
|
-
|
287
|
-
// TODO isLocked is redundant but makes getTargetInfo() faster
|
288
|
-
_targetInfo[target].isLocked = locked;
|
289
|
-
_accessManager.setTargetClosed(target, locked);
|
290
|
-
}
|
291
|
-
|
292
|
-
// allowed combinations of roles and targets:
|
293
|
-
//1) set core role for core target
|
294
|
-
//2) set gif role for gif target
|
295
|
-
//3) set custom role for gif target
|
296
|
-
//4) set custom role for custom target
|
297
|
-
|
298
|
-
// ADMIN_ROLE if used only during initialization, works with:
|
299
|
-
// any roles for any targets
|
300
|
-
// INSTANCE_SERVICE_ROLE if used not only during initilization, works with:
|
301
|
-
// core roles for core targets
|
302
|
-
// gif roles for gif targets
|
303
|
-
function setCoreTargetFunctionRole(
|
304
|
-
string memory targetName,
|
305
|
-
bytes4[] calldata selectors,
|
306
|
-
RoleId roleId
|
307
|
-
)
|
308
|
-
public
|
309
|
-
virtual
|
310
|
-
restricted()
|
311
|
-
{
|
312
|
-
ShortString nameShort = ShortStrings.toShortString(targetName);
|
313
|
-
address target = _targetAddressForName[nameShort];
|
314
|
-
|
315
|
-
// not custom target
|
316
|
-
if(_targetInfo[target].ttype == IAccess.Type.Custom) {
|
317
|
-
revert IAccess.ErrorIAccessTargetTypeInvalid(target, IAccess.Type.Custom);
|
318
|
-
}
|
319
|
-
|
320
|
-
// not custom role
|
321
|
-
if(_roleInfo[roleId].rtype == IAccess.Type.Custom) {
|
322
|
-
revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Custom);
|
323
|
-
}
|
324
|
-
|
325
|
-
_setTargetFunctionRole(target, nameShort, selectors, roleId);
|
326
|
-
}
|
327
|
-
|
328
|
-
// INSTANCE_OWNER_ROLE
|
329
|
-
// gif role for gif target
|
330
|
-
// gif role for custom target
|
331
|
-
// custom role for gif target
|
332
|
-
// custom role for custom target
|
333
|
-
// TODO instance owner can mess with gif target (component) -> e.g. set custom role for function intendent to work with gif role
|
334
|
-
function setTargetFunctionRole(
|
335
|
-
string memory targetName,
|
336
|
-
bytes4[] calldata selectors,
|
337
|
-
RoleId roleId
|
338
|
-
)
|
339
|
-
public
|
340
|
-
virtual
|
341
|
-
restricted()
|
342
|
-
{
|
343
|
-
ShortString nameShort = ShortStrings.toShortString(targetName);
|
344
|
-
address target = _targetAddressForName[nameShort];
|
345
|
-
|
346
|
-
// not core target
|
347
|
-
if(_targetInfo[target].ttype == IAccess.Type.Core) {
|
348
|
-
revert IAccess.ErrorIAccessTargetTypeInvalid(target, IAccess.Type.Core);
|
349
|
-
}
|
350
|
-
|
351
|
-
// not core role
|
352
|
-
if(_roleInfo[roleId].rtype == IAccess.Type.Core) {
|
353
|
-
revert IAccess.ErrorIAccessRoleTypeInvalid(roleId, IAccess.Type.Core);
|
354
|
-
}
|
355
|
-
|
356
|
-
_setTargetFunctionRole(target, nameShort, selectors, roleId);
|
357
|
-
}
|
358
|
-
|
359
|
-
function getTargetAddress(string memory targetName) public view returns(address targetAddress) {
|
360
|
-
ShortString nameShort = ShortStrings.toShortString(targetName);
|
361
|
-
return _targetAddressForName[nameShort];
|
362
|
-
}
|
363
|
-
|
364
|
-
function isTargetLocked(address target) public view returns (bool locked) {
|
365
|
-
return _accessManager.isTargetClosed(target);
|
366
|
-
}
|
367
|
-
|
368
|
-
function targetExists(address target) public view returns (bool exists) {
|
369
|
-
return _targetInfo[target].createdAt.gtz();
|
370
|
-
}
|
371
|
-
|
372
|
-
function getTargetInfo(address target) public view returns (IAccess.TargetInfo memory) {
|
373
|
-
return _targetInfo[target];
|
374
|
-
}
|
375
|
-
|
376
|
-
//--- Role internal view/pure functions --------------------------------------//
|
377
|
-
function _createRole(RoleId roleId, string memory roleName, IAccess.Type rtype)
|
378
|
-
internal
|
379
|
-
{
|
380
|
-
ShortString name = ShortStrings.toShortString(roleName);
|
381
|
-
_validateRole(roleId, name, rtype);
|
382
|
-
|
383
|
-
if(roleExists(roleId)) {
|
384
|
-
revert IAccess.ErrorIAccessRoleIdExists(roleId);
|
385
|
-
}
|
386
|
-
|
387
|
-
if (_roleIdForName[name].gtz()) {
|
388
|
-
revert IAccess.ErrorIAccessRoleNameExists(roleId, _roleIdForName[name], name);
|
389
|
-
}
|
390
|
-
|
391
|
-
_roleInfo[roleId] = IAccess.RoleInfo(
|
392
|
-
name,
|
393
|
-
rtype,
|
394
|
-
ADMIN_ROLE(),
|
395
|
-
TimestampLib.blockTimestamp(),
|
396
|
-
TimestampLib.blockTimestamp()
|
397
|
-
);
|
398
|
-
_roleIdForName[name] = roleId;
|
399
|
-
_roleIds.push(roleId);
|
400
|
-
|
401
|
-
emit LogRoleCreation(roleId, name, rtype);
|
402
|
-
}
|
403
|
-
|
404
|
-
function _validateRole(RoleId roleId, ShortString name, IAccess.Type rtype)
|
405
|
-
internal
|
406
|
-
view
|
407
|
-
{
|
408
|
-
uint roleIdInt = roleId.toInt();
|
409
|
-
if(rtype == IAccess.Type.Custom && roleIdInt < CUSTOM_ROLE_ID_MIN) {
|
410
|
-
revert IAccess.ErrorIAccessRoleIdTooSmall(roleId);
|
411
|
-
}
|
412
|
-
|
413
|
-
if(
|
414
|
-
rtype != IAccess.Type.Custom &&
|
415
|
-
roleIdInt >= CUSTOM_ROLE_ID_MIN &&
|
416
|
-
roleIdInt != PUBLIC_ROLE().toInt())
|
417
|
-
{
|
418
|
-
revert IAccess.ErrorIAccessRoleIdTooBig(roleId);
|
419
|
-
}
|
420
|
-
|
421
|
-
// role name checks
|
422
|
-
if (ShortStrings.byteLength(name) == 0) {
|
423
|
-
revert IAccess.ErrorIAccessRoleNameEmpty(roleId);
|
424
|
-
}
|
425
|
-
}
|
426
|
-
|
427
|
-
function _revokeRole(RoleId roleId, address member)
|
428
|
-
internal
|
429
|
-
returns(bool revoked)
|
430
|
-
{
|
431
|
-
if (!roleExists(roleId)) {
|
432
|
-
revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
|
433
|
-
}
|
434
|
-
|
435
|
-
revoked = EnumerableSet.remove(_roleMembers[roleId], member);
|
436
|
-
if(revoked) {
|
437
|
-
_accessManager.revokeRole(roleId.toInt(), member);
|
438
|
-
}
|
439
|
-
}
|
440
|
-
|
441
|
-
function _getNextCustomRoleId()
|
442
|
-
internal
|
443
|
-
returns(RoleId roleId, RoleId admin)
|
444
|
-
{
|
445
|
-
uint64 roleIdInt = _idNext;
|
446
|
-
uint64 adminInt = roleIdInt + 1;
|
447
|
-
|
448
|
-
_idNext = roleIdInt + 2;
|
449
|
-
|
450
|
-
roleId = RoleIdLib.toRoleId(roleIdInt);
|
451
|
-
admin = RoleIdLib.toRoleId(adminInt);
|
452
|
-
}
|
453
|
-
|
454
|
-
//--- Target internal view/pure functions --------------------------------------//
|
455
|
-
function _createTarget(address target, string memory targetName, IAccess.Type ttype)
|
456
|
-
internal
|
457
|
-
{
|
458
|
-
ShortString name = ShortStrings.toShortString(targetName);
|
459
|
-
_validateTarget(target, name, ttype);
|
460
|
-
|
461
|
-
if (_targetInfo[target].createdAt.gtz()) {
|
462
|
-
revert IAccess.ErrorIAccessTargetExists(target, _targetInfo[target].name);
|
463
|
-
}
|
464
|
-
|
465
|
-
if (_targetAddressForName[name] != address(0)) {
|
466
|
-
revert IAccess.ErrorIAccessTargetNameExists(
|
467
|
-
target,
|
468
|
-
_targetAddressForName[name],
|
469
|
-
name);
|
470
|
-
}
|
471
|
-
|
472
|
-
bool isLocked = _accessManager.isTargetClosed(target);// sync with state in access manager
|
473
|
-
_targetInfo[target] = IAccess.TargetInfo(
|
474
|
-
name,
|
475
|
-
ttype,
|
476
|
-
isLocked,
|
477
|
-
TimestampLib.blockTimestamp(),
|
478
|
-
TimestampLib.blockTimestamp()
|
479
|
-
);
|
480
|
-
_targetAddressForName[name] = target;
|
481
|
-
_targets.push(target);
|
482
|
-
|
483
|
-
emit LogTargetCreation(target, name, ttype, isLocked);
|
484
|
-
}
|
485
|
-
|
486
|
-
function _validateTarget(address target, ShortString name, IAccess.Type ttype)
|
487
|
-
internal
|
488
|
-
view
|
489
|
-
{
|
490
|
-
address targetAuthority = AccessManagedUpgradeable(target).authority();
|
491
|
-
if(targetAuthority != authority()) {
|
492
|
-
revert IAccess.ErrorIAccessTargetAuthorityInvalid(target, targetAuthority);
|
493
|
-
}
|
494
|
-
|
495
|
-
if (ShortStrings.byteLength(name) == 0) {
|
496
|
-
revert IAccess.ErrorIAccessTargetNameEmpty(target);
|
497
|
-
}
|
498
|
-
}
|
499
|
-
|
500
|
-
function _setTargetFunctionRole(
|
501
|
-
address target,
|
502
|
-
ShortString name,
|
503
|
-
bytes4[] calldata selectors,
|
504
|
-
RoleId roleId
|
505
|
-
)
|
506
|
-
internal
|
507
|
-
{
|
508
|
-
if (target == address(0)) {
|
509
|
-
revert IAccess.ErrorIAccessTargetDoesNotExist(target);
|
510
|
-
}
|
511
|
-
|
512
|
-
if (!roleExists(roleId)) {
|
513
|
-
revert IAccess.ErrorIAccessRoleIdDoesNotExist(roleId);
|
514
|
-
}
|
515
|
-
|
516
|
-
uint64 roleIdInt = RoleId.unwrap(roleId);
|
517
|
-
_accessManager.setTargetFunctionRole(target, selectors, roleIdInt);
|
518
|
-
}
|
519
|
-
|
520
|
-
function canCall(
|
521
|
-
address caller,
|
522
|
-
address target,
|
523
|
-
bytes4 selector
|
524
|
-
) public view virtual returns (bool immediate, uint32 delay) {
|
525
|
-
return _accessManager.canCall(caller, target, selector);
|
526
|
-
}
|
527
|
-
}
|