@etherisc/gif-next 0.0.2-b312c9a-831 → 0.0.2-b37fa8b-169
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 +63 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +134 -59
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +94 -50
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +85 -9
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +640 -269
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +202 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +409 -33
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +525 -213
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +179 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +246 -16
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +420 -27
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +105 -153
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +381 -46
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +58 -95
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +533 -218
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +150 -82
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +45 -82
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +379 -79
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +157 -114
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +298 -236
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +380 -45
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +178 -168
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +380 -45
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +94 -68
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +183 -141
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +355 -52
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +574 -282
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +380 -45
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +332 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +88 -45
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +494 -49
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +395 -12
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +542 -109
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +965 -365
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +327 -64
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +907 -571
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +399 -79
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +83 -57
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +802 -1748
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2835 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +141 -85
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +8 -8
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- 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 +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +77 -49
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +379 -47
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +49 -21
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +56 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +61 -33
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +120 -68
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +99 -55
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +102 -82
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +355 -52
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +304 -226
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +120 -76
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +200 -89
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +59 -31
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +333 -169
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +72 -44
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +572 -358
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -74
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +293 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -46
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +193 -150
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +380 -45
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +292 -195
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +127 -99
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +235 -4
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +181 -19
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +160 -68
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +77 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +176 -133
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +258 -22
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +278 -187
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +129 -85
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +135 -126
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +103 -75
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +187 -144
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +326 -91
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +103 -47
- 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 +54 -19
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +56 -3
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/{authorization/AccessAdmin.sol/IAccessManagedChecker.json → registry/IRelease.sol/IRelease.json} +6 -6
- 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 +92 -57
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +727 -466
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1074 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +71 -35
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +79 -43
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +386 -64
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +437 -26
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +120 -60
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +60 -32
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +227 -250
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +113 -69
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +178 -34
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +49 -21
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +131 -153
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +49 -21
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +43 -6
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +139 -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 +56 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +60 -32
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +43 -6
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +21 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +137 -62
- 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 +51 -11
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +63 -162
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +118 -29
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +32 -32
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1468 -128
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +214 -110
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1623 -254
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +132 -65
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +294 -177
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +253 -174
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +87 -55
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +1632 -818
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +160 -88
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +11 -11
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +45 -19
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +94 -38
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +33 -31
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +30 -6
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +42 -157
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +45 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +21 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +50 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +3 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +61 -37
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +65 -27
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +15 -2
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- package/contracts/accounting/AccountingService.sol +18 -8
- package/contracts/accounting/AccountingServiceManager.sol +1 -1
- package/contracts/accounting/IAccountingService.sol +4 -2
- package/contracts/authorization/AccessAdmin.sol +422 -258
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +142 -262
- package/contracts/authorization/IAccess.sol +25 -7
- package/contracts/authorization/IAccessAdmin.sol +87 -80
- package/contracts/authorization/IAuthorization.sol +9 -43
- package/contracts/authorization/IServiceAuthorization.sol +55 -17
- package/contracts/authorization/ServiceAuthorization.sol +248 -34
- package/contracts/distribution/BasicDistribution.sol +13 -11
- package/contracts/distribution/BasicDistributionAuthorization.sol +29 -9
- package/contracts/distribution/Distribution.sol +20 -60
- package/contracts/distribution/DistributionService.sol +172 -81
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionComponent.sol +3 -10
- package/contracts/distribution/IDistributionService.sol +34 -19
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FirePoolAuthorization.sol +1 -1
- package/contracts/examples/fire/FireProduct.sol +10 -13
- package/contracts/examples/fire/FireProductAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +32 -8
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -8
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -5
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +1 -1
- package/contracts/examples/unpermissioned/SimpleProduct.sol +112 -27
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +1 -1
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +4 -4
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +103 -18
- package/contracts/instance/IInstanceService.sol +55 -6
- package/contracts/instance/Instance.sol +176 -64
- package/contracts/instance/InstanceAdmin.sol +263 -169
- package/contracts/instance/InstanceAuthorizationV3.sol +119 -64
- package/contracts/instance/InstanceReader.sol +420 -369
- package/contracts/instance/InstanceService.sol +306 -183
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +10 -72
- package/contracts/instance/ProductStore.sol +235 -0
- package/contracts/instance/RiskSet.sol +21 -14
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +4 -6
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +6 -8
- package/contracts/instance/base/ObjectSet.sol +7 -8
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +19 -7
- package/contracts/instance/module/IDistribution.sol +21 -8
- package/contracts/instance/module/IPolicy.sol +28 -8
- package/contracts/instance/module/IRisk.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +2 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +15 -8
- package/contracts/oracle/IOracle.sol +9 -4
- package/contracts/oracle/Oracle.sol +3 -5
- package/contracts/oracle/OracleService.sol +24 -23
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +3 -16
- package/contracts/pool/BasicPoolAuthorization.sol +29 -16
- package/contracts/pool/BundleService.sol +60 -99
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +27 -32
- package/contracts/pool/IPoolService.sol +57 -40
- package/contracts/pool/Pool.sol +13 -25
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +192 -193
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +88 -20
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +3 -3
- package/contracts/product/BasicProductAuthorization.sol +31 -9
- package/contracts/product/ClaimService.sol +221 -209
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +24 -2
- package/contracts/product/IClaimService.sol +18 -5
- package/contracts/product/IPolicyService.sol +20 -8
- package/contracts/product/IPricingService.sol +1 -0
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/IRiskService.sol +25 -10
- package/contracts/product/PolicyService.sol +113 -204
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +52 -46
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +93 -27
- package/contracts/product/RiskService.sol +121 -38
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +23 -24
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/Registry.sol +22 -11
- package/contracts/registry/RegistryAdmin.sol +107 -373
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +4 -4
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +157 -117
- package/contracts/registry/ServiceAuthorizationV3.sol +163 -28
- package/contracts/registry/TokenRegistry.sol +61 -59
- package/contracts/shared/Component.sol +23 -28
- package/contracts/shared/ComponentService.sol +317 -317
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ContractLib.sol +164 -76
- package/contracts/shared/IComponent.sol +1 -5
- package/contracts/shared/IComponentService.sol +21 -26
- package/contracts/shared/IKeyValueStore.sol +9 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +15 -5
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InitializableERC165.sol +9 -1
- package/contracts/shared/InstanceLinkedComponent.sol +6 -9
- package/contracts/shared/KeyValueStore.sol +3 -3
- package/contracts/shared/NftOwnable.sol +8 -6
- package/contracts/shared/PolicyHolder.sol +4 -3
- package/contracts/shared/Registerable.sol +42 -19
- package/contracts/shared/RegistryLinked.sol +1 -1
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +45 -92
- package/contracts/staking/IStaking.sol +266 -72
- package/contracts/staking/IStakingService.sol +45 -75
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +494 -211
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +55 -84
- package/contracts/staking/StakingManager.sol +4 -3
- package/contracts/staking/StakingReader.sol +58 -77
- package/contracts/staking/StakingService.sol +62 -181
- package/contracts/staking/StakingServiceManager.sol +6 -4
- package/contracts/staking/StakingStore.sol +1093 -330
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +69 -46
- package/contracts/type/Amount.sol +4 -0
- package/contracts/type/Blocknumber.sol +15 -15
- package/contracts/type/ChainId.sol +101 -0
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/NftId.sol +3 -3
- package/contracts/type/ObjectType.sol +62 -41
- package/contracts/type/RiskId.sol +9 -3
- package/contracts/type/RoleId.sol +63 -45
- package/contracts/type/Seconds.sol +19 -0
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/String.sol +12 -0
- package/contracts/type/Timestamp.sol +4 -7
- package/contracts/type/UFixed.sol +35 -127
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +26 -12
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +12 -2
- package/contracts/upgradeability/Versionable.sol +6 -3
- package/package.json +2 -2
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +0 -474
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -440
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +0 -4
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +0 -205
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentVerifyingService.sol +0 -128
- package/contracts/staking/StakingLifecycle.sol +0 -23
@@ -3,31 +3,31 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
|
6
|
-
import {
|
7
|
-
import {
|
8
|
-
import {
|
9
|
-
import {
|
10
|
-
import {
|
11
|
-
import {NftId} from "../type/NftId.sol";
|
12
|
-
import {RoleId} from "../type/RoleId.sol";
|
13
|
-
import {UFixed} from "../type/UFixed.sol";
|
14
|
-
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
15
|
-
|
16
|
-
import {Service} from "../shared/Service.sol";
|
17
|
-
|
6
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
9
|
+
import {IInstance} from "./IInstance.sol";
|
10
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
18
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
19
12
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
20
13
|
import {IStakingService} from "../staking/IStakingService.sol";
|
21
|
-
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
22
14
|
|
23
|
-
import {
|
15
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
16
|
+
import {Amount} from "../type/Amount.sol";
|
17
|
+
import {BundleSet} from "./BundleSet.sol";
|
24
18
|
import {Instance} from "./Instance.sol";
|
25
|
-
import {IInstance} from "./IInstance.sol";
|
26
19
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
27
|
-
import {IInstanceService} from "./IInstanceService.sol";
|
28
20
|
import {InstanceReader} from "./InstanceReader.sol";
|
29
21
|
import {InstanceStore} from "./InstanceStore.sol";
|
22
|
+
import {NftId} from "../type/NftId.sol";
|
23
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
24
|
+
import {ProductStore} from "./ProductStore.sol";
|
25
|
+
import {RiskSet} from "./RiskSet.sol";
|
26
|
+
import {RoleId} from "../type/RoleId.sol";
|
30
27
|
import {Seconds} from "../type/Seconds.sol";
|
28
|
+
import {Service} from "../shared/Service.sol";
|
29
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
|
+
import {UFixed} from "../type/UFixed.sol";
|
31
31
|
import {VersionPart} from "../type/Version.sol";
|
32
32
|
|
33
33
|
|
@@ -50,46 +50,141 @@ contract InstanceService is
|
|
50
50
|
address internal _masterInstanceBundleSet;
|
51
51
|
address internal _masterInstanceRiskSet;
|
52
52
|
address internal _masterInstanceStore;
|
53
|
+
address internal _masterProductStore;
|
53
54
|
|
54
55
|
|
55
|
-
modifier onlyInstance() {
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
60
|
-
}
|
56
|
+
modifier onlyInstance() {
|
57
|
+
_checkInstance(msg.sender, getRelease());
|
58
|
+
_;
|
59
|
+
}
|
61
60
|
|
62
|
-
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
63
|
-
if (objectType != INSTANCE()) {
|
64
|
-
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
65
|
-
}
|
66
61
|
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
62
|
+
/// @inheritdoc IInstanceService
|
63
|
+
function createRole(
|
64
|
+
string memory roleName,
|
65
|
+
RoleId adminRoleId,
|
66
|
+
uint32 maxMemberCount
|
67
|
+
)
|
68
|
+
external
|
69
|
+
restricted()
|
70
|
+
onlyInstance()
|
71
|
+
returns (RoleId roleId)
|
72
|
+
{
|
73
|
+
IInstance instance = IInstance(msg.sender);
|
74
|
+
roleId = instance.getInstanceAdmin().createRole(
|
75
|
+
roleName,
|
76
|
+
adminRoleId,
|
77
|
+
maxMemberCount);
|
78
|
+
}
|
71
79
|
|
72
|
-
|
80
|
+
|
81
|
+
/// @inheritdoc IInstanceService
|
82
|
+
function setRoleActive(RoleId roleId, bool active)
|
83
|
+
external
|
84
|
+
restricted()
|
85
|
+
onlyInstance()
|
86
|
+
{
|
87
|
+
IInstance instance = IInstance(msg.sender);
|
88
|
+
instance.getInstanceAdmin().setRoleActive(roleId, active);
|
73
89
|
}
|
74
90
|
|
75
91
|
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
92
|
+
/// @inheritdoc IInstanceService
|
93
|
+
function grantRole(RoleId roleId, address account)
|
94
|
+
external
|
95
|
+
restricted()
|
96
|
+
onlyInstance()
|
97
|
+
{
|
98
|
+
IInstance instance = IInstance(msg.sender);
|
99
|
+
instance.getInstanceAdmin().grantRole(roleId, account);
|
81
100
|
}
|
82
101
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
102
|
+
|
103
|
+
/// @inheritdoc IInstanceService
|
104
|
+
function revokeRole(RoleId roleId, address account)
|
105
|
+
external
|
106
|
+
restricted()
|
107
|
+
onlyInstance()
|
108
|
+
{
|
109
|
+
IInstance instance = IInstance(msg.sender);
|
110
|
+
instance.getInstanceAdmin().revokeRole(roleId, account);
|
111
|
+
}
|
112
|
+
|
113
|
+
|
114
|
+
/// @inheritdoc IInstanceService
|
115
|
+
function createTarget(address target, string memory name)
|
116
|
+
external
|
117
|
+
restricted()
|
118
|
+
onlyInstance()
|
119
|
+
returns (RoleId contractRoleId)
|
120
|
+
{
|
121
|
+
IInstance instance = IInstance(msg.sender);
|
122
|
+
return instance.getInstanceAdmin().createTarget(target, name);
|
89
123
|
}
|
90
124
|
|
91
|
-
|
125
|
+
|
126
|
+
/// @inheritdoc IInstanceService
|
127
|
+
function authorizeFunctions(
|
128
|
+
address target,
|
129
|
+
RoleId roleId,
|
130
|
+
IAccess.FunctionInfo[] memory functions
|
131
|
+
)
|
92
132
|
external
|
133
|
+
restricted()
|
134
|
+
onlyInstance()
|
135
|
+
{
|
136
|
+
IInstance instance = IInstance(msg.sender);
|
137
|
+
return instance.getInstanceAdmin().authorizeFunctions(target, roleId, functions);
|
138
|
+
}
|
139
|
+
|
140
|
+
|
141
|
+
/// @inheritdoc IInstanceService
|
142
|
+
function unauthorizeFunctions(
|
143
|
+
address target,
|
144
|
+
IAccess.FunctionInfo[] memory functions
|
145
|
+
)
|
146
|
+
external
|
147
|
+
restricted()
|
148
|
+
onlyInstance()
|
149
|
+
{
|
150
|
+
IInstance instance = IInstance(msg.sender);
|
151
|
+
return instance.getInstanceAdmin().unauthorizeFunctions(target, functions);
|
152
|
+
}
|
153
|
+
|
154
|
+
|
155
|
+
/// @inheritdoc IInstanceService
|
156
|
+
function setTargetLocked(address target, bool locked)
|
157
|
+
external
|
158
|
+
virtual
|
159
|
+
restricted()
|
160
|
+
onlyInstance()
|
161
|
+
{
|
162
|
+
address instanceAddress = msg.sender;
|
163
|
+
IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
|
164
|
+
}
|
165
|
+
|
166
|
+
|
167
|
+
/// @inheritdoc IInstanceService
|
168
|
+
function setInstanceLocked(bool locked)
|
169
|
+
external
|
170
|
+
virtual
|
171
|
+
restricted()
|
172
|
+
onlyInstance()
|
173
|
+
{
|
174
|
+
address instanceAddress = msg.sender;
|
175
|
+
IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
|
176
|
+
|
177
|
+
emit LogInstanceServiceInstanceLocked(
|
178
|
+
getRegistry().getNftIdForAddress(instanceAddress),
|
179
|
+
locked);
|
180
|
+
}
|
181
|
+
|
182
|
+
|
183
|
+
/// @inheritdoc IInstanceService
|
184
|
+
function createInstance(bool allowAnyToken)
|
185
|
+
external
|
186
|
+
virtual
|
187
|
+
restricted()
|
93
188
|
returns (
|
94
189
|
IInstance instance,
|
95
190
|
NftId instanceNftId
|
@@ -99,23 +194,32 @@ contract InstanceService is
|
|
99
194
|
address instanceOwner = msg.sender;
|
100
195
|
|
101
196
|
// create instance admin and instance
|
102
|
-
InstanceAdmin instanceAdmin =
|
103
|
-
instance = _createInstance(instanceAdmin, instanceOwner);
|
197
|
+
InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
|
198
|
+
instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
|
104
199
|
|
105
200
|
// register cloned instance with registry
|
106
201
|
instanceNftId = _registryService.registerInstance(
|
107
202
|
instance, instanceOwner).nftId;
|
108
203
|
|
204
|
+
// MUST be set after instance is set up and registered
|
205
|
+
IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
|
206
|
+
instanceAdmin.completeSetup(
|
207
|
+
address(getRegistry()),
|
208
|
+
address(instanceAuthorization),
|
209
|
+
getRelease(),
|
210
|
+
address(instance));
|
211
|
+
|
212
|
+
// hard checks for newly cloned instance
|
213
|
+
assert(address(instance.getRegistry()) == address(getRegistry()));
|
214
|
+
assert(instance.getRelease() == getRelease());
|
215
|
+
|
109
216
|
// register cloned instance as staking target
|
110
217
|
_stakingService.createInstanceTarget(
|
111
218
|
instanceNftId,
|
112
219
|
TargetManagerLib.getDefaultLockingPeriod(),
|
113
220
|
TargetManagerLib.getDefaultRewardRate());
|
114
221
|
|
115
|
-
|
116
|
-
instanceAdmin.initializeInstanceAuthorization(address(instance));
|
117
|
-
|
118
|
-
emit LogInstanceCloned(
|
222
|
+
emit LogInstanceServiceInstanceCreated(
|
119
223
|
instanceNftId,
|
120
224
|
address(instance));
|
121
225
|
}
|
@@ -124,6 +228,7 @@ contract InstanceService is
|
|
124
228
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
125
229
|
external
|
126
230
|
virtual
|
231
|
+
restricted()
|
127
232
|
onlyInstance()
|
128
233
|
{
|
129
234
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
@@ -136,6 +241,7 @@ contract InstanceService is
|
|
136
241
|
function setStakingRewardRate(UFixed rewardRate)
|
137
242
|
external
|
138
243
|
virtual
|
244
|
+
restricted()
|
139
245
|
onlyInstance()
|
140
246
|
{
|
141
247
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
@@ -144,40 +250,74 @@ contract InstanceService is
|
|
144
250
|
rewardRate);
|
145
251
|
}
|
146
252
|
|
253
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
254
|
+
external
|
255
|
+
virtual
|
256
|
+
restricted()
|
257
|
+
onlyInstance()
|
258
|
+
{
|
259
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
260
|
+
_stakingService.setInstanceMaxStakedAmount(
|
261
|
+
instanceNftId,
|
262
|
+
maxStakedAmount);
|
263
|
+
}
|
264
|
+
|
147
265
|
|
148
|
-
function
|
266
|
+
function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount)
|
149
267
|
external
|
150
268
|
virtual
|
269
|
+
restricted()
|
151
270
|
onlyInstance()
|
271
|
+
returns (Amount newBalance)
|
152
272
|
{
|
153
273
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
154
|
-
_stakingService.refillInstanceRewardReserves(
|
274
|
+
newBalance = _stakingService.refillInstanceRewardReserves(
|
155
275
|
instanceNftId,
|
156
276
|
rewardProvider,
|
157
277
|
dipAmount);
|
158
278
|
}
|
159
279
|
|
160
280
|
|
161
|
-
function
|
281
|
+
function withdrawInstanceRewardReserves(Amount dipAmount)
|
162
282
|
external
|
163
283
|
virtual
|
284
|
+
restricted()
|
164
285
|
onlyInstance()
|
165
286
|
returns (Amount newBalance)
|
166
287
|
{
|
167
288
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
168
|
-
_stakingService.withdrawInstanceRewardReserves(
|
289
|
+
newBalance = _stakingService.withdrawInstanceRewardReserves(
|
169
290
|
instanceNftId,
|
170
291
|
dipAmount);
|
171
292
|
}
|
172
293
|
|
173
|
-
|
174
|
-
|
294
|
+
|
295
|
+
function upgradeInstanceReader()
|
296
|
+
external
|
297
|
+
virtual
|
298
|
+
restricted()
|
299
|
+
onlyInstance()
|
300
|
+
{
|
301
|
+
address instanceAddress = msg.sender;
|
302
|
+
IInstance instance = IInstance(msg.sender);
|
303
|
+
|
304
|
+
InstanceReader upgradedInstanceReaderClone = InstanceReader(
|
305
|
+
Clones.clone(address(_masterInstanceReader)));
|
306
|
+
|
307
|
+
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
308
|
+
instance.setInstanceReader(upgradedInstanceReaderClone);
|
309
|
+
|
310
|
+
emit LogInstanceServiceInstanceReaderUpgraded(
|
311
|
+
getRegistry().getNftIdForAddress(instanceAddress),
|
312
|
+
address(upgradedInstanceReaderClone));
|
175
313
|
}
|
176
314
|
|
315
|
+
|
177
316
|
function setAndRegisterMasterInstance(address instanceAddress)
|
178
|
-
|
179
|
-
|
180
|
-
|
317
|
+
external
|
318
|
+
virtual
|
319
|
+
onlyOwner()
|
320
|
+
returns(NftId masterInstanceNftId)
|
181
321
|
{
|
182
322
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
183
323
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
@@ -185,48 +325,62 @@ contract InstanceService is
|
|
185
325
|
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
186
326
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
187
327
|
|
188
|
-
|
189
|
-
|
190
|
-
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
|
221
|
-
|
222
|
-
|
328
|
+
{
|
329
|
+
IInstance instance = IInstance(instanceAddress);
|
330
|
+
address accessManagerAddress = instance.authority();
|
331
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
332
|
+
address instanceAdminAddress = address(instanceAdmin);
|
333
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
334
|
+
address instanceReaderAddress = address(instanceReader);
|
335
|
+
BundleSet bundleSet = instance.getBundleSet();
|
336
|
+
address bundleSetAddress = address(bundleSet);
|
337
|
+
RiskSet riskSet = instance.getRiskSet();
|
338
|
+
address riskSetAddress = address(riskSet);
|
339
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
340
|
+
address instanceStoreAddress = address(instanceStore);
|
341
|
+
ProductStore productStore = instance.getProductStore();
|
342
|
+
address productStoreAddress = address(productStore);
|
343
|
+
|
344
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
345
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
346
|
+
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
347
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
348
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
349
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
350
|
+
if(productStoreAddress == address(0)) { revert ErrorInstanceServiceProductStoreZero(); } // TODO: rename exception
|
351
|
+
|
352
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
353
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
354
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
355
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
356
|
+
if(productStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceProductStoreAuthorityMismatch(); }
|
357
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
358
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
359
|
+
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
360
|
+
|
361
|
+
_masterAccessManager = accessManagerAddress;
|
362
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
363
|
+
_masterInstance = instanceAddress;
|
364
|
+
_masterInstanceReader = instanceReaderAddress;
|
365
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
366
|
+
_masterInstanceRiskSet = riskSetAddress;
|
367
|
+
_masterInstanceStore = instanceStoreAddress;
|
368
|
+
_masterProductStore = productStoreAddress;
|
369
|
+
}
|
223
370
|
|
224
|
-
|
225
|
-
|
226
|
-
|
371
|
+
{
|
372
|
+
IInstance masterInstance = IInstance(_masterInstance);
|
373
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
374
|
+
masterInstanceNftId = info.nftId;
|
375
|
+
}
|
227
376
|
}
|
228
377
|
|
229
|
-
|
378
|
+
|
379
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
380
|
+
external
|
381
|
+
virtual
|
382
|
+
onlyOwner
|
383
|
+
{
|
230
384
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
231
385
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
232
386
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -235,43 +389,37 @@ contract InstanceService is
|
|
235
389
|
if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
|
236
390
|
|
237
391
|
_masterInstanceReader = instanceReaderAddress;
|
392
|
+
|
393
|
+
emit LogInstanceServiceMasterInstanceReaderUpgraded(
|
394
|
+
getRegistry().getNftIdForAddress(_masterInstance),
|
395
|
+
instanceReaderAddress);
|
238
396
|
}
|
239
397
|
|
240
|
-
function
|
241
|
-
|
242
|
-
onlyInstanceOwner(instanceNftId)
|
243
|
-
onlyNftOfType(instanceNftId, INSTANCE())
|
244
|
-
{
|
245
|
-
IRegistry registry = getRegistry();
|
246
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
247
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
248
|
-
|
249
|
-
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
250
|
-
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
251
|
-
instance.setInstanceReader(upgradedInstanceReaderClone);
|
398
|
+
function getMasterInstanceReader() external virtual view returns (address) {
|
399
|
+
return _masterInstanceReader;
|
252
400
|
}
|
253
401
|
|
402
|
+
//--- internal functions --------------------------------------------------------//
|
403
|
+
|
254
404
|
/// @dev create new cloned instance admin
|
255
405
|
/// function used to setup a new instance
|
256
|
-
function
|
406
|
+
function _cloneNewInstanceAdmin()
|
257
407
|
internal
|
258
408
|
virtual
|
259
|
-
returns (InstanceAdmin
|
409
|
+
returns (InstanceAdmin clonedAdmin)
|
260
410
|
{
|
261
|
-
//
|
411
|
+
// clone instance specific access manager
|
262
412
|
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
263
|
-
Clones.clone(
|
413
|
+
Clones.clone(
|
414
|
+
InstanceAdmin(_masterInstanceAdmin).authority()));
|
264
415
|
|
265
416
|
// set up the instance admin
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
InstanceAdmin
|
272
|
-
clonedInstanceAdmin.initialize(
|
273
|
-
clonedAccessManager,
|
274
|
-
authorization);
|
417
|
+
clonedAdmin = InstanceAdmin(
|
418
|
+
Clones.clone(_masterInstanceAdmin));
|
419
|
+
|
420
|
+
clonedAdmin.initialize(
|
421
|
+
address(clonedAccessManager),
|
422
|
+
"InstanceAdmin");
|
275
423
|
}
|
276
424
|
|
277
425
|
|
@@ -279,61 +427,34 @@ contract InstanceService is
|
|
279
427
|
/// function used to setup a new instance
|
280
428
|
function _createInstance(
|
281
429
|
InstanceAdmin instanceAdmin,
|
282
|
-
address instanceOwner
|
430
|
+
address instanceOwner,
|
431
|
+
bool allowAnyToken
|
283
432
|
)
|
284
433
|
internal
|
285
434
|
virtual
|
286
435
|
returns (IInstance)
|
287
436
|
{
|
288
|
-
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
289
|
-
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
290
|
-
RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
|
291
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
292
|
-
|
293
437
|
// clone instance
|
294
438
|
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
295
439
|
clonedInstance.initialize(
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
440
|
+
IInstance.InstanceContracts({
|
441
|
+
instanceAdmin: instanceAdmin,
|
442
|
+
instanceStore: InstanceStore(Clones.clone(address(_masterInstanceStore))),
|
443
|
+
productStore: ProductStore(Clones.clone(address(_masterProductStore))),
|
444
|
+
bundleSet: BundleSet(Clones.clone(_masterInstanceBundleSet)),
|
445
|
+
riskSet: RiskSet(Clones.clone(_masterInstanceRiskSet)),
|
446
|
+
instanceReader: InstanceReader(Clones.clone(address(_masterInstanceReader)))
|
447
|
+
}),
|
301
448
|
getRegistry(),
|
302
|
-
|
449
|
+
getRelease(),
|
450
|
+
instanceOwner,
|
451
|
+
allowAnyToken);
|
452
|
+
|
303
453
|
return clonedInstance;
|
304
454
|
}
|
305
455
|
|
306
456
|
|
307
|
-
///
|
308
|
-
function _createGifTarget(
|
309
|
-
NftId instanceNftId,
|
310
|
-
address targetAddress,
|
311
|
-
string memory targetName,
|
312
|
-
RoleId[] memory roles,
|
313
|
-
bytes4[][] memory selectors
|
314
|
-
)
|
315
|
-
internal
|
316
|
-
virtual
|
317
|
-
{
|
318
|
-
// TODO instanceAdmin will check target instance match anyway
|
319
|
-
(
|
320
|
-
IInstance instance, // or instanceInfo
|
321
|
-
// or targetInfo
|
322
|
-
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
323
|
-
|
324
|
-
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
325
|
-
|
326
|
-
// TODO refactor/implement
|
327
|
-
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
328
|
-
|
329
|
-
// set proposed target config
|
330
|
-
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
331
|
-
// TODO refactor/implement
|
332
|
-
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
333
|
-
}
|
334
|
-
}
|
335
|
-
|
336
|
-
/// @dev top level initializer
|
457
|
+
/// @dev top level initializer (upgradable contract)
|
337
458
|
function _initialize(
|
338
459
|
address owner,
|
339
460
|
bytes memory data
|
@@ -343,11 +464,11 @@ contract InstanceService is
|
|
343
464
|
initializer()
|
344
465
|
{
|
345
466
|
(
|
346
|
-
address
|
347
|
-
address
|
467
|
+
address authority,
|
468
|
+
address registry
|
348
469
|
) = abi.decode(data, (address, address));
|
349
470
|
|
350
|
-
|
471
|
+
__Service_init(authority, registry, owner);
|
351
472
|
|
352
473
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
353
474
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
@@ -357,33 +478,35 @@ contract InstanceService is
|
|
357
478
|
}
|
358
479
|
|
359
480
|
|
360
|
-
function
|
481
|
+
function _checkInstance(
|
482
|
+
address instanceAddress,
|
483
|
+
VersionPart expectedRelease
|
484
|
+
)
|
361
485
|
internal
|
486
|
+
virtual
|
362
487
|
view
|
363
|
-
returns (IInstance instance, NftId componentNftId)
|
364
488
|
{
|
365
489
|
IRegistry registry = getRegistry();
|
366
|
-
|
367
|
-
|
368
|
-
|
490
|
+
|
491
|
+
NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
|
492
|
+
if (instanceNftId.eqz()) {
|
493
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
369
494
|
}
|
370
495
|
|
371
|
-
|
372
|
-
|
496
|
+
ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
|
497
|
+
if (objectType != INSTANCE()) {
|
498
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
499
|
+
}
|
373
500
|
|
374
|
-
|
375
|
-
|
501
|
+
if (expectedRelease.gtz()) {
|
502
|
+
VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
|
503
|
+
if (instanceRelease != expectedRelease) {
|
504
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
|
376
505
|
}
|
377
|
-
|
378
|
-
componentNftId = componentInfo.nftId;
|
379
|
-
} else {
|
380
|
-
|
381
506
|
}
|
382
|
-
|
383
|
-
instance = Instance(instanceInfo.objectAddress);
|
384
|
-
|
385
507
|
}
|
386
508
|
|
509
|
+
|
387
510
|
// From IService
|
388
511
|
function _getDomain() internal pure override returns(ObjectType) {
|
389
512
|
return INSTANCE();
|
@@ -17,7 +17,7 @@ contract InstanceServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|