@etherisc/gif-next 0.0.2-9addcc0-107 → 0.0.2-9b4e378-274
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 +51 -5
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1253 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +358 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1032 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +258 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +290 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +148 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +390 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +190 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1489 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +410 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +179 -396
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1512 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +170 -264
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +182 -309
- 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 +240 -2316
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +203 -46
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +427 -2916
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1626 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +601 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +612 -345
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +268 -207
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +112 -102
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3722 -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 +182 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +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 +1126 -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 +765 -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 +1018 -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/{components/Pool.sol/Pool.json → pool/BasicPool.sol/BasicPool.json} +252 -264
- 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 +1474 -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 +212 -35
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +909 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +343 -212
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +442 -356
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1591 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +746 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +852 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +722 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1243 -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 +1437 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +826 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +25 -127
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IClaimService.sol/IClaimService.json +145 -2
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IPolicyService.sol/IPolicyService.json +229 -85
- 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/{components → product}/IProductComponent.sol/IProductComponent.json +271 -184
- 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} +15 -57
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1226 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +766 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +972 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +766 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/Product.sol/Product.json +345 -342
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +695 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +702 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +183 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +206 -124
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +444 -44
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1746 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +374 -72
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +105 -41
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +164 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1159 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +214 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -140
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/Component.sol/Component.json +105 -146
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1680 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +804 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +22 -114
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +77 -108
- 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 +700 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +59 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +1 -6
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +7 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +21 -3
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +7 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +20 -1
- 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 +940 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +497 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +133 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -9
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +31 -13
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +23 -9
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +20 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +364 -9
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -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 +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1975 -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 +765 -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 +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 +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 +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/{types → type}/StateId.sol/StateIdLib.json +3 -3
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/{types → type}/Timestamp.sol/TimestampLib.json +39 -7
- 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/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +617 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +591 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +217 -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/{components → distribution}/Distribution.sol +167 -157
- package/contracts/distribution/DistributionService.sol +336 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +33 -33
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +27 -27
- package/contracts/instance/IInstance.sol +37 -78
- package/contracts/instance/IInstanceService.sol +50 -21
- package/contracts/instance/Instance.sol +138 -227
- package/contracts/instance/InstanceAdmin.sol +285 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +203 -0
- package/contracts/instance/InstanceReader.sol +122 -66
- package/contracts/instance/InstanceService.sol +292 -309
- package/contracts/instance/InstanceServiceManager.sol +12 -26
- package/contracts/instance/InstanceStore.sol +291 -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 +110 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +18 -21
- package/contracts/instance/module/IAccess.sol +4 -12
- package/contracts/instance/module/IBundle.sol +6 -9
- package/contracts/instance/module/IComponents.sol +20 -15
- package/contracts/instance/module/IDistribution.sol +5 -6
- package/contracts/instance/module/IPolicy.sol +39 -31
- package/contracts/instance/module/IRisk.sol +1 -1
- 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 +167 -0
- package/contracts/oracle/OracleService.sol +279 -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 +438 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +46 -30
- package/contracts/pool/IPoolComponent.sol +58 -0
- package/contracts/{instance/service → pool}/IPoolService.sol +91 -45
- package/contracts/pool/Pool.sol +326 -0
- package/contracts/pool/PoolService.sol +509 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +249 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +11 -8
- package/contracts/product/BasicProduct.sol +53 -0
- package/contracts/product/BasicProductAuthorization.sol +43 -0
- package/contracts/{instance/service → product}/ClaimService.sol +171 -127
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +11 -8
- package/contracts/{instance/service → product}/IApplicationService.sol +11 -27
- package/contracts/{instance/service → product}/IClaimService.sol +48 -16
- package/contracts/product/IPolicyService.sol +73 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/{components → product}/IProductComponent.sol +15 -17
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +574 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +301 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/{components → product}/Product.sol +202 -149
- package/contracts/product/RiskService.sol +97 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +8 -1
- package/contracts/registry/IRegistry.sol +60 -27
- package/contracts/registry/IRegistryService.sol +42 -39
- package/contracts/registry/Registry.sol +235 -126
- package/contracts/registry/RegistryAdmin.sol +374 -0
- package/contracts/registry/RegistryService.sol +69 -99
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +27 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +199 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +268 -0
- package/contracts/shared/ComponentService.sol +641 -0
- package/contracts/shared/ComponentServiceManager.sol +35 -0
- package/contracts/shared/ComponentVerifyingService.sol +117 -0
- package/contracts/{components → shared}/IComponent.sol +21 -41
- package/contracts/shared/IComponentService.sol +108 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +49 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +3 -4
- package/contracts/shared/INftOwnable.sol +2 -2
- package/contracts/shared/IPolicyHolder.sol +10 -5
- package/contracts/shared/IService.sol +10 -3
- package/contracts/shared/InitializableCustom.sol +177 -0
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +2 -2
- 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 +6 -17
- package/contracts/shared/PolicyHolder.sol +24 -19
- package/contracts/shared/Registerable.sol +3 -3
- package/contracts/shared/Service.sol +32 -22
- package/contracts/shared/TokenHandler.sol +113 -9
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +160 -0
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +498 -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 +407 -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/{types → type}/Amount.sol +29 -3
- package/contracts/{types → type}/Blocknumber.sol +26 -3
- package/contracts/{types → type}/Fee.sol +17 -16
- package/contracts/{types → type}/NftId.sol +14 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +275 -0
- package/contracts/{types → type}/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +1 -1
- package/contracts/type/RoleId.sol +174 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +27 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +17 -3
- package/contracts/{types → type}/UFixed.sol +34 -9
- package/contracts/{types → type}/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +36 -7
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +1 -1
- package/package.json +8 -5
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/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 -1124
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -688
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1283
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -696
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -1384
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -752
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1847
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -816
- 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 -1281
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -740
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1622
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -708
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -864
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -640
- 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 -569
- 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 -370
- 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 -588
- 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 -281
- 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 -179
- 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 -312
- 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 -209
- 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/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -272
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -114
- package/contracts/components/Pool.sol +0 -302
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -527
- package/contracts/instance/base/ComponentService.sol +0 -130
- package/contracts/instance/base/KeyValueStore.sol +0 -149
- package/contracts/instance/base/Lifecycle.sol +0 -120
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -356
- package/contracts/instance/service/BundleService.sol +0 -385
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/DistributionService.sol +0 -432
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IPolicyService.sol +0 -80
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -372
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -403
- 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/ChainId.sol +0 -38
- package/contracts/types/NumberId.sol +0 -52
- package/contracts/types/ObjectType.sol +0 -157
- package/contracts/types/RoleId.sol +0 -97
- package/contracts/types/Seconds.sol +0 -54
- /package/contracts/{types → type}/ClaimId.sol +0 -0
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
- /package/contracts/{types → type}/PayoutId.sol +0 -0
@@ -4,20 +4,40 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
6
|
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {BundleSet} from "./BundleSet.sol";
|
10
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {RoleId} from "../type/RoleId.sol";
|
13
|
+
import {SecondsLib} from "../type/Seconds.sol";
|
14
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
15
|
+
import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, ORACLE_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
16
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
17
|
+
|
18
|
+
import {Service} from "../shared/Service.sol";
|
19
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
20
|
+
import {IService} from "../shared/IService.sol";
|
21
|
+
|
22
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
23
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
24
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
25
|
+
|
26
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
27
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
28
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
29
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
|
+
|
7
31
|
import {Instance} from "./Instance.sol";
|
32
|
+
import {IModuleAuthorization} from "../authorization/IModuleAuthorization.sol";
|
8
33
|
import {IInstance} from "./IInstance.sol";
|
9
|
-
import {
|
34
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
10
35
|
import {IInstanceService} from "./IInstanceService.sol";
|
11
36
|
import {InstanceReader} from "./InstanceReader.sol";
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
|
16
|
-
import {Service} from "../../contracts/shared/Service.sol";
|
17
|
-
import {NftId} from "../../contracts/types/NftId.sol";
|
18
|
-
import {RoleId} from "../types/RoleId.sol";
|
19
|
-
import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../types/RoleId.sol";
|
20
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
|
37
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
38
|
+
import {Seconds} from "../type/Seconds.sol";
|
39
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
40
|
+
|
21
41
|
|
22
42
|
contract InstanceService is
|
23
43
|
Service,
|
@@ -28,27 +48,45 @@ contract InstanceService is
|
|
28
48
|
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
29
49
|
|
30
50
|
IRegistryService internal _registryService;
|
31
|
-
|
32
|
-
|
51
|
+
IStakingService internal _stakingService;
|
52
|
+
|
53
|
+
address internal _masterAccessManager;
|
54
|
+
address internal _masterInstanceAdmin;
|
33
55
|
address internal _masterInstance;
|
34
56
|
address internal _masterInstanceReader;
|
35
|
-
address internal
|
57
|
+
address internal _masterInstanceBundleSet;
|
58
|
+
address internal _masterInstanceStore;
|
36
59
|
|
37
|
-
|
38
|
-
|
39
|
-
|
60
|
+
|
61
|
+
modifier onlyInstance() {
|
62
|
+
address instanceAddress = msg.sender;
|
63
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
64
|
+
if (instanceNftId.eqz()) {
|
65
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
66
|
+
}
|
67
|
+
|
68
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
69
|
+
if (objectType != INSTANCE()) {
|
70
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
71
|
+
}
|
72
|
+
|
73
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getMajorVersion();
|
74
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
75
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
40
76
|
}
|
77
|
+
|
41
78
|
_;
|
42
79
|
}
|
43
|
-
|
44
|
-
|
45
|
-
modifier
|
46
|
-
if
|
80
|
+
|
81
|
+
|
82
|
+
modifier onlyInstanceOwner(NftId instanceNftId) {
|
83
|
+
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
47
84
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
48
85
|
}
|
49
86
|
_;
|
50
87
|
}
|
51
|
-
|
88
|
+
|
89
|
+
// TODO check component - service - instance version match
|
52
90
|
modifier onlyComponent() {
|
53
91
|
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
54
92
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
@@ -56,307 +94,167 @@ contract InstanceService is
|
|
56
94
|
_;
|
57
95
|
}
|
58
96
|
|
59
|
-
function
|
97
|
+
function createInstance()
|
60
98
|
external
|
61
99
|
returns (
|
62
100
|
Instance clonedInstance,
|
63
101
|
NftId clonedInstanceNftId
|
64
102
|
)
|
65
103
|
{
|
104
|
+
// tx sender will become instance owner
|
66
105
|
address instanceOwner = msg.sender;
|
67
|
-
AccessManagerUpgradeableInitializeable clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
|
68
|
-
Clones.clone(_masterOzAccessManager));
|
69
106
|
|
70
|
-
//
|
71
|
-
|
72
|
-
|
73
|
-
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
74
|
-
clonedOzAccessManager.initialize(address(this));
|
107
|
+
// create instance admin and instance
|
108
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
109
|
+
clonedInstance = _createInstance(instanceAdmin, instanceOwner);
|
75
110
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
address(getRegistry()),
|
80
|
-
instanceOwner);
|
81
|
-
|
82
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
83
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
84
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
111
|
+
// register cloned instance with registry
|
112
|
+
clonedInstanceNftId = _registryService.registerInstance(
|
113
|
+
clonedInstance, instanceOwner).nftId;
|
85
114
|
|
86
|
-
|
87
|
-
|
88
|
-
|
115
|
+
// register cloned instance as staking target
|
116
|
+
_stakingService.createInstanceTarget(
|
117
|
+
clonedInstanceNftId,
|
118
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
119
|
+
TargetManagerLib.getDefaultRewardRate());
|
89
120
|
|
90
|
-
|
91
|
-
|
92
|
-
clonedInstanceAccessManager.initialize(address(clonedInstance));
|
93
|
-
clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
|
121
|
+
// MUST be set after instance is set up and registered
|
122
|
+
instanceAdmin.initializeInstanceAuthorization(address(clonedInstance));
|
94
123
|
|
95
|
-
|
124
|
+
emit LogInstanceCloned(
|
125
|
+
clonedInstanceNftId,
|
126
|
+
address(clonedInstance));
|
127
|
+
}
|
96
128
|
|
97
|
-
_grantInitialAuthorizations(clonedInstanceAccessManager, clonedInstance, clonedBundleManager, instanceOwner);
|
98
129
|
|
99
|
-
|
130
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
131
|
+
external
|
132
|
+
virtual
|
133
|
+
onlyInstance()
|
134
|
+
{
|
135
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
136
|
+
_stakingService.setInstanceLockingPeriod(
|
137
|
+
instanceNftId,
|
138
|
+
stakeLockingPeriod);
|
139
|
+
}
|
100
140
|
|
101
|
-
IRegistry.ObjectInfo memory info = _registryService.registerInstance(clonedInstance, instanceOwner);
|
102
|
-
clonedInstanceNftId = info.nftId;
|
103
141
|
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
142
|
+
function setStakingRewardRate(UFixed rewardRate)
|
143
|
+
external
|
144
|
+
virtual
|
145
|
+
onlyInstance()
|
146
|
+
{
|
147
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
148
|
+
_stakingService.setInstanceRewardRate(
|
149
|
+
instanceNftId,
|
150
|
+
rewardRate);
|
111
151
|
}
|
112
152
|
|
113
|
-
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
118
|
-
internal
|
153
|
+
|
154
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
155
|
+
external
|
156
|
+
virtual
|
157
|
+
onlyInstance()
|
119
158
|
{
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
|
126
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
|
127
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
|
128
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
|
129
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
130
|
-
_grantInstanceOwnerAuthorizations(clonedAccessManager, instanceOwner);
|
159
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
160
|
+
_stakingService.refillInstanceRewardReserves(
|
161
|
+
instanceNftId,
|
162
|
+
rewardProvider,
|
163
|
+
dipAmount);
|
131
164
|
}
|
132
165
|
|
133
|
-
function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
|
134
|
-
// default roles controlled by ADMIN_ROLE -> core roles
|
135
|
-
// all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
|
136
|
-
clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
137
|
-
clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
|
138
|
-
clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
|
139
|
-
clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
|
140
|
-
clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
|
141
|
-
clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
142
|
-
clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
143
|
-
clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
144
|
-
// default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
|
145
|
-
clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
|
146
|
-
clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
|
147
|
-
clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
|
148
|
-
}
|
149
166
|
|
150
|
-
function
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](11);
|
161
|
-
instanceDistributionServiceSelectors[0] = clonedInstance.createDistributionSetup.selector;
|
162
|
-
instanceDistributionServiceSelectors[1] = clonedInstance.updateDistributionSetup.selector;
|
163
|
-
instanceDistributionServiceSelectors[2] = clonedInstance.createDistributorType.selector;
|
164
|
-
instanceDistributionServiceSelectors[3] = clonedInstance.updateDistributorType.selector;
|
165
|
-
instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
|
166
|
-
instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
|
167
|
-
instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
|
168
|
-
instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
|
169
|
-
instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
|
170
|
-
instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
|
171
|
-
instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
|
172
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
173
|
-
"Instance",
|
174
|
-
instanceDistributionServiceSelectors,
|
175
|
-
DISTRIBUTION_SERVICE_ROLE());
|
167
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
168
|
+
external
|
169
|
+
virtual
|
170
|
+
onlyInstance()
|
171
|
+
returns (Amount newBalance)
|
172
|
+
{
|
173
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
174
|
+
_stakingService.withdrawInstanceRewardReserves(
|
175
|
+
instanceNftId,
|
176
|
+
dipAmount);
|
176
177
|
}
|
177
178
|
|
178
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
179
|
-
// configure authorization for pool service on instance
|
180
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
|
181
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
182
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
183
|
-
instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
|
184
|
-
instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
|
185
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
186
|
-
"Instance",
|
187
|
-
instancePoolServiceSelectors,
|
188
|
-
POOL_SERVICE_ROLE());
|
189
|
-
}
|
190
179
|
|
191
|
-
function
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
instanceProductServiceSelectors[2] = clonedInstance.createRisk.selector;
|
199
|
-
instanceProductServiceSelectors[3] = clonedInstance.updateRisk.selector;
|
200
|
-
instanceProductServiceSelectors[4] = clonedInstance.updateRiskState.selector;
|
201
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
202
|
-
"Instance",
|
203
|
-
instanceProductServiceSelectors,
|
204
|
-
PRODUCT_SERVICE_ROLE());
|
205
|
-
}
|
180
|
+
function setComponentLocked(bool locked)
|
181
|
+
external
|
182
|
+
virtual
|
183
|
+
onlyComponent()
|
184
|
+
{
|
185
|
+
// checks
|
186
|
+
address componentAddress = msg.sender;
|
206
187
|
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
|
211
|
-
bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
|
212
|
-
instanceApplicationServiceSelectors[0] = clonedInstance.createApplication.selector;
|
213
|
-
instanceApplicationServiceSelectors[1] = clonedInstance.updateApplication.selector;
|
214
|
-
instanceApplicationServiceSelectors[2] = clonedInstance.updateApplicationState.selector;
|
215
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
216
|
-
"Instance",
|
217
|
-
instanceApplicationServiceSelectors,
|
218
|
-
APPLICATION_SERVICE_ROLE());
|
219
|
-
}
|
188
|
+
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
189
|
+
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
190
|
+
}
|
220
191
|
|
221
|
-
|
222
|
-
|
223
|
-
address policyServiceAddress = getRegistry().getServiceAddress(POLICY(), getVersion().toMajorPart());
|
224
|
-
clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), policyServiceAddress);
|
225
|
-
bytes4[] memory instancePolicyServiceSelectors = new bytes4[](2);
|
226
|
-
instancePolicyServiceSelectors[0] = clonedInstance.updatePolicy.selector;
|
227
|
-
instancePolicyServiceSelectors[1] = clonedInstance.updatePolicyState.selector;
|
228
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
229
|
-
"Instance",
|
230
|
-
instancePolicyServiceSelectors,
|
231
|
-
POLICY_SERVICE_ROLE());
|
232
|
-
}
|
192
|
+
IRegistry registry = getRegistry();
|
193
|
+
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
233
194
|
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
clonedAccessManager.grantRole(CLAIM_SERVICE_ROLE(), claimServiceAddress);
|
238
|
-
|
239
|
-
bytes4[] memory instancePolicyServiceSelectors = new bytes4[](1);
|
240
|
-
instancePolicyServiceSelectors[0] = clonedInstance.updatePolicyClaims.selector;
|
241
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
242
|
-
"Instance",
|
243
|
-
instancePolicyServiceSelectors,
|
244
|
-
CLAIM_SERVICE_ROLE());
|
245
|
-
|
246
|
-
bytes4[] memory instanceClaimServiceSelectors = new bytes4[](4);
|
247
|
-
instanceClaimServiceSelectors[0] = clonedInstance.createClaim.selector;
|
248
|
-
instanceClaimServiceSelectors[1] = clonedInstance.updateClaim.selector;
|
249
|
-
instanceClaimServiceSelectors[2] = clonedInstance.createPayout.selector;
|
250
|
-
instanceClaimServiceSelectors[3] = clonedInstance.updatePayout.selector;
|
251
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
252
|
-
"Instance",
|
253
|
-
instanceClaimServiceSelectors,
|
254
|
-
CLAIM_SERVICE_ROLE());
|
255
|
-
}
|
195
|
+
IInstance instance = IInstance(
|
196
|
+
registry.getObjectInfo(
|
197
|
+
instanceNftId).objectAddress);
|
256
198
|
|
257
|
-
|
258
|
-
//
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
instanceBundleServiceSelectors[0] = clonedInstance.createBundle.selector;
|
263
|
-
instanceBundleServiceSelectors[1] = clonedInstance.updateBundle.selector;
|
264
|
-
instanceBundleServiceSelectors[2] = clonedInstance.updateBundleState.selector;
|
265
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
266
|
-
"Instance",
|
267
|
-
instanceBundleServiceSelectors,
|
268
|
-
BUNDLE_SERVICE_ROLE());
|
269
|
-
|
270
|
-
// configure authorization for bundle service on bundle manager
|
271
|
-
bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
|
272
|
-
bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
|
273
|
-
bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
|
274
|
-
bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
|
275
|
-
bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
|
276
|
-
bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
|
277
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
278
|
-
"BundleManager",
|
279
|
-
bundleManagerBundleServiceSelectors,
|
280
|
-
BUNDLE_SERVICE_ROLE());
|
199
|
+
// no revert in case already locked
|
200
|
+
// TODO refactor/implement
|
201
|
+
// instance.getInstanceAdmin().setTargetLockedByService(
|
202
|
+
// componentAddress,
|
203
|
+
// locked);
|
281
204
|
}
|
282
205
|
|
283
|
-
function _grantInstanceServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
284
|
-
// configure authorization for instance service on instance
|
285
|
-
address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getVersion().toMajorPart());
|
286
|
-
clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
|
287
|
-
bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
|
288
|
-
instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
|
289
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
290
|
-
"Instance",
|
291
|
-
instanceInstanceServiceSelectors,
|
292
|
-
INSTANCE_SERVICE_ROLE());
|
293
|
-
|
294
|
-
// configure authorizations for instance service on instance access manager
|
295
|
-
bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](3);
|
296
|
-
accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
297
|
-
accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLocked.selector;
|
298
|
-
accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
|
299
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
300
|
-
"InstanceAccessManager",
|
301
|
-
accessManagerInstanceServiceSelectors,
|
302
|
-
INSTANCE_SERVICE_ROLE());
|
303
|
-
}
|
304
206
|
|
305
|
-
function
|
306
|
-
|
307
|
-
// instance owner role is granted/revoked ONLY by INSTANCE_ROLE
|
308
|
-
bytes4[] memory accessManagerInstanceOwnerSelectors = new bytes4[](3);
|
309
|
-
accessManagerInstanceOwnerSelectors[0] = clonedAccessManager.createRole.selector;
|
310
|
-
accessManagerInstanceOwnerSelectors[1] = clonedAccessManager.createTarget.selector;
|
311
|
-
accessManagerInstanceOwnerSelectors[2] = clonedAccessManager.setTargetFunctionRole.selector;
|
312
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
313
|
-
"InstanceAccessManager",
|
314
|
-
accessManagerInstanceOwnerSelectors,
|
315
|
-
INSTANCE_OWNER_ROLE());
|
207
|
+
function getMasterInstanceReader() external view returns (address) {
|
208
|
+
return _masterInstanceReader;
|
316
209
|
}
|
317
210
|
|
318
|
-
|
319
|
-
function setAndRegisterMasterInstance(address instanceAddress)
|
211
|
+
function setAndRegisterMasterInstance(address instanceAddress)
|
320
212
|
external
|
321
213
|
onlyOwner
|
322
214
|
returns(NftId masterInstanceNftId)
|
323
215
|
{
|
324
216
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
325
|
-
if(
|
326
|
-
if(
|
327
|
-
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
217
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
218
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
328
219
|
|
329
220
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
330
221
|
|
331
222
|
IInstance instance = IInstance(instanceAddress);
|
332
|
-
|
333
|
-
|
223
|
+
address accessManagerAddress = instance.authority();
|
224
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
225
|
+
address instanceAdminAddress = address(instanceAdmin);
|
334
226
|
InstanceReader instanceReader = instance.getInstanceReader();
|
335
227
|
address instanceReaderAddress = address(instanceReader);
|
336
|
-
|
228
|
+
BundleSet bundleManager = instance.getBundleSet();
|
337
229
|
address bundleManagerAddress = address(bundleManager);
|
230
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
231
|
+
address instanceStoreAddress = address(instanceStore);
|
338
232
|
|
339
|
-
if(
|
233
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
234
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
340
235
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
341
|
-
if(bundleManagerAddress == address(0)) { revert
|
236
|
+
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
237
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
342
238
|
|
343
|
-
if(instance.authority() !=
|
344
|
-
if(bundleManager.authority() !=
|
239
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
240
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
241
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
345
242
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
346
243
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
347
244
|
|
348
|
-
|
349
|
-
|
245
|
+
_masterAccessManager = accessManagerAddress;
|
246
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
350
247
|
_masterInstance = instanceAddress;
|
351
248
|
_masterInstanceReader = instanceReaderAddress;
|
352
|
-
|
249
|
+
_masterInstanceBundleSet = bundleManagerAddress;
|
250
|
+
_masterInstanceStore = instanceStoreAddress;
|
353
251
|
|
354
252
|
IInstance masterInstance = IInstance(_masterInstance);
|
355
253
|
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
356
254
|
masterInstanceNftId = info.nftId;
|
357
255
|
}
|
358
256
|
|
359
|
-
function
|
257
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
360
258
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
361
259
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
362
260
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -376,12 +274,11 @@ contract InstanceService is
|
|
376
274
|
Instance instance = Instance(instanceInfo.objectAddress);
|
377
275
|
|
378
276
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
379
|
-
upgradedInstanceReaderClone.
|
277
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
380
278
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
381
279
|
}
|
382
280
|
|
383
281
|
|
384
|
-
// all gif targets MUST be childs of instanceNftId
|
385
282
|
function createGifTarget(
|
386
283
|
NftId instanceNftId,
|
387
284
|
address targetAddress,
|
@@ -390,50 +287,133 @@ contract InstanceService is
|
|
390
287
|
RoleId[] memory roles
|
391
288
|
)
|
392
289
|
external
|
393
|
-
|
290
|
+
virtual
|
291
|
+
restricted()
|
394
292
|
{
|
395
|
-
(
|
396
|
-
|
397
|
-
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
// set proposed target config
|
403
|
-
// TODO restriction: for gif targets can set only once and only here?
|
404
|
-
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
405
|
-
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
|
406
|
-
{
|
407
|
-
accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
|
408
|
-
}
|
293
|
+
_createGifTarget(
|
294
|
+
instanceNftId,
|
295
|
+
targetAddress,
|
296
|
+
targetName,
|
297
|
+
roles,
|
298
|
+
selectors
|
299
|
+
);
|
409
300
|
}
|
410
301
|
|
411
302
|
|
412
|
-
|
413
|
-
|
414
|
-
|
303
|
+
function initializeAuthorization(
|
304
|
+
NftId instanceNftId,
|
305
|
+
IInstanceLinkedComponent component
|
306
|
+
)
|
307
|
+
external
|
308
|
+
virtual
|
309
|
+
restricted()
|
310
|
+
{
|
311
|
+
(IInstance instance, ) = _validateInstanceAndComponent(
|
312
|
+
instanceNftId,
|
313
|
+
address(component));
|
314
|
+
|
315
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
316
|
+
instanceAdmin.initializeComponentAuthorization(
|
317
|
+
component,
|
318
|
+
component.getAuthorization());
|
319
|
+
}
|
415
320
|
|
416
|
-
address componentAddress = msg.sender;
|
417
|
-
IRegistry registry = getRegistry();
|
418
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
419
321
|
|
420
|
-
|
421
|
-
|
422
|
-
|
322
|
+
function createComponentTarget(
|
323
|
+
NftId instanceNftId,
|
324
|
+
address targetAddress,
|
325
|
+
string memory targetName,
|
326
|
+
bytes4[][] memory selectors,
|
327
|
+
RoleId[] memory roles
|
328
|
+
)
|
329
|
+
external
|
330
|
+
virtual
|
331
|
+
restricted()
|
332
|
+
{
|
333
|
+
_createGifTarget(
|
334
|
+
instanceNftId,
|
335
|
+
targetAddress,
|
336
|
+
targetName,
|
337
|
+
roles,
|
338
|
+
selectors
|
339
|
+
);
|
340
|
+
}
|
423
341
|
|
424
|
-
|
425
|
-
|
426
|
-
|
342
|
+
/// @dev create new cloned instance admin
|
343
|
+
/// function used to setup a new instance
|
344
|
+
function _createInstanceAdmin()
|
345
|
+
internal
|
346
|
+
virtual
|
347
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
348
|
+
{
|
349
|
+
// start with setting up a new OZ access manager
|
350
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
351
|
+
Clones.clone(_masterAccessManager));
|
352
|
+
|
353
|
+
// set up the instance admin
|
354
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
355
|
+
clonedAccessManager.initialize(
|
356
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
357
|
+
|
358
|
+
clonedInstanceAdmin.initialize(
|
359
|
+
clonedAccessManager,
|
360
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
427
361
|
}
|
428
362
|
|
429
363
|
|
430
|
-
|
431
|
-
|
364
|
+
/// @dev create new cloned instance
|
365
|
+
/// function used to setup a new instance
|
366
|
+
function _createInstance(
|
367
|
+
InstanceAdmin instanceAdmin,
|
368
|
+
address instanceOwner
|
369
|
+
)
|
370
|
+
internal
|
371
|
+
virtual
|
372
|
+
returns (Instance clonedInstance)
|
373
|
+
{
|
374
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
375
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
376
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
377
|
+
|
378
|
+
// clone instance
|
379
|
+
clonedInstance = Instance(Clones.clone(_masterInstance));
|
380
|
+
clonedInstance.initialize(
|
381
|
+
instanceAdmin,
|
382
|
+
clonedInstanceStore,
|
383
|
+
clonedBundleSet,
|
384
|
+
clonedInstanceReader,
|
385
|
+
getRegistry(),
|
386
|
+
instanceOwner);
|
432
387
|
}
|
433
388
|
|
434
|
-
|
435
|
-
|
436
|
-
|
389
|
+
|
390
|
+
/// all gif targets MUST be children of instanceNftId
|
391
|
+
function _createGifTarget(
|
392
|
+
NftId instanceNftId,
|
393
|
+
address targetAddress,
|
394
|
+
string memory targetName,
|
395
|
+
RoleId[] memory roles,
|
396
|
+
bytes4[][] memory selectors
|
397
|
+
)
|
398
|
+
internal
|
399
|
+
virtual
|
400
|
+
{
|
401
|
+
// TODO instanceAdmin will check target instance match anyway
|
402
|
+
(
|
403
|
+
IInstance instance, // or instanceInfo
|
404
|
+
// or targetInfo
|
405
|
+
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
406
|
+
|
407
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
408
|
+
|
409
|
+
// TODO refactor/implement
|
410
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
411
|
+
|
412
|
+
// set proposed target config
|
413
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
414
|
+
// TODO refactor/implement
|
415
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
416
|
+
}
|
437
417
|
}
|
438
418
|
|
439
419
|
/// @dev top level initializer
|
@@ -446,18 +426,16 @@ contract InstanceService is
|
|
446
426
|
virtual override
|
447
427
|
{
|
448
428
|
(
|
449
|
-
address registryAddress
|
450
|
-
address
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
456
|
-
|
457
|
-
|
458
|
-
|
459
|
-
// owner is InstanceServiceManager deployer
|
460
|
-
initializeService(registryAddress, address(0), owner);
|
429
|
+
address registryAddress,,
|
430
|
+
//address managerAddress
|
431
|
+
address authority
|
432
|
+
) = abi.decode(data, (address, address, address));
|
433
|
+
|
434
|
+
initializeService(registryAddress, authority, owner);
|
435
|
+
|
436
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
437
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
438
|
+
|
461
439
|
registerInterface(type(IInstanceService).interfaceId);
|
462
440
|
}
|
463
441
|
|
@@ -470,7 +448,7 @@ contract InstanceService is
|
|
470
448
|
IRegistry registry = getRegistry();
|
471
449
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
472
450
|
if(instanceInfo.objectType != INSTANCE()) {
|
473
|
-
revert
|
451
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
474
452
|
}
|
475
453
|
|
476
454
|
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
@@ -481,4 +459,9 @@ contract InstanceService is
|
|
481
459
|
instance = Instance(instanceInfo.objectAddress);
|
482
460
|
componentNftId = componentInfo.nftId;
|
483
461
|
}
|
462
|
+
|
463
|
+
// From IService
|
464
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
465
|
+
return INSTANCE();
|
466
|
+
}
|
484
467
|
}
|