@etherisc/gif-next 0.0.2-f0d86c2-077 → 0.0.2-f11de3a-698
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 +294 -25
- 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/access → authorization}/IAccess.sol/IAccess.json +1 -1
- 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/distribution/Distribution.sol/Distribution.json +1234 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1557 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +854 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +943 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +945 -0
- 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 +280 -1494
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +757 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +473 -1765
- 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 +4 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1693 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +1160 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +734 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3469 -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/base/Cloneable.sol/Cloneable.json +137 -0
- 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 +4 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +129 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{bundle/IBundle.sol → IBundle.sol}/IBundle.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/ModuleBase.sol/ModuleBase.json → module/IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +4 -0
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.json +10 -0
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{policy/IPolicy.sol → IPolicy.sol}/IPolicy.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{risk/IRisk.sol → IRisk.sol}/IRisk.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/oracle/Oracle.sol/Oracle.json +1093 -0
- 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/pool/BasicPool.sol/BasicPool.json +1470 -0
- 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 +1510 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +830 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +927 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +946 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1213 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1256 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1652 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +774 -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/IProductService.sol/IProductService.json → product/IApplicationService.sol/IApplicationService.json} +256 -221
- 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 +805 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +549 -0
- 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/IComponentOwnerService.sol/IComponentOwnerService.json → product/IProductService.sol/IProductService.json} +207 -171
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1300 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +1017 -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 +199 -12
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +655 -50
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +4 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +940 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +4 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +52 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +885 -99
- 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 +4 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +1452 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +721 -0
- 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 +4 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +661 -0
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +896 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1696 -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/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +539 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +631 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1033 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +737 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +104 -141
- 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 +4 -0
- package/artifacts/contracts/{components/IBaseComponent.sol/IBaseComponent.json → shared/INftOwnable.sol/INftOwnable.json} +37 -80
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +207 -0
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +91 -31
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/{registry → shared}/IRegistryLinked.sol/IRegistryLinked.json +13 -2
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/InstanceBase.sol/InstanceBase.json → shared/IService.sol/IService.json} +163 -143
- 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/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +73 -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/{experiment/statemachine/ISM.sol/ISM.json → shared/Lifecycle.sol/Lifecycle.json} +54 -45
- 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 +4 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +244 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +4 -0
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +320 -0
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +255 -23
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +4 -0
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +71 -0
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +4 -0
- package/artifacts/contracts/shared/Service.sol/Service.json +507 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +150 -0
- 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 +470 -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 +2242 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +576 -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 +374 -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 +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/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 +222 -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/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +16 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +4 -0
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +535 -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/upgradeability/IVersionable.sol/IVersionable.json +55 -0
- 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/upgradeability/Versionable.sol/Versionable.json +78 -0
- 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 +138 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +295 -0
- package/contracts/distribution/DistributionService.sol +337 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +97 -0
- package/contracts/instance/BundleSet.sol +126 -0
- package/contracts/instance/IInstance.sol +78 -44
- package/contracts/instance/IInstanceService.sol +92 -0
- package/contracts/instance/Instance.sol +238 -52
- package/contracts/instance/InstanceAdmin.sol +266 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +204 -0
- package/contracts/instance/InstanceReader.sol +413 -0
- package/contracts/instance/InstanceService.sol +443 -0
- package/contracts/instance/InstanceServiceManager.sol +40 -0
- package/contracts/instance/InstanceStore.sol +277 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +106 -0
- package/contracts/instance/base/ObjectSet.sol +79 -0
- package/contracts/instance/module/IAccess.sol +46 -0
- package/contracts/instance/module/IBundle.sol +20 -0
- package/contracts/instance/module/IComponents.sol +46 -0
- package/contracts/instance/module/IDistribution.sol +41 -0
- package/contracts/instance/module/IPolicy.sol +84 -0
- package/contracts/instance/module/IRisk.sol +11 -0
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- 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 +166 -0
- package/contracts/oracle/OracleService.sol +278 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +166 -0
- package/contracts/pool/BasicPoolAuthorization.sol +58 -0
- package/contracts/pool/BundleService.sol +442 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +133 -0
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/pool/IPoolService.sol +149 -0
- package/contracts/pool/Pool.sol +328 -0
- package/contracts/pool/PoolService.sol +526 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +230 -0
- package/contracts/product/ApplicationServiceManager.sol +38 -0
- package/contracts/product/BasicProduct.sol +52 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/product/ClaimService.sol +417 -0
- package/contracts/product/ClaimServiceManager.sol +38 -0
- package/contracts/product/IApplicationService.sol +62 -0
- package/contracts/product/IClaimService.sol +99 -0
- package/contracts/product/IPolicyService.sol +84 -0
- 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 +529 -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 +411 -0
- package/contracts/product/ProductService.sol +99 -0
- package/contracts/product/ProductServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +95 -37
- package/contracts/registry/IRegistry.sol +106 -29
- package/contracts/registry/IRegistryService.sol +69 -0
- package/contracts/registry/ITransferInterceptor.sol +7 -0
- package/contracts/registry/Registry.sol +475 -280
- package/contracts/registry/RegistryAdmin.sol +365 -0
- package/contracts/registry/RegistryService.sol +252 -0
- package/contracts/registry/RegistryServiceManager.sol +53 -0
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +200 -0
- package/contracts/registry/TokenRegistry.sol +315 -0
- package/contracts/shared/Component.sol +280 -0
- package/contracts/shared/ComponentService.sol +651 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/shared/IComponent.sol +70 -0
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +56 -0
- package/contracts/shared/IKeyValueStore.sol +54 -0
- package/contracts/{instance/base → shared}/ILifecycle.sol +4 -5
- package/contracts/shared/INftOwnable.sol +23 -0
- package/contracts/shared/IPolicyHolder.sol +45 -0
- package/contracts/shared/IRegisterable.sol +10 -19
- package/contracts/shared/IRegistryLinked.sol +11 -0
- package/contracts/shared/IService.sol +25 -0
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/InitializableERC165.sol +27 -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 +107 -0
- package/contracts/shared/PolicyHolder.sol +99 -0
- package/contracts/shared/Registerable.sol +54 -65
- package/contracts/shared/RegistryLinked.sol +43 -0
- package/contracts/shared/Service.sol +82 -0
- package/contracts/shared/TokenHandler.sol +58 -0
- 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 +516 -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 +135 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/type/ClaimId.sol +75 -0
- package/contracts/type/DistributorType.sol +55 -0
- package/contracts/type/Fee.sol +66 -0
- package/contracts/{types → type}/Key32.sol +8 -3
- package/contracts/{types → type}/NftId.sol +21 -15
- package/contracts/type/NftIdSet.sol +62 -0
- package/contracts/type/ObjectType.sol +271 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/type/Referral.sol +90 -0
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +43 -0
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/type/Seconds.sol +93 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +39 -5
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +38 -15
- package/contracts/type/UFixed.sol +351 -0
- package/contracts/{types → type}/Version.sol +17 -2
- package/contracts/upgradeability/IVersionable.sol +53 -0
- package/contracts/upgradeability/ProxyManager.sol +198 -0
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +14 -0
- package/contracts/upgradeability/Versionable.sol +59 -0
- package/package.json +11 -7
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/BaseComponent.sol/BaseComponent.json +0 -174
- package/artifacts/contracts/components/IBaseComponent.sol/IBaseComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.json +0 -356
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.json +0 -279
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.json +0 -387
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.json +0 -305
- package/artifacts/contracts/experiment/errors/Require.sol/Require.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Require.sol/Require.json +0 -105
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.dbg.json +0 -4
- package/artifacts/contracts/experiment/errors/Revert.sol/Revert.json +0 -105
- package/artifacts/contracts/experiment/inheritance/A.sol/A.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/A.json +0 -128
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/A.sol/AShared.json +0 -42
- package/artifacts/contracts/experiment/inheritance/B.sol/B.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/B.sol/B.json +0 -76
- package/artifacts/contracts/experiment/inheritance/C.sol/C.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/C.sol/C.json +0 -89
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/IA.json +0 -128
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IA.sol/ISharedA.json +0 -37
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IB.sol/IB.json +0 -50
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.dbg.json +0 -4
- package/artifacts/contracts/experiment/inheritance/IC.sol/IC.json +0 -63
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/Dummy.sol/LifeCycleModule.json +0 -59
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/ISM.sol/ISMEE.json +0 -74
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SM.sol/SM.json +0 -124
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.dbg.json +0 -4
- package/artifacts/contracts/experiment/statemachine/SimpleStateMachine.sol/SimpleStateMachine.json +0 -207
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeA.sol/TypeALib.json +0 -10
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.dbg.json +0 -4
- package/artifacts/contracts/experiment/types/TypeB.sol/TypeBLib.json +0 -10
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.dbg.json +0 -4
- package/artifacts/contracts/instance/IInstanceLinked.sol/IInstanceLinked.json +0 -24
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ComponentServiceBase.sol/ComponentServiceBase.json +0 -300
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IInstanceBase.sol/IInstanceBase.json +0 -63
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IService.sol/IService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IService.sol/IService.json +0 -300
- package/artifacts/contracts/instance/base/InstanceBase.sol/InstanceBase.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 -692
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/base/ModuleBase.sol/ModuleBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ServiceBase.sol/ServiceBase.json +0 -300
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/Access.sol/AccessModule.json +0 -333
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/access/IAccess.sol/IAccessModule.json +0 -333
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/BundleModule.sol/BundleModule.json +0 -296
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundle.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/bundle/IBundle.sol/IBundleModule.json +0 -296
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/CompensationModule.sol/CompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensation.json +0 -10
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/compensation/ICompensation.sol/ICompensationModule.json +0 -10
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/ComponentModule.sol/ComponentModule.json +0 -188
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponent.json +0 -10
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/component/IComponent.sol/IComponentModule.json +0 -188
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicy.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/IPolicy.sol/IPolicyModule.json +0 -261
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/policy/PolicyModule.sol/PolicyModule.json +0 -261
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPool.json +0 -10
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/IPoolModule.sol/IPoolModule.json +0 -149
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/pool/PoolModule.sol/PoolModule.json +0 -149
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRisk.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/IRisk.sol/IRiskModule.json +0 -10
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/risk/RiskModule.sol/RiskModule.json +0 -10
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/ITreasury.sol/ITreasuryModule.json +0 -533
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TokenHandler.sol/TokenHandler.json +0 -76
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.dbg.json +0 -4
- package/artifacts/contracts/instance/module/treasury/TreasuryModule.sol/TreasuryModule.json +0 -533
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ComponentOwnerService.sol/ComponentOwnerService.json +0 -523
- package/artifacts/contracts/instance/service/IComponentOwnerService.sol/IComponentOwnerService.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 -376
- package/artifacts/contracts/instance/service/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -471
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -673
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.dbg.json +0 -4
- package/artifacts/contracts/registry/IChainNft.sol/IChainNft.json +0 -452
- package/artifacts/contracts/registry/IRegistryLinked.sol/IRegistryLinked.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -35
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.dbg.json +0 -4
- package/artifacts/contracts/shared/IOwnable.sol/IOwnable.json +0 -24
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.json +0 -164
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/shared/Versionable.sol/Versionable.json +0 -164
- 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/TestPool.sol/TestPool.dbg.json +0 -4
- package/artifacts/contracts/test/TestPool.sol/TestPool.json +0 -387
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.dbg.json +0 -4
- package/artifacts/contracts/test/TestProduct.sol/TestProduct.json +0 -393
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -137
- 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 -379
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -338
- 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 -206
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -338
- 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/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -218
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -111
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -10
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -30
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -236
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedMathLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -139
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -30
- package/contracts/components/BaseComponent.sol +0 -88
- package/contracts/components/IBaseComponent.sol +0 -19
- package/contracts/components/IPoolComponent.sol +0 -57
- package/contracts/components/IProductComponent.sol +0 -19
- package/contracts/components/Pool.sol +0 -174
- package/contracts/components/Product.sol +0 -117
- package/contracts/experiment/errors/Require.sol +0 -38
- package/contracts/experiment/errors/Revert.sol +0 -44
- package/contracts/experiment/inheritance/A.sol +0 -53
- package/contracts/experiment/inheritance/B.sol +0 -28
- package/contracts/experiment/inheritance/C.sol +0 -34
- package/contracts/experiment/inheritance/IA.sol +0 -13
- package/contracts/experiment/inheritance/IB.sol +0 -10
- package/contracts/experiment/inheritance/IC.sol +0 -12
- package/contracts/experiment/statemachine/Dummy.sol +0 -27
- package/contracts/experiment/statemachine/ISM.sol +0 -25
- package/contracts/experiment/statemachine/README.md +0 -112
- package/contracts/experiment/statemachine/SM.sol +0 -57
- package/contracts/experiment/statemachine/SimpleStateMachine.sol +0 -31
- package/contracts/experiment/types/TypeA.sol +0 -47
- package/contracts/experiment/types/TypeB.sol +0 -29
- package/contracts/instance/IInstanceLinked.sol +0 -8
- package/contracts/instance/base/ComponentServiceBase.sol +0 -42
- package/contracts/instance/base/IInstanceBase.sol +0 -14
- package/contracts/instance/base/IKeyValueStore.sol +0 -49
- package/contracts/instance/base/IService.sol +0 -15
- package/contracts/instance/base/InstanceBase.sol +0 -80
- package/contracts/instance/base/KeyValueStore.sol +0 -156
- package/contracts/instance/base/Lifecycle.sol +0 -95
- package/contracts/instance/base/ModuleBase.sol +0 -52
- package/contracts/instance/base/ServiceBase.sol +0 -37
- package/contracts/instance/module/access/Access.sol +0 -149
- package/contracts/instance/module/access/IAccess.sol +0 -53
- package/contracts/instance/module/bundle/BundleModule.sol +0 -136
- package/contracts/instance/module/bundle/IBundle.sol +0 -58
- package/contracts/instance/module/compensation/CompensationModule.sol +0 -8
- package/contracts/instance/module/compensation/ICompensation.sol +0 -10
- package/contracts/instance/module/component/ComponentModule.sol +0 -95
- package/contracts/instance/module/component/IComponent.sol +0 -53
- package/contracts/instance/module/policy/IPolicy.sol +0 -60
- package/contracts/instance/module/policy/PolicyModule.sol +0 -76
- package/contracts/instance/module/pool/IPoolModule.sol +0 -41
- package/contracts/instance/module/pool/PoolModule.sol +0 -87
- package/contracts/instance/module/risk/IRisk.sol +0 -10
- package/contracts/instance/module/risk/RiskModule.sol +0 -8
- package/contracts/instance/module/treasury/ITreasury.sol +0 -103
- package/contracts/instance/module/treasury/TokenHandler.sol +0 -48
- package/contracts/instance/module/treasury/TreasuryModule.sol +0 -152
- package/contracts/instance/service/ComponentOwnerService.sol +0 -170
- package/contracts/instance/service/IComponentOwnerService.sol +0 -22
- package/contracts/instance/service/IPoolService.sol +0 -30
- package/contracts/instance/service/IProductService.sol +0 -58
- package/contracts/instance/service/PoolService.sol +0 -123
- package/contracts/instance/service/ProductService.sol +0 -354
- package/contracts/registry/IChainNft.sol +0 -21
- package/contracts/registry/IRegistryLinked.sol +0 -8
- package/contracts/shared/ERC165.sol +0 -21
- package/contracts/shared/IOwnable.sol +0 -6
- package/contracts/shared/IVersionable.sol +0 -52
- package/contracts/shared/Versionable.sol +0 -89
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestPool.sol +0 -22
- package/contracts/test/TestProduct.sol +0 -44
- package/contracts/test/TestRegisterable.sol +0 -19
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -32
- package/contracts/test/TestToken.sol +0 -26
- package/contracts/test/TestVersion.sol +0 -44
- package/contracts/test/TestVersionable.sol +0 -17
- package/contracts/types/ChainId.sol +0 -38
- package/contracts/types/Fee.sol +0 -51
- package/contracts/types/NftIdSet.sol +0 -60
- package/contracts/types/ObjectType.sol +0 -115
- package/contracts/types/RoleId.sol +0 -38
- package/contracts/types/UFixed.sol +0 -209
@@ -0,0 +1,485 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {Create2} from "@openzeppelin/contracts/utils/Create2.sol";
|
5
|
+
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
6
|
+
import {IAccessManager} from "@openzeppelin/contracts/access/manager/IAccessManager.sol";
|
7
|
+
import {Initializable} from "@openzeppelin/contracts/proxy/utils/Initializable.sol";
|
8
|
+
import {AccessManaged} from "@openzeppelin/contracts/access/manager/AccessManaged.sol";
|
9
|
+
import {Math} from "@openzeppelin/contracts/utils/math/Math.sol";
|
10
|
+
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {RoleId, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
13
|
+
import {ObjectType, ObjectTypeLib, POOL, RELEASE, REGISTRY, SERVICE, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
15
|
+
import {Timestamp, TimestampLib, zeroTimestamp, ltTimestamp} from "../type/Timestamp.sol";
|
16
|
+
import {Seconds, SecondsLib} from "../type/Seconds.sol";
|
17
|
+
import {StateId, INITIAL, SCHEDULED, DEPLOYING, ACTIVE, PAUSED, CLOSED} from "../type/StateId.sol";
|
18
|
+
import {Version, VersionLib, VersionPart, VersionPartLib} from "../type/Version.sol";
|
19
|
+
|
20
|
+
import {IService} from "../shared/IService.sol";
|
21
|
+
import {ILifecycle} from "../shared/ILifecycle.sol";
|
22
|
+
import {INftOwnable} from "../shared/INftOwnable.sol";
|
23
|
+
import {IRegisterable} from "../shared/IRegisterable.sol";
|
24
|
+
|
25
|
+
import {IRegistry} from "./IRegistry.sol";
|
26
|
+
import {IRegistryLinked} from "../shared/IRegistryLinked.sol";
|
27
|
+
import {IRegistryService} from "./IRegistryService.sol";
|
28
|
+
import {IServiceAuthorization} from "../authorization/IServiceAuthorization.sol";
|
29
|
+
import {IAccessAdmin} from "../authorization/IAccessAdmin.sol";
|
30
|
+
import {RegistryAdmin} from "./RegistryAdmin.sol";
|
31
|
+
import {Registry} from "./Registry.sol";
|
32
|
+
import {TokenRegistry} from "./TokenRegistry.sol";
|
33
|
+
import {ReleaseLifecycle} from "./ReleaseLifecycle.sol";
|
34
|
+
|
35
|
+
contract ReleaseRegistry is
|
36
|
+
AccessManaged,
|
37
|
+
ReleaseLifecycle,
|
38
|
+
IRegistryLinked
|
39
|
+
{
|
40
|
+
using ObjectTypeLib for ObjectType;
|
41
|
+
|
42
|
+
uint256 public constant INITIAL_GIF_VERSION = 3;
|
43
|
+
|
44
|
+
event LogReleaseCreation(VersionPart version, bytes32 salt);
|
45
|
+
event LogReleaseActivation(VersionPart version);
|
46
|
+
event LogReleaseDisabled(VersionPart version);
|
47
|
+
event LogReleaseEnabled(VersionPart version);
|
48
|
+
|
49
|
+
// constructor
|
50
|
+
error ErrorReleaseRegistryNotRegistry(Registry registry);
|
51
|
+
|
52
|
+
// createNextRelease
|
53
|
+
error ErrorReleaseRegistryReleaseCreationDisallowed(VersionPart version, StateId currentStateId);
|
54
|
+
|
55
|
+
// prepareRelease
|
56
|
+
error ErrorReleaseRegistryReleasePreparationDisallowed(VersionPart version, StateId currentStateId);
|
57
|
+
error ErrorReleaseRegistryReleaseAlreadyPrepared(VersionPart version, StateId currentStateId);
|
58
|
+
error ErrorReleaseRegistryVersionMismatch(VersionPart expected, VersionPart actual);
|
59
|
+
error ErrorReleaseRegistryNoDomains(VersionPart version);
|
60
|
+
|
61
|
+
// registerService
|
62
|
+
error ErrorReleaseRegistryNoServiceRegistrationExpected();
|
63
|
+
error ErrorReleaseRegistryServiceRegistrationDisallowed(StateId currentStateId);
|
64
|
+
error ErrorReleaseRegistryServiceDomainMismatch(ObjectType expectedDomain, ObjectType actualDomain);
|
65
|
+
error ErrorReleaseRegistryNotService(address notService);
|
66
|
+
error ErrorReleaseRegistryServiceAddressMismatch(address expected, address actual);
|
67
|
+
|
68
|
+
// activateNextRelease
|
69
|
+
error ErrorReleaseRegistryReleaseActivationDisallowed(VersionPart releaseVersion, StateId currentStateId);
|
70
|
+
error ErrorReleaseRegistryReleaseNotCreated(VersionPart releaseVersion);
|
71
|
+
error ErrorReleaseRegistryReleaseRegistrationNotFinished(VersionPart releaseVersion, uint awaitingRegistration);
|
72
|
+
error ErrorReleaseRegistryReleaseAlreadyActivated(VersionPart releaseVersion);
|
73
|
+
|
74
|
+
// disableRelease
|
75
|
+
error ErrorReleaseRegistryReleaseNotActivated(VersionPart releaseVersion);
|
76
|
+
error ErrorReleaseRegistryReleaseAlreadyDisabled(VersionPart releaseVersion);
|
77
|
+
|
78
|
+
// _verifyService
|
79
|
+
error ErrorReleaseRegistryServiceReleaseAuthorityMismatch(IService service, address serviceAuthority, address releaseAuthority);
|
80
|
+
error ErrorReleaseRegistryServiceReleaseVersionMismatch(IService service, VersionPart serviceVersion, VersionPart releaseVersion);
|
81
|
+
|
82
|
+
// _verifyServiceInfo
|
83
|
+
error ErrorReleaseRegistryServiceInfoAddressInvalid(IService service, address expected);
|
84
|
+
error ErrorReleaseRegistryServiceInfoInterceptorInvalid(IService service, bool isInterceptor);
|
85
|
+
error ErrorReleaseRegistryServiceInfoTypeInvalid(IService service, ObjectType expected, ObjectType found);
|
86
|
+
error ErrorReleaseRegistryServiceInfoOwnerInvalid(IService service, address expected, address found);
|
87
|
+
error ErrorReleaseRegistryServiceSelfRegistration(IService service);
|
88
|
+
error ErrorReleaseRegistryServiceOwnerRegistered(IService service, address owner);
|
89
|
+
|
90
|
+
Seconds public constant MIN_DISABLE_DELAY = Seconds.wrap(60 * 24 * 365); // 1 year
|
91
|
+
|
92
|
+
RegistryAdmin public immutable _admin;
|
93
|
+
Registry public immutable _registry;
|
94
|
+
IRegisterable private _staking;
|
95
|
+
address private _stakingOwner;
|
96
|
+
|
97
|
+
mapping(VersionPart version => IRegistry.ReleaseInfo info) internal _releaseInfo;
|
98
|
+
mapping(VersionPart version => IServiceAuthorization authz) internal _serviceAuthorization;
|
99
|
+
|
100
|
+
// TODO check where/why this is used
|
101
|
+
mapping(address registryService => VersionPart version) _releaseVersionByAddress;
|
102
|
+
|
103
|
+
VersionPart private _initial;// first active version
|
104
|
+
VersionPart internal _latest; // latest active version
|
105
|
+
VersionPart internal _next; // version to create and activate
|
106
|
+
mapping(VersionPart verson => StateId releaseState) private _state;
|
107
|
+
|
108
|
+
uint256 internal _registeredServices;
|
109
|
+
uint256 internal _servicesToRegister;
|
110
|
+
|
111
|
+
constructor(Registry registry)
|
112
|
+
AccessManaged(msg.sender)
|
113
|
+
{
|
114
|
+
// TODO move this part to RegistryLinked constructor
|
115
|
+
if(!_isRegistry(address(registry))) {
|
116
|
+
revert ErrorReleaseRegistryNotRegistry(registry);
|
117
|
+
}
|
118
|
+
|
119
|
+
setAuthority(registry.getAuthority());
|
120
|
+
|
121
|
+
_registry = registry;
|
122
|
+
_admin = RegistryAdmin(_registry.getRegistryAdminAddress());
|
123
|
+
|
124
|
+
_initial = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION);
|
125
|
+
_next = VersionPartLib.toVersionPart(INITIAL_GIF_VERSION - 1);
|
126
|
+
}
|
127
|
+
|
128
|
+
/// @dev skips previous release if was not activated
|
129
|
+
/// sets next release into state SCHEDULED
|
130
|
+
function createNextRelease()
|
131
|
+
external
|
132
|
+
restricted() // GIF_ADMIN_ROLE
|
133
|
+
returns(VersionPart)
|
134
|
+
{
|
135
|
+
_next = VersionPartLib.toVersionPart(_next.toInt() + 1);
|
136
|
+
_servicesToRegister = 0;
|
137
|
+
_registeredServices = 0;
|
138
|
+
_state[_next] = getInitialState(RELEASE());
|
139
|
+
|
140
|
+
return _next;
|
141
|
+
}
|
142
|
+
|
143
|
+
function prepareNextRelease(
|
144
|
+
IServiceAuthorization serviceAuthorization,
|
145
|
+
bytes32 salt
|
146
|
+
)
|
147
|
+
external
|
148
|
+
restricted() // GIF_MANAGER_ROLE
|
149
|
+
returns(
|
150
|
+
address authority,
|
151
|
+
VersionPart version,
|
152
|
+
bytes32 releaseSalt
|
153
|
+
)
|
154
|
+
{
|
155
|
+
authority = _admin.authority();
|
156
|
+
version = _next;
|
157
|
+
|
158
|
+
// ensures unique salt
|
159
|
+
// TODO CreateX have clones capability also
|
160
|
+
// what would releaseSalt look like if used with CreateX in pemissioned mode?
|
161
|
+
releaseSalt = keccak256(
|
162
|
+
bytes.concat(
|
163
|
+
bytes32(version.toInt()),
|
164
|
+
salt));
|
165
|
+
|
166
|
+
// verify release in state SCHEDULED
|
167
|
+
if (!isValidTransition(RELEASE(), _state[version], DEPLOYING())) {
|
168
|
+
revert ErrorReleaseRegistryReleasePreparationDisallowed(version, _state[version]);
|
169
|
+
}
|
170
|
+
|
171
|
+
_state[version] = DEPLOYING();
|
172
|
+
|
173
|
+
// verify authorizaion contract release matches with expected version
|
174
|
+
VersionPart releaseVersion = serviceAuthorization.getRelease();
|
175
|
+
if (releaseVersion != version) {
|
176
|
+
revert ErrorReleaseRegistryVersionMismatch(version, releaseVersion);
|
177
|
+
}
|
178
|
+
|
179
|
+
|
180
|
+
// sanity check to ensure service domain list is not empty
|
181
|
+
uint256 serviceDomainsCount = serviceAuthorization.getServiceDomains().length;
|
182
|
+
if (serviceDomainsCount == 0) {
|
183
|
+
revert ErrorReleaseRegistryNoDomains(version);
|
184
|
+
}
|
185
|
+
|
186
|
+
// verify prepareNextRelease is only called once per release
|
187
|
+
if(_servicesToRegister > 0) {
|
188
|
+
revert ErrorReleaseRegistryReleaseAlreadyPrepared(version, _state[version]);
|
189
|
+
}
|
190
|
+
|
191
|
+
_servicesToRegister = serviceDomainsCount;
|
192
|
+
_serviceAuthorization[version] = serviceAuthorization;
|
193
|
+
|
194
|
+
emit LogReleaseCreation(version, releaseSalt);
|
195
|
+
}
|
196
|
+
|
197
|
+
// TODO this function can have 0 args -> use stored addresses from prepareNextRelease()
|
198
|
+
function registerService(IService service)
|
199
|
+
external
|
200
|
+
restricted // GIF_MANAGER_ROLE
|
201
|
+
returns(NftId nftId)
|
202
|
+
{
|
203
|
+
VersionPart releaseVersion = _next;
|
204
|
+
StateId state = _state[releaseVersion];
|
205
|
+
|
206
|
+
// verify release in state DEPLOYING
|
207
|
+
if (!isValidTransition(RELEASE(), state, DEPLOYING())) {
|
208
|
+
// TOOD name must represent failed state transition
|
209
|
+
revert ErrorReleaseRegistryServiceRegistrationDisallowed(state);
|
210
|
+
}
|
211
|
+
|
212
|
+
_state[releaseVersion] = DEPLOYING();
|
213
|
+
|
214
|
+
// not all services are registered
|
215
|
+
if (_servicesToRegister == _registeredServices) {
|
216
|
+
revert ErrorReleaseRegistryNoServiceRegistrationExpected();
|
217
|
+
}
|
218
|
+
|
219
|
+
// service can work with release manager
|
220
|
+
(
|
221
|
+
IRegistry.ObjectInfo memory info,
|
222
|
+
ObjectType serviceDomain,
|
223
|
+
VersionPart serviceVersion
|
224
|
+
) = _verifyService(service);
|
225
|
+
|
226
|
+
// service domain matches defined in release config
|
227
|
+
ObjectType expectedDomain = _serviceAuthorization[releaseVersion].getServiceDomain(_registeredServices);
|
228
|
+
if (serviceDomain != expectedDomain) {
|
229
|
+
revert ErrorReleaseRegistryServiceDomainMismatch(expectedDomain, serviceDomain);
|
230
|
+
}
|
231
|
+
|
232
|
+
// register service with registry
|
233
|
+
nftId = _registry.registerService(info, serviceVersion, serviceDomain);
|
234
|
+
service.linkToRegisteredNftId();
|
235
|
+
_registeredServices++;
|
236
|
+
|
237
|
+
// setup service authorization
|
238
|
+
_admin.authorizeService(
|
239
|
+
_serviceAuthorization[releaseVersion],
|
240
|
+
service);
|
241
|
+
|
242
|
+
// TODO consider to extend this to REGISTRY
|
243
|
+
// special roles for registry/staking/pool service
|
244
|
+
if (serviceDomain == STAKING() || serviceDomain == POOL()) {
|
245
|
+
// TODO rename to grantServiceDomainRole()
|
246
|
+
_admin.grantServiceRoleForAllVersions(service, serviceDomain);
|
247
|
+
}
|
248
|
+
}
|
249
|
+
|
250
|
+
|
251
|
+
function activateNextRelease()
|
252
|
+
external
|
253
|
+
restricted // GIF_ADMIN_ROLE
|
254
|
+
{
|
255
|
+
VersionPart version = _next;
|
256
|
+
StateId state = _state[version];
|
257
|
+
StateId newState = ACTIVE();
|
258
|
+
|
259
|
+
// verify release in state DEPLOYING
|
260
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
261
|
+
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
262
|
+
}
|
263
|
+
|
264
|
+
// release fully deployed
|
265
|
+
if(_registeredServices < _servicesToRegister) {
|
266
|
+
revert ErrorReleaseRegistryReleaseRegistrationNotFinished(version, _servicesToRegister - _registeredServices);
|
267
|
+
}
|
268
|
+
|
269
|
+
// release exists, registry service MUST exist
|
270
|
+
address service = _registry.getServiceAddress(REGISTRY(), version);
|
271
|
+
if(service == address(0)) {
|
272
|
+
revert ErrorReleaseRegistryReleaseNotCreated(version);
|
273
|
+
}
|
274
|
+
|
275
|
+
_latest = version;
|
276
|
+
_state[version] = newState;
|
277
|
+
|
278
|
+
_releaseVersionByAddress[service] = version;
|
279
|
+
_releaseInfo[version].activatedAt = TimestampLib.blockTimestamp();
|
280
|
+
|
281
|
+
emit LogReleaseActivation(version);
|
282
|
+
}
|
283
|
+
|
284
|
+
/// @dev stop all operations with release services
|
285
|
+
function pauseRelease(VersionPart version)
|
286
|
+
external
|
287
|
+
restricted // GIF_ADMIN_ROLE
|
288
|
+
{
|
289
|
+
StateId state = _state[version];
|
290
|
+
StateId newState = PAUSED();
|
291
|
+
|
292
|
+
// verify release in state ACTIVE
|
293
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
294
|
+
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
295
|
+
}
|
296
|
+
|
297
|
+
// TODO come up with a substitute
|
298
|
+
//_releaseAccessManager[version].disable();
|
299
|
+
|
300
|
+
_state[version] = newState;
|
301
|
+
_releaseInfo[version].disabledAt = TimestampLib.blockTimestamp();
|
302
|
+
|
303
|
+
emit LogReleaseDisabled(version);
|
304
|
+
}
|
305
|
+
|
306
|
+
// TODO consider revert if some delay is expired -> becomes disabled automatically
|
307
|
+
/// @dev resume operations with release services
|
308
|
+
function unpauseRelease(VersionPart version)
|
309
|
+
external
|
310
|
+
restricted // GIF_ADMIN_ROLE
|
311
|
+
{
|
312
|
+
StateId state = _state[version];
|
313
|
+
StateId newState = ACTIVE();
|
314
|
+
|
315
|
+
// verify release in state PAUSED
|
316
|
+
if (!isValidTransition(RELEASE(), state, newState)) {
|
317
|
+
revert ErrorReleaseRegistryReleaseActivationDisallowed(version, state);
|
318
|
+
}
|
319
|
+
|
320
|
+
// TODO come up with a substitute
|
321
|
+
// _releaseAccessManager[version].enable();
|
322
|
+
|
323
|
+
_state[version] = newState;
|
324
|
+
_releaseInfo[version].disabledAt = zeroTimestamp();
|
325
|
+
|
326
|
+
emit LogReleaseEnabled(version);
|
327
|
+
}
|
328
|
+
|
329
|
+
//--- view functions ----------------------------------------------------//
|
330
|
+
|
331
|
+
function predictDeterministicAddress(
|
332
|
+
address implementation,
|
333
|
+
bytes32 salt,
|
334
|
+
address deployer
|
335
|
+
) external pure returns (address predicted) {
|
336
|
+
return Clones.predictDeterministicAddress(implementation, salt, deployer);
|
337
|
+
}
|
338
|
+
|
339
|
+
function isActiveRegistryService(address service) external view returns(bool) {
|
340
|
+
VersionPart version = _releaseVersionByAddress[service];
|
341
|
+
return isActiveRelease(version);
|
342
|
+
}
|
343
|
+
|
344
|
+
function isActiveRelease(VersionPart version) public view returns(bool) {
|
345
|
+
return _state[version] == ACTIVE();
|
346
|
+
}
|
347
|
+
|
348
|
+
function getReleaseInfo(VersionPart version) external view returns(IRegistry.ReleaseInfo memory) {
|
349
|
+
return _releaseInfo[version];
|
350
|
+
}
|
351
|
+
|
352
|
+
function getNextVersion() public view returns(VersionPart) {
|
353
|
+
return _next;
|
354
|
+
}
|
355
|
+
|
356
|
+
function getLatestVersion() external view returns(VersionPart) {
|
357
|
+
return _latest;
|
358
|
+
}
|
359
|
+
|
360
|
+
function getInitialVersion() external view returns(VersionPart) {
|
361
|
+
return _initial;
|
362
|
+
}
|
363
|
+
|
364
|
+
function getState(VersionPart version) external view returns (StateId stateId) {
|
365
|
+
return _state[version];
|
366
|
+
}
|
367
|
+
|
368
|
+
function getRemainingServicesToRegister() external view returns (uint256 services) {
|
369
|
+
return _servicesToRegister - _registeredServices;
|
370
|
+
}
|
371
|
+
|
372
|
+
function getServiceAuthorization(VersionPart version)
|
373
|
+
external
|
374
|
+
view
|
375
|
+
returns (IServiceAuthorization serviceAuthorization)
|
376
|
+
{
|
377
|
+
return _serviceAuthorization[version];
|
378
|
+
}
|
379
|
+
|
380
|
+
function getRegistryAdmin() external view returns (address) {
|
381
|
+
return address(_admin);
|
382
|
+
}
|
383
|
+
|
384
|
+
//--- IRegistryLinked ------------------------------------------------------//
|
385
|
+
|
386
|
+
function getRegistry() external view returns (IRegistry) {
|
387
|
+
return _registry;
|
388
|
+
}
|
389
|
+
|
390
|
+
//--- private functions ----------------------------------------------------//
|
391
|
+
|
392
|
+
function _verifyService(IService service)
|
393
|
+
internal
|
394
|
+
view
|
395
|
+
returns(
|
396
|
+
IRegistry.ObjectInfo memory serviceInfo,
|
397
|
+
ObjectType serviceDomain,
|
398
|
+
VersionPart serviceVersion
|
399
|
+
)
|
400
|
+
{
|
401
|
+
if(!service.supportsInterface(type(IService).interfaceId)) {
|
402
|
+
revert ErrorReleaseRegistryNotService(address(service));
|
403
|
+
}
|
404
|
+
|
405
|
+
address owner = msg.sender;
|
406
|
+
address serviceAuthority = service.authority();
|
407
|
+
serviceVersion = service.getVersion().toMajorPart();
|
408
|
+
serviceDomain = service.getDomain();// checked in registry
|
409
|
+
serviceInfo = service.getInitialInfo();
|
410
|
+
|
411
|
+
_verifyServiceInfo(service, serviceInfo, owner);
|
412
|
+
|
413
|
+
VersionPart releaseVersion = _next; // never 0
|
414
|
+
address expectedAuthority = _admin.authority(); // can be zero if registering service when release is not created
|
415
|
+
|
416
|
+
// IMPORTANT: can not guarantee service access is actually controlled by authority
|
417
|
+
if(serviceAuthority != expectedAuthority) {
|
418
|
+
revert ErrorReleaseRegistryServiceReleaseAuthorityMismatch(
|
419
|
+
service,
|
420
|
+
serviceAuthority,
|
421
|
+
expectedAuthority);
|
422
|
+
}
|
423
|
+
|
424
|
+
if(serviceVersion != releaseVersion) {
|
425
|
+
revert ErrorReleaseRegistryServiceReleaseVersionMismatch(
|
426
|
+
service,
|
427
|
+
serviceVersion,
|
428
|
+
releaseVersion);
|
429
|
+
}
|
430
|
+
}
|
431
|
+
|
432
|
+
|
433
|
+
function _verifyServiceInfo(
|
434
|
+
IService service,
|
435
|
+
IRegistry.ObjectInfo memory info,
|
436
|
+
address expectedOwner // assume always valid, can not be 0
|
437
|
+
)
|
438
|
+
internal
|
439
|
+
view
|
440
|
+
{
|
441
|
+
if(info.objectAddress != address(service)) {
|
442
|
+
revert ErrorReleaseRegistryServiceInfoAddressInvalid(service, address(service));
|
443
|
+
}
|
444
|
+
|
445
|
+
if(info.isInterceptor != false) { // service is never interceptor
|
446
|
+
revert ErrorReleaseRegistryServiceInfoInterceptorInvalid(service, info.isInterceptor);
|
447
|
+
}
|
448
|
+
|
449
|
+
if(info.objectType != SERVICE()) {
|
450
|
+
revert ErrorReleaseRegistryServiceInfoTypeInvalid(service, SERVICE(), info.objectType);
|
451
|
+
}
|
452
|
+
|
453
|
+
address owner = info.initialOwner;
|
454
|
+
|
455
|
+
if(owner != expectedOwner) { // registerable owner protection
|
456
|
+
revert ErrorReleaseRegistryServiceInfoOwnerInvalid(service, expectedOwner, owner);
|
457
|
+
}
|
458
|
+
|
459
|
+
if(owner == address(service)) {
|
460
|
+
revert ErrorReleaseRegistryServiceSelfRegistration(service);
|
461
|
+
}
|
462
|
+
|
463
|
+
if(_registry.isRegistered(owner)) {
|
464
|
+
revert ErrorReleaseRegistryServiceOwnerRegistered(service, owner);
|
465
|
+
}
|
466
|
+
}
|
467
|
+
|
468
|
+
/// @dev returns true iff a the address passes some simple proxy tests.
|
469
|
+
function _isRegistry(address registryAddress) internal view returns (bool) {
|
470
|
+
|
471
|
+
// zero address is certainly not registry
|
472
|
+
if (registryAddress == address(0)) {
|
473
|
+
return false;
|
474
|
+
}
|
475
|
+
// TODO try catch and return false in case of revert
|
476
|
+
// or just panic
|
477
|
+
// check if contract returns a zero nft id for its own address
|
478
|
+
if (IRegistry(registryAddress).getNftId(registryAddress).eqz()) {
|
479
|
+
return false;
|
480
|
+
}
|
481
|
+
|
482
|
+
return true;
|
483
|
+
}
|
484
|
+
}
|
485
|
+
|
@@ -0,0 +1,200 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {
|
5
|
+
ALL, REGISTRY, SERVICE, PRODUCT, ORACLE, POOL, INSTANCE, COMPONENT, DISTRIBUTION, DISTRIBUTOR, APPLICATION, POLICY, CLAIM, BUNDLE, STAKE, STAKING, PRICE
|
6
|
+
} from "../../contracts/type/ObjectType.sol";
|
7
|
+
|
8
|
+
import {ComponentService} from "../shared/ComponentService.sol";
|
9
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
10
|
+
import {IBundleService} from "../pool/IBundleService.sol";
|
11
|
+
import {IDistributionService} from "../distribution/IDistributionService.sol";
|
12
|
+
import {InstanceService} from "../instance/InstanceService.sol";
|
13
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
14
|
+
import {IPoolService} from "../pool/IPoolService.sol";
|
15
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
16
|
+
import {IRegistryService} from "./IRegistryService.sol";
|
17
|
+
import {ServiceAuthorization} from "../authorization/ServiceAuthorization.sol";
|
18
|
+
|
19
|
+
|
20
|
+
contract ServiceAuthorizationV3
|
21
|
+
is ServiceAuthorization
|
22
|
+
{
|
23
|
+
|
24
|
+
constructor(string memory commitHash)
|
25
|
+
ServiceAuthorization(commitHash)
|
26
|
+
{}
|
27
|
+
|
28
|
+
function _setupDomains()
|
29
|
+
internal
|
30
|
+
override
|
31
|
+
{
|
32
|
+
_authorizeDomain(REGISTRY(), address(1));
|
33
|
+
_authorizeDomain(STAKING(), address(2));
|
34
|
+
_authorizeDomain(INSTANCE(), address(3));
|
35
|
+
_authorizeDomain(COMPONENT(), address(4));
|
36
|
+
_authorizeDomain(DISTRIBUTION(), address(5));
|
37
|
+
_authorizeDomain(PRICE(), address(6));
|
38
|
+
_authorizeDomain(BUNDLE(), address(7));
|
39
|
+
_authorizeDomain(POOL(), address(8));
|
40
|
+
_authorizeDomain(ORACLE(), address(9));
|
41
|
+
_authorizeDomain(PRODUCT(), address(10));
|
42
|
+
_authorizeDomain(CLAIM(), address(11));
|
43
|
+
_authorizeDomain(APPLICATION(), address(12));
|
44
|
+
_authorizeDomain(POLICY(), address(13));
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
function _setupDomainAuthorizations()
|
49
|
+
internal
|
50
|
+
override
|
51
|
+
{
|
52
|
+
_setupIRegistryServiceAuthorization();
|
53
|
+
_setupStakingServiceAuthorization();
|
54
|
+
_setupInstanceServiceAuthorization();
|
55
|
+
_setupComponentServiceAuthorization();
|
56
|
+
_setupDistributionServiceAuthorization();
|
57
|
+
_setupPoolServiceAuthorization();
|
58
|
+
_setupBundleServiceAuthorization();
|
59
|
+
}
|
60
|
+
|
61
|
+
|
62
|
+
/// @dev registry service authorization.
|
63
|
+
/// authorized functions MUST be implemented with a restricted modifier
|
64
|
+
function _setupIRegistryServiceAuthorization()
|
65
|
+
internal
|
66
|
+
{
|
67
|
+
IAccess.FunctionInfo[] storage functions;
|
68
|
+
|
69
|
+
functions = _authorizeForService(REGISTRY(), APPLICATION());
|
70
|
+
_authorize(functions, IRegistryService.registerPolicy.selector, "registerPolicy");
|
71
|
+
|
72
|
+
// functions = _authorizeForService(REGISTRY(), POOL());
|
73
|
+
// _authorize(functions, IRegistryService.registerPool.selector, "registerPool");
|
74
|
+
|
75
|
+
functions = _authorizeForService(REGISTRY(), BUNDLE());
|
76
|
+
_authorize(functions, IRegistryService.registerBundle.selector, "registerBundle");
|
77
|
+
|
78
|
+
functions = _authorizeForService(REGISTRY(), DISTRIBUTION());
|
79
|
+
// _authorize(functions, IRegistryService.registerDistribution.selector, "registerDistribution");
|
80
|
+
_authorize(functions, IRegistryService.registerDistributor.selector, "registerDistributor");
|
81
|
+
|
82
|
+
functions = _authorizeForService(REGISTRY(), COMPONENT());
|
83
|
+
_authorize(functions, IRegistryService.registerComponent.selector, "registerComponent");
|
84
|
+
|
85
|
+
functions = _authorizeForService(REGISTRY(), INSTANCE());
|
86
|
+
_authorize(functions, IRegistryService.registerInstance.selector, "registerInstance");
|
87
|
+
|
88
|
+
functions = _authorizeForService(REGISTRY(), STAKING());
|
89
|
+
_authorize(functions, IRegistryService.registerStake.selector, "registerStake");
|
90
|
+
|
91
|
+
// functions = _authorizeForService(REGISTRY(), PRODUCT());
|
92
|
+
// _authorize(functions, IRegistryService.registerProduct.selector, "registerProduct");
|
93
|
+
}
|
94
|
+
|
95
|
+
|
96
|
+
/// @dev staking service authorization.
|
97
|
+
/// authorized functions MUST be implemented with a restricted modifier
|
98
|
+
function _setupStakingServiceAuthorization()
|
99
|
+
internal
|
100
|
+
{
|
101
|
+
IAccess.FunctionInfo[] storage functions;
|
102
|
+
|
103
|
+
functions = _authorizeForService(STAKING(), INSTANCE());
|
104
|
+
_authorize(functions, IStakingService.createInstanceTarget.selector, "createInstanceTarget");
|
105
|
+
_authorize(functions, IStakingService.setInstanceLockingPeriod.selector, "setInstanceLockingPeriod");
|
106
|
+
_authorize(functions, IStakingService.setInstanceRewardRate.selector, "setInstanceRewardRate");
|
107
|
+
_authorize(functions, IStakingService.refillInstanceRewardReserves.selector, "refillInstanceRewardReserves");
|
108
|
+
_authorize(functions, IStakingService.withdrawInstanceRewardReserves.selector, "withdrawInstanceRewardReserves");
|
109
|
+
|
110
|
+
functions = _authorizeForService(STAKING(), ALL());
|
111
|
+
_authorize(functions, IStakingService.create.selector, "create");
|
112
|
+
_authorize(functions, IStakingService.stake.selector, "stake");
|
113
|
+
_authorize(functions, IStakingService.restakeToNewTarget.selector, "restakeToNewTarget");
|
114
|
+
_authorize(functions, IStakingService.updateRewards.selector, "updateRewards");
|
115
|
+
_authorize(functions, IStakingService.claimRewards.selector, "claimRewards");
|
116
|
+
_authorize(functions, IStakingService.unstake.selector, "unstake");
|
117
|
+
}
|
118
|
+
|
119
|
+
|
120
|
+
/// @dev Instance service function authorization.
|
121
|
+
function _setupInstanceServiceAuthorization()
|
122
|
+
internal
|
123
|
+
{
|
124
|
+
IAccess.FunctionInfo[] storage functions;
|
125
|
+
|
126
|
+
functions = _authorizeForService(INSTANCE(), COMPONENT());
|
127
|
+
_authorize(functions, IInstanceService.initializeAuthorization.selector, "initializeAuthorization");
|
128
|
+
}
|
129
|
+
|
130
|
+
|
131
|
+
/// @dev Component service function authorization.
|
132
|
+
function _setupComponentServiceAuthorization()
|
133
|
+
internal
|
134
|
+
{
|
135
|
+
// authz.authorizations = new DomainAuthorization[](4);
|
136
|
+
|
137
|
+
// authz.authorizations[0].domain = POLICY();
|
138
|
+
// _functions = new IAccessAdmin.Function[](1);
|
139
|
+
// __authorize(ComponentService.increaseProductFees.selector, "increaseProductFees"));
|
140
|
+
// authz.authorizations[0].functions = _functions;
|
141
|
+
|
142
|
+
// authz.authorizations[1].domain = DISTRIBUTION();
|
143
|
+
// _functions = new IAccessAdmin.Function[](1);
|
144
|
+
// __authorize(ComponentService.increaseDistributionBalance.selector, "increaseDistributionBalance"));
|
145
|
+
// authz.authorizations[1].functions = _functions;
|
146
|
+
|
147
|
+
// authz.authorizations[2].domain = POOL();
|
148
|
+
// _functions = new IAccessAdmin.Function[](1);
|
149
|
+
// __authorize(ComponentService.increasePoolBalance.selector, "increasePoolBalance"));
|
150
|
+
// authz.authorizations[2].functions = _functions;
|
151
|
+
|
152
|
+
// authz.authorizations[3].domain = BUNDLE();
|
153
|
+
// _functions = new IAccessAdmin.Function[](1);
|
154
|
+
// __authorize(ComponentService.increaseBundleBalance.selector, "increaseBundleBalance"));
|
155
|
+
// authz.authorizations[3].functions = _functions;
|
156
|
+
}
|
157
|
+
|
158
|
+
/// @dev Distribution service function authorization.
|
159
|
+
function _setupDistributionServiceAuthorization()
|
160
|
+
internal
|
161
|
+
{
|
162
|
+
IAccess.FunctionInfo[] storage functions;
|
163
|
+
|
164
|
+
functions = _authorizeForService(DISTRIBUTION(), POLICY());
|
165
|
+
_authorize(functions, IDistributionService.processSale.selector, "processSale");
|
166
|
+
}
|
167
|
+
|
168
|
+
|
169
|
+
/// @dev Pool service function authorization.
|
170
|
+
function _setupPoolServiceAuthorization()
|
171
|
+
internal
|
172
|
+
{
|
173
|
+
IAccess.FunctionInfo[] storage functions;
|
174
|
+
|
175
|
+
functions = _authorizeForService(POOL(), POLICY());
|
176
|
+
_authorize(functions, IPoolService.lockCollateral.selector, "lockCollateral");
|
177
|
+
_authorize(functions, IPoolService.releaseCollateral.selector, "releaseCollateral");
|
178
|
+
_authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
|
179
|
+
_authorize(functions, IPoolService.processSale.selector, "processSale");
|
180
|
+
|
181
|
+
functions = _authorizeForService(POOL(), CLAIM());
|
182
|
+
_authorize(functions, IPoolService.reduceCollateral.selector, "reduceCollateral");
|
183
|
+
}
|
184
|
+
|
185
|
+
|
186
|
+
/// @dev Instance service function authorization.
|
187
|
+
function _setupBundleServiceAuthorization()
|
188
|
+
internal
|
189
|
+
{
|
190
|
+
IAccess.FunctionInfo[] storage functions;
|
191
|
+
|
192
|
+
functions = _authorizeForService(BUNDLE(), POOL());
|
193
|
+
_authorize(functions, IBundleService.create.selector, "create");
|
194
|
+
_authorize(functions, IBundleService.close.selector, "close");
|
195
|
+
_authorize(functions, IBundleService.lockCollateral.selector, "lockCollateral");
|
196
|
+
_authorize(functions, IBundleService.releaseCollateral.selector, "releaseCollateral");
|
197
|
+
_authorize(functions, IBundleService.unlinkPolicy.selector, "unlinkPolicy");
|
198
|
+
}
|
199
|
+
}
|
200
|
+
|