@etherisc/gif-next 0.0.2-a733491-751 → 0.0.2-a78920e-322
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 +83 -93
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/{instance/module/ISetup.sol/ISetup.json → authorization/IAccess.sol/IAccess.json} +2 -2
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1310 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +1004 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1494 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +862 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +321 -361
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +984 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1415 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +1965 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1429 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1163 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1592 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2267 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +703 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +304 -2127
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +260 -101
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +368 -2916
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1671 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +561 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1028 -361
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +333 -364
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +159 -114
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3668 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +318 -0
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +4 -0
- package/artifacts/contracts/instance/{Cloneable.sol → base/Cloneable.sol}/Cloneable.json +1 -49
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +12 -115
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +4 -0
- package/artifacts/contracts/instance/module/{ITreasury.sol/ITreasury.json → IComponents.sol/IComponents.json} +2 -2
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +947 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +370 -283
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +344 -334
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +982 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +746 -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} +468 -550
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1469 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +850 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +964 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +410 -402
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1285 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.json +1015 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1635 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +786 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +787 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +734 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +420 -532
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1439 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +858 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +173 -89
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +942 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +931 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IPricingService.sol/IPricingService.json} +244 -238
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → product}/IProductComponent.sol/IProductComponent.json +457 -272
- 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} +120 -64
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1316 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +802 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +923 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +786 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1092 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +72 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +457 -27
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -123
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -0
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +949 -128
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +349 -253
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +161 -94
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +316 -153
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/shared/Component.sol/Component.json +695 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1916 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +838 -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} +118 -185
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +111 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +245 -138
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1467 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/IKeyValueStore.sol/IKeyValueStore.json +95 -14
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +4 -0
- package/artifacts/contracts/{instance/base → shared}/ILifecycle.sol/ILifecycle.json +35 -4
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +19 -10
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +59 -13
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +28 -6
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +0 -13
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +135 -18
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +785 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +4 -0
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +538 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +4 -0
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +174 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +28 -70
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +35 -85
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +69 -99
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -28
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +136 -108
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +734 -8
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +723 -677
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1043 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1816 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +780 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1265 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +734 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +4 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +10 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +4 -0
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +398 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +4 -0
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +225 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +203 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +4 -0
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +104 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +4 -0
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +317 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +4 -0
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +125 -0
- package/artifacts/contracts/type/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 +142 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +369 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +4 -0
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +246 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +105 -0
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +4 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +312 -0
- package/artifacts/contracts/type/UFixed.sol/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 +548 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +177 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +68 -0
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +596 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +284 -0
- package/contracts/distribution/DistributionService.sol +354 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/distribution/IDistributionService.sol +100 -0
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +65 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +33 -32
- package/contracts/instance/IInstance.sol +45 -74
- package/contracts/instance/IInstanceService.sol +33 -32
- package/contracts/instance/Instance.sol +164 -230
- package/contracts/instance/InstanceAdmin.sol +283 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +264 -62
- package/contracts/instance/InstanceService.sol +246 -333
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +287 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/{Cloneable.sol → base/Cloneable.sol} +4 -22
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/{ObjectManager.sol → base/ObjectSet.sol} +19 -24
- package/contracts/instance/module/IAccess.sol +6 -14
- package/contracts/instance/module/IBundle.sol +8 -8
- package/contracts/instance/module/IComponents.sol +50 -0
- package/contracts/instance/module/IDistribution.sol +6 -4
- package/contracts/instance/module/IPolicy.sol +56 -18
- package/contracts/instance/module/IRisk.sol +1 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +292 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +68 -0
- package/contracts/pool/BundleService.sol +485 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +140 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +172 -0
- package/contracts/pool/Pool.sol +345 -0
- package/contracts/pool/PoolService.sol +620 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +259 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +614 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
- package/contracts/{instance/service → product}/IApplicationService.sol +17 -36
- package/contracts/product/IClaimService.sol +123 -0
- package/contracts/product/IPolicyService.sol +82 -0
- package/contracts/product/IPricingService.sol +39 -0
- package/contracts/product/IProductComponent.sol +59 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +695 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +300 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +432 -0
- package/contracts/product/RiskService.sol +96 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -34
- package/contracts/registry/IRegistry.sol +98 -26
- package/contracts/registry/IRegistryService.sol +36 -41
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +454 -198
- package/contracts/registry/RegistryAdmin.sol +462 -0
- package/contracts/registry/RegistryService.sol +87 -129
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +204 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +234 -0
- package/contracts/shared/ComponentService.sol +826 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +54 -0
- package/contracts/shared/IComponent.sol +67 -0
- package/contracts/shared/IComponentService.sol +134 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/IKeyValueStore.sol +16 -11
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +4 -2
- package/contracts/shared/IPolicyHolder.sol +23 -14
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +15 -6
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +197 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +32 -25
- package/contracts/shared/PolicyHolder.sol +22 -41
- package/contracts/shared/Registerable.sol +31 -22
- package/contracts/shared/RegistryLinked.sol +9 -19
- package/contracts/shared/Service.sol +55 -29
- package/contracts/shared/TokenHandler.sol +382 -12
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +173 -0
- package/contracts/staking/IStakingService.sol +157 -0
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +505 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +453 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +150 -0
- package/contracts/{types → type}/Blocknumber.sol +27 -3
- package/contracts/{types → type}/ClaimId.sol +31 -3
- package/contracts/{types → type}/Fee.sol +33 -23
- package/contracts/{types → type}/NftId.sol +22 -15
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +276 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +6 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +17 -3
- package/contracts/type/RoleId.sol +162 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +102 -0
- package/contracts/{types → type}/StateId.sol +48 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +34 -15
- package/contracts/{types → type}/UFixed.sol +39 -9
- package/contracts/{types → type}/Version.sol +5 -2
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +93 -30
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +3 -3
- package/package.json +11 -7
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -764
- package/artifacts/contracts/instance/Cloneable.sol/Cloneable.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1221
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -261
- package/artifacts/contracts/instance/base/ComponentService.sol/ComponentService.dbg.json +0 -4
- package/artifacts/contracts/instance/base/IKeyValueStore.sol/IKeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ILifecycle.sol/ILifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.dbg.json +0 -4
- package/artifacts/contracts/instance/base/KeyValueStore.sol/KeyValueStore.json +0 -502
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -169
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -858
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -657
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1085
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -743
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -637
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -943
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -681
- package/artifacts/contracts/instance/service/IApplicationService.sol/IApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IBundleService.sol/IBundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IClaimService.sol/IClaimService.json +0 -398
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.json +0 -480
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -336
- 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 -1109
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -717
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -724
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -653
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -766
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -649
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -285
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -547
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractDeployerLib.sol/ContractDeployerLib.json +0 -107
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -582
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.dbg.json +0 -4
- package/artifacts/contracts/test/TestFee.sol/TestFee.json +0 -119
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.dbg.json +0 -4
- package/artifacts/contracts/test/TestRegisterable.sol/TestRegisterable.json +0 -383
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.dbg.json +0 -4
- package/artifacts/contracts/test/TestRoleId.sol/TestRoleId.json +0 -116
- package/artifacts/contracts/test/TestService.sol/TestService.dbg.json +0 -4
- package/artifacts/contracts/test/TestService.sol/TestService.json +0 -510
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.dbg.json +0 -4
- package/artifacts/contracts/test/TestToken.sol/TestUsdc.json +0 -376
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersion.sol/TestVersion.json +0 -218
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.dbg.json +0 -4
- package/artifacts/contracts/test/TestVersionable.sol/TestVersionable.json +0 -104
- package/artifacts/contracts/test/Usdc.sol/USDC.dbg.json +0 -4
- package/artifacts/contracts/test/Usdc.sol/USDC.json +0 -376
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.dbg.json +0 -4
- package/artifacts/contracts/types/AddressSet.sol/LibAddressSet.json +0 -10
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.dbg.json +0 -4
- package/artifacts/contracts/types/Blocknumber.sol/BlocknumberLib.json +0 -174
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ChainId.sol/ChainIdLib.json +0 -10
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/ClaimId.sol/ClaimIdLib.json +0 -100
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/DistributorType.sol/DistributorTypeLib.json +0 -104
- package/artifacts/contracts/types/Fee.sol/FeeLib.dbg.json +0 -4
- package/artifacts/contracts/types/Fee.sol/FeeLib.json +0 -257
- package/artifacts/contracts/types/Key32.sol/Key32Lib.dbg.json +0 -4
- package/artifacts/contracts/types/Key32.sol/Key32Lib.json +0 -125
- package/artifacts/contracts/types/NftId.sol/NftIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NftId.sol/NftIdLib.json +0 -153
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -123
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -249
- 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 -241
- package/contracts/components/Distribution.sol +0 -308
- package/contracts/components/IComponent.sol +0 -54
- package/contracts/components/IDistributionComponent.sol +0 -100
- package/contracts/components/IPoolComponent.sol +0 -87
- package/contracts/components/IProductComponent.sol +0 -39
- package/contracts/components/Pool.sol +0 -254
- package/contracts/components/Product.sol +0 -285
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/InstanceAccessManager.sol +0 -580
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -172
- package/contracts/instance/base/Lifecycle.sol +0 -100
- package/contracts/instance/module/ISetup.sol +0 -47
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -268
- package/contracts/instance/service/BundleService.sol +0 -298
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -295
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -54
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IDistributionService.sol +0 -65
- package/contracts/instance/service/IPolicyService.sol +0 -89
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -474
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -125
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -241
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -322
- package/contracts/shared/ContractDeployerLib.sol +0 -72
- package/contracts/test/TestFee.sol +0 -25
- package/contracts/test/TestRegisterable.sol +0 -18
- package/contracts/test/TestRoleId.sol +0 -14
- package/contracts/test/TestService.sol +0 -25
- package/contracts/test/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 -156
- package/contracts/types/PayoutId.sol +0 -54
- package/contracts/types/RoleId.sol +0 -93
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -2,56 +2,82 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
5
|
|
6
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
8
|
+
import {BundleSet} from "./BundleSet.sol";
|
9
|
+
import {NftId} from "../type/NftId.sol";
|
10
|
+
import {RoleId} from "../type/RoleId.sol";
|
11
|
+
import {UFixed} from "../type/UFixed.sol";
|
12
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
13
|
+
|
14
|
+
import {Service} from "../shared/Service.sol";
|
15
|
+
|
16
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
17
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
18
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
19
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
20
|
+
|
21
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
7
22
|
import {Instance} from "./Instance.sol";
|
8
23
|
import {IInstance} from "./IInstance.sol";
|
9
|
-
import {
|
24
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
10
25
|
import {IInstanceService} from "./IInstanceService.sol";
|
11
26
|
import {InstanceReader} from "./InstanceReader.sol";
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
|
16
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
17
|
-
import {Service} from "../../contracts/shared/Service.sol";
|
18
|
-
import {IService} from "../shared/IService.sol";
|
19
|
-
import {NftId} from "../../contracts/types/NftId.sol";
|
20
|
-
import {RoleId} from "../types/RoleId.sol";
|
21
|
-
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} from "../types/RoleId.sol";
|
22
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
|
23
|
-
import {IDistributionComponent} from "../components/IDistributionComponent.sol";
|
24
|
-
import {IPoolComponent} from "../components/IPoolComponent.sol";
|
25
|
-
import {IProductComponent} from "../components/IProductComponent.sol";
|
27
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
28
|
+
import {Seconds} from "../type/Seconds.sol";
|
29
|
+
import {VersionPart} from "../type/Version.sol";
|
30
|
+
|
26
31
|
|
27
32
|
contract InstanceService is
|
28
33
|
Service,
|
29
34
|
IInstanceService
|
30
35
|
{
|
31
|
-
address internal _masterOzAccessManager;
|
32
|
-
address internal _masterInstanceAccessManager;
|
33
|
-
address internal _masterInstance;
|
34
|
-
address internal _masterInstanceReader;
|
35
|
-
address internal _masterInstanceBundleManager;
|
36
36
|
|
37
37
|
// TODO update to real hash when instance is stable
|
38
38
|
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
39
39
|
|
40
|
-
|
41
|
-
|
42
|
-
|
40
|
+
IRegistryService internal _registryService;
|
41
|
+
IStakingService internal _stakingService;
|
42
|
+
IComponentService internal _componentService;
|
43
|
+
|
44
|
+
address internal _masterAccessManager;
|
45
|
+
address internal _masterInstanceAdmin;
|
46
|
+
address internal _masterInstance;
|
47
|
+
address internal _masterInstanceReader;
|
48
|
+
address internal _masterInstanceBundleSet;
|
49
|
+
address internal _masterInstanceStore;
|
50
|
+
|
51
|
+
|
52
|
+
modifier onlyInstance() {
|
53
|
+
address instanceAddress = msg.sender;
|
54
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
55
|
+
if (instanceNftId.eqz()) {
|
56
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
57
|
+
}
|
58
|
+
|
59
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
60
|
+
if (objectType != INSTANCE()) {
|
61
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
62
|
+
}
|
63
|
+
|
64
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
|
65
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
66
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
43
67
|
}
|
68
|
+
|
44
69
|
_;
|
45
70
|
}
|
46
|
-
|
47
|
-
|
48
|
-
modifier
|
49
|
-
if
|
71
|
+
|
72
|
+
|
73
|
+
modifier onlyInstanceOwner(NftId instanceNftId) {
|
74
|
+
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
50
75
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
51
76
|
}
|
52
77
|
_;
|
53
78
|
}
|
54
|
-
|
79
|
+
|
80
|
+
// TODO check component - service - instance version match
|
55
81
|
modifier onlyComponent() {
|
56
82
|
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
57
83
|
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
@@ -59,307 +85,139 @@ contract InstanceService is
|
|
59
85
|
_;
|
60
86
|
}
|
61
87
|
|
62
|
-
function
|
88
|
+
function createInstance()
|
63
89
|
external
|
64
90
|
returns (
|
65
|
-
|
66
|
-
|
67
|
-
Instance clonedInstance,
|
68
|
-
NftId clonedInstanceNftId,
|
69
|
-
InstanceReader clonedInstanceReader,
|
70
|
-
BundleManager clonedBundleManager
|
91
|
+
IInstance instance,
|
92
|
+
NftId instanceNftId
|
71
93
|
)
|
72
94
|
{
|
95
|
+
// tx sender will become instance owner
|
73
96
|
address instanceOwner = msg.sender;
|
74
|
-
IRegistry registry = getRegistry();
|
75
|
-
address registryAddress = address(registry);
|
76
|
-
NftId registryNftId = registry.getNftId(registryAddress);
|
77
|
-
address registryServiceAddress = registry.getServiceAddress(REGISTRY(), getMajorVersion());
|
78
|
-
IRegistryService registryService = IRegistryService(registryServiceAddress);
|
79
|
-
|
80
|
-
clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
|
81
|
-
Clones.clone(_masterOzAccessManager));
|
82
|
-
|
83
|
-
// initially grants ADMIN_ROLE to this (being the instance service).
|
84
|
-
// This will allow the instance service to bootstrap the authorizations of the instance.
|
85
|
-
// Instance service will not use oz access manager directlly but through instance access manager instead
|
86
|
-
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
87
|
-
clonedOzAccessManager.initialize(address(this));
|
88
|
-
|
89
|
-
clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
90
|
-
clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
|
91
|
-
clonedInstanceAccessManager.initialize(address(clonedOzAccessManager), registryAddress);
|
92
|
-
|
93
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
94
|
-
clonedInstance.initialize(address(clonedInstanceAccessManager), registryAddress, registryNftId, instanceOwner);
|
95
|
-
|
96
|
-
clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
97
|
-
clonedInstanceReader.initialize(registryAddress, address(clonedInstance));
|
98
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
99
|
-
|
100
|
-
clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
101
|
-
clonedBundleManager.initialize(clonedInstanceAccessManager.authority(), registryAddress, address(clonedInstance));
|
102
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
103
|
-
|
104
|
-
// TODO amend setters with instance specific , policy manager ...
|
105
|
-
|
106
|
-
_grantInitialAuthorizations(clonedInstanceAccessManager, clonedInstance, clonedBundleManager, instanceOwner);
|
107
97
|
|
108
|
-
|
98
|
+
// create instance admin and instance
|
99
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
100
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
109
101
|
|
110
|
-
|
111
|
-
|
112
|
-
|
102
|
+
// register cloned instance with registry
|
103
|
+
instanceNftId = _registryService.registerInstance(
|
104
|
+
instance, instanceOwner).nftId;
|
113
105
|
|
114
|
-
|
115
|
-
|
106
|
+
// register cloned instance as staking target
|
107
|
+
_stakingService.createInstanceTarget(
|
108
|
+
instanceNftId,
|
109
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
110
|
+
TargetManagerLib.getDefaultRewardRate());
|
116
111
|
|
117
|
-
|
118
|
-
|
119
|
-
Instance clonedInstance,
|
120
|
-
BundleManager clonedBundleManager,
|
121
|
-
address instanceOwner)
|
122
|
-
internal
|
123
|
-
{
|
124
|
-
_createCoreAndGifRoles(clonedAccessManager);
|
125
|
-
_createCoreTargets(clonedAccessManager, clonedInstance, clonedBundleManager);
|
126
|
-
_grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstance);
|
127
|
-
_grantPoolServiceAuthorizations(clonedAccessManager, clonedInstance);
|
128
|
-
_grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
|
129
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
|
130
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
|
131
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
|
132
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
|
133
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
134
|
-
_grantInstanceOwnerAuthorizations(clonedAccessManager, instanceOwner);
|
135
|
-
}
|
112
|
+
// MUST be set after instance is set up and registered
|
113
|
+
instanceAdmin.initializeInstanceAuthorization(address(instance));
|
136
114
|
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
|
141
|
-
clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
|
142
|
-
clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
|
143
|
-
// default roles controlled by ADMIN_ROLE -> core roles, all set/granted only once during cloning
|
144
|
-
clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
145
|
-
clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
|
146
|
-
clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
|
147
|
-
clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
|
148
|
-
clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
|
149
|
-
clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
150
|
-
clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
151
|
-
clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
115
|
+
emit LogInstanceCloned(
|
116
|
+
instanceNftId,
|
117
|
+
address(instance));
|
152
118
|
}
|
153
119
|
|
154
|
-
function _createCoreTargets(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
|
155
|
-
clonedAccessManager.createCoreTarget(address(clonedAccessManager), "InstanceAccessManager");
|
156
|
-
clonedAccessManager.createCoreTarget(address(clonedInstance), "Instance");
|
157
|
-
clonedAccessManager.createCoreTarget(address(clonedBundleManager), "BundleManager");
|
158
|
-
}
|
159
120
|
|
160
|
-
function
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
instanceDistributionServiceSelectors[3] = clonedInstance.updateDistributorType.selector;
|
170
|
-
instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
|
171
|
-
instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
|
172
|
-
instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
|
173
|
-
instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
|
174
|
-
instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
|
175
|
-
instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
|
176
|
-
instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
|
177
|
-
clonedAccessManager.setTargetFunctionRole(
|
178
|
-
"Instance",
|
179
|
-
instanceDistributionServiceSelectors,
|
180
|
-
DISTRIBUTION_SERVICE_ROLE());
|
121
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
122
|
+
external
|
123
|
+
virtual
|
124
|
+
onlyInstance()
|
125
|
+
{
|
126
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
127
|
+
_stakingService.setInstanceLockingPeriod(
|
128
|
+
instanceNftId,
|
129
|
+
stakeLockingPeriod);
|
181
130
|
}
|
182
131
|
|
183
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
184
|
-
// configure authorization for pool service on instance
|
185
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getMajorVersion());
|
186
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
187
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
188
|
-
instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
|
189
|
-
instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
|
190
|
-
clonedAccessManager.setTargetFunctionRole(
|
191
|
-
"Instance",
|
192
|
-
instancePoolServiceSelectors,
|
193
|
-
POOL_SERVICE_ROLE());
|
194
|
-
}
|
195
132
|
|
196
|
-
function
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
instanceProductServiceSelectors[4] = clonedInstance.updateRiskState.selector;
|
206
|
-
clonedAccessManager.setTargetFunctionRole(
|
207
|
-
"Instance",
|
208
|
-
instanceProductServiceSelectors,
|
209
|
-
PRODUCT_SERVICE_ROLE());
|
133
|
+
function setStakingRewardRate(UFixed rewardRate)
|
134
|
+
external
|
135
|
+
virtual
|
136
|
+
onlyInstance()
|
137
|
+
{
|
138
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
139
|
+
_stakingService.setInstanceRewardRate(
|
140
|
+
instanceNftId,
|
141
|
+
rewardRate);
|
210
142
|
}
|
211
143
|
|
212
|
-
function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
213
|
-
// configure authorization for application services on instance
|
214
|
-
address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getMajorVersion());
|
215
|
-
clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
|
216
|
-
bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
|
217
|
-
instanceApplicationServiceSelectors[0] = clonedInstance.createApplication.selector;
|
218
|
-
instanceApplicationServiceSelectors[1] = clonedInstance.updateApplication.selector;
|
219
|
-
instanceApplicationServiceSelectors[2] = clonedInstance.updateApplicationState.selector;
|
220
|
-
clonedAccessManager.setTargetFunctionRole(
|
221
|
-
"Instance",
|
222
|
-
instanceApplicationServiceSelectors,
|
223
|
-
APPLICATION_SERVICE_ROLE());
|
224
|
-
}
|
225
144
|
|
226
|
-
function
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
POLICY_SERVICE_ROLE());
|
145
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
146
|
+
external
|
147
|
+
virtual
|
148
|
+
onlyInstance()
|
149
|
+
{
|
150
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
151
|
+
_stakingService.refillInstanceRewardReserves(
|
152
|
+
instanceNftId,
|
153
|
+
rewardProvider,
|
154
|
+
dipAmount);
|
237
155
|
}
|
238
156
|
|
239
|
-
function _grantClaimServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
240
|
-
// configure authorization for claim/payout services on instance
|
241
|
-
address claimServiceAddress = getRegistry().getServiceAddress(CLAIM(), getMajorVersion());
|
242
|
-
clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), claimServiceAddress);
|
243
|
-
// TODO add claims function authz
|
244
|
-
bytes4[] memory instanceClaimServiceSelectors = new bytes4[](0);
|
245
|
-
// instanceClaimServiceSelectors[0] = clonedInstance.updatePolicy.selector;
|
246
|
-
// instanceClaimServiceSelectors[1] = clonedInstance.updatePolicyState.selector;
|
247
|
-
clonedAccessManager.setTargetFunctionRole(
|
248
|
-
"Instance",
|
249
|
-
instanceClaimServiceSelectors,
|
250
|
-
CLAIM_SERVICE_ROLE());
|
251
|
-
}
|
252
157
|
|
253
|
-
function
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
BUNDLE_SERVICE_ROLE());
|
264
|
-
|
265
|
-
// configure authorization for bundle service on bundle manager
|
266
|
-
bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
|
267
|
-
bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
|
268
|
-
bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
|
269
|
-
bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
|
270
|
-
bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
|
271
|
-
bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
|
272
|
-
clonedAccessManager.setTargetFunctionRole(
|
273
|
-
"BundleManager",
|
274
|
-
bundleManagerBundleServiceSelectors,
|
275
|
-
BUNDLE_SERVICE_ROLE());
|
276
|
-
}
|
277
|
-
|
278
|
-
function _grantInstanceServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
279
|
-
// configure authorization for instance service on instance
|
280
|
-
address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getMajorVersion());
|
281
|
-
clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
|
282
|
-
bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
|
283
|
-
instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
|
284
|
-
clonedAccessManager.setTargetFunctionRole(
|
285
|
-
"Instance",
|
286
|
-
instanceInstanceServiceSelectors,
|
287
|
-
INSTANCE_SERVICE_ROLE());
|
288
|
-
|
289
|
-
// configure authorizations for instance service on instance access manager
|
290
|
-
bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](4);
|
291
|
-
accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createCoreTarget.selector;
|
292
|
-
accessManagerInstanceServiceSelectors[1] = clonedAccessManager.createGifTarget.selector;
|
293
|
-
accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setTargetLocked.selector;
|
294
|
-
accessManagerInstanceServiceSelectors[3] = clonedAccessManager.setTargetFunctionRole.selector;
|
295
|
-
clonedAccessManager.setTargetFunctionRole(
|
296
|
-
"InstanceAccessManager",
|
297
|
-
accessManagerInstanceServiceSelectors,
|
298
|
-
INSTANCE_SERVICE_ROLE());
|
158
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
159
|
+
external
|
160
|
+
virtual
|
161
|
+
onlyInstance()
|
162
|
+
returns (Amount newBalance)
|
163
|
+
{
|
164
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
165
|
+
_stakingService.withdrawInstanceRewardReserves(
|
166
|
+
instanceNftId,
|
167
|
+
dipAmount);
|
299
168
|
}
|
300
169
|
|
301
|
-
function
|
302
|
-
|
303
|
-
clonedAccessManager.grantRole(INSTANCE_OWNER_ROLE(), instanceOwner);
|
304
|
-
// INSTANCE_OWNER_ROLE administrates itself
|
305
|
-
clonedAccessManager.setRoleAdmin(INSTANCE_OWNER_ROLE(), INSTANCE_OWNER_ROLE());
|
306
|
-
bytes4[] memory accessManagerInstanceOwnerSelectors = new bytes4[](3);
|
307
|
-
accessManagerInstanceOwnerSelectors[0] = clonedAccessManager.createCustomRole.selector;
|
308
|
-
accessManagerInstanceOwnerSelectors[1] = clonedAccessManager.createCustomTarget.selector;
|
309
|
-
accessManagerInstanceOwnerSelectors[2] = clonedAccessManager.setTargetFunctionCustomRole.selector;
|
310
|
-
clonedAccessManager.setTargetFunctionRole(
|
311
|
-
"InstanceAccessManager",
|
312
|
-
accessManagerInstanceOwnerSelectors,
|
313
|
-
INSTANCE_OWNER_ROLE());
|
170
|
+
function getMasterInstanceReader() external view returns (address) {
|
171
|
+
return _masterInstanceReader;
|
314
172
|
}
|
315
173
|
|
316
|
-
function setAndRegisterMasterInstance(address instanceAddress)
|
174
|
+
function setAndRegisterMasterInstance(address instanceAddress)
|
317
175
|
external
|
318
176
|
onlyOwner
|
319
177
|
returns(NftId masterInstanceNftId)
|
320
178
|
{
|
321
179
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
322
|
-
if(
|
323
|
-
if(
|
324
|
-
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
180
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
181
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
325
182
|
|
326
183
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
327
184
|
|
328
185
|
IInstance instance = IInstance(instanceAddress);
|
329
|
-
|
330
|
-
|
331
|
-
|
332
|
-
address instanceAccessManagerAddress = address(instanceAccessManager);
|
186
|
+
address accessManagerAddress = instance.authority();
|
187
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
188
|
+
address instanceAdminAddress = address(instanceAdmin);
|
333
189
|
InstanceReader instanceReader = instance.getInstanceReader();
|
334
190
|
address instanceReaderAddress = address(instanceReader);
|
335
|
-
|
191
|
+
BundleSet bundleManager = instance.getBundleSet();
|
336
192
|
address bundleManagerAddress = address(bundleManager);
|
193
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
194
|
+
address instanceStoreAddress = address(instanceStore);
|
337
195
|
|
338
|
-
if(
|
339
|
-
if(
|
196
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
197
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
340
198
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
341
|
-
if(bundleManagerAddress == address(0)) { revert
|
199
|
+
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
200
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
342
201
|
|
343
|
-
if(instance.authority() !=
|
344
|
-
if(bundleManager.authority() !=
|
345
|
-
if(
|
202
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
203
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
204
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
346
205
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
206
|
+
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
347
207
|
|
348
|
-
|
349
|
-
|
208
|
+
_masterAccessManager = accessManagerAddress;
|
209
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
350
210
|
_masterInstance = instanceAddress;
|
351
211
|
_masterInstanceReader = instanceReaderAddress;
|
352
|
-
|
212
|
+
_masterInstanceBundleSet = bundleManagerAddress;
|
213
|
+
_masterInstanceStore = instanceStoreAddress;
|
353
214
|
|
354
|
-
IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getMajorVersion()));
|
355
215
|
IInstance masterInstance = IInstance(_masterInstance);
|
356
|
-
IRegistry.ObjectInfo memory info =
|
216
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
357
217
|
masterInstanceNftId = info.nftId;
|
358
|
-
|
359
|
-
// masterInstance.linkToRegisteredNftId();
|
360
218
|
}
|
361
219
|
|
362
|
-
function
|
220
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
363
221
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
364
222
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
365
223
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -373,35 +231,95 @@ contract InstanceService is
|
|
373
231
|
function upgradeInstanceReader(NftId instanceNftId)
|
374
232
|
external
|
375
233
|
onlyInstanceOwner(instanceNftId)
|
234
|
+
onlyNftOfType(instanceNftId, INSTANCE())
|
376
235
|
{
|
377
236
|
IRegistry registry = getRegistry();
|
378
237
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
379
238
|
Instance instance = Instance(instanceInfo.objectAddress);
|
380
239
|
|
381
240
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
382
|
-
upgradedInstanceReaderClone.
|
241
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
383
242
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
384
243
|
}
|
385
244
|
|
386
|
-
|
387
|
-
|
245
|
+
/// @dev create new cloned instance admin
|
246
|
+
/// function used to setup a new instance
|
247
|
+
function _createInstanceAdmin()
|
248
|
+
internal
|
249
|
+
virtual
|
250
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
251
|
+
{
|
252
|
+
// start with setting up a new OZ access manager
|
253
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
254
|
+
Clones.clone(_masterAccessManager));
|
255
|
+
|
256
|
+
// set up the instance admin
|
257
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
258
|
+
clonedAccessManager.initialize(
|
259
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
260
|
+
|
261
|
+
address authorization = address(
|
262
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
263
|
+
clonedInstanceAdmin.initialize(
|
264
|
+
clonedAccessManager,
|
265
|
+
authorization);
|
388
266
|
}
|
389
267
|
|
390
|
-
function getMasterInstance() external view returns (address) {
|
391
|
-
return _masterInstance;
|
392
|
-
}
|
393
268
|
|
394
|
-
|
395
|
-
|
269
|
+
/// @dev create new cloned instance
|
270
|
+
/// function used to setup a new instance
|
271
|
+
function _createInstance(
|
272
|
+
InstanceAdmin instanceAdmin,
|
273
|
+
address instanceOwner
|
274
|
+
)
|
275
|
+
internal
|
276
|
+
virtual
|
277
|
+
returns (IInstance)
|
278
|
+
{
|
279
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
280
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
281
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
282
|
+
|
283
|
+
// clone instance
|
284
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
285
|
+
clonedInstance.initialize(
|
286
|
+
instanceAdmin,
|
287
|
+
clonedInstanceStore,
|
288
|
+
clonedBundleSet,
|
289
|
+
clonedInstanceReader,
|
290
|
+
getRegistry(),
|
291
|
+
instanceOwner);
|
292
|
+
return clonedInstance;
|
396
293
|
}
|
397
294
|
|
398
|
-
function getMasterInstanceBundleManager() external view returns (address) {
|
399
|
-
return _masterInstanceBundleManager;
|
400
|
-
}
|
401
295
|
|
402
|
-
|
403
|
-
function
|
404
|
-
|
296
|
+
/// all gif targets MUST be children of instanceNftId
|
297
|
+
function _createGifTarget(
|
298
|
+
NftId instanceNftId,
|
299
|
+
address targetAddress,
|
300
|
+
string memory targetName,
|
301
|
+
RoleId[] memory roles,
|
302
|
+
bytes4[][] memory selectors
|
303
|
+
)
|
304
|
+
internal
|
305
|
+
virtual
|
306
|
+
{
|
307
|
+
// TODO instanceAdmin will check target instance match anyway
|
308
|
+
(
|
309
|
+
IInstance instance, // or instanceInfo
|
310
|
+
// or targetInfo
|
311
|
+
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
312
|
+
|
313
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
314
|
+
|
315
|
+
// TODO refactor/implement
|
316
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
317
|
+
|
318
|
+
// set proposed target config
|
319
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
320
|
+
// TODO refactor/implement
|
321
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
322
|
+
}
|
405
323
|
}
|
406
324
|
|
407
325
|
/// @dev top level initializer
|
@@ -410,58 +328,53 @@ contract InstanceService is
|
|
410
328
|
bytes memory data
|
411
329
|
)
|
412
330
|
internal
|
413
|
-
initializer
|
414
331
|
virtual override
|
332
|
+
initializer()
|
415
333
|
{
|
416
|
-
|
417
|
-
|
418
|
-
|
419
|
-
|
420
|
-
|
421
|
-
|
422
|
-
registerInterface(type(IInstanceService).interfaceId);
|
423
|
-
}
|
334
|
+
(
|
335
|
+
address registryAddress,
|
336
|
+
address authority
|
337
|
+
) = abi.decode(data, (address, address));
|
338
|
+
|
339
|
+
_initializeService(registryAddress, authority, owner);
|
424
340
|
|
425
|
-
|
426
|
-
|
427
|
-
|
428
|
-
|
429
|
-
|
341
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
342
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
343
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
344
|
+
|
345
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
430
346
|
}
|
431
|
-
|
432
|
-
|
433
|
-
|
434
|
-
|
347
|
+
|
348
|
+
|
349
|
+
function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
|
350
|
+
internal
|
351
|
+
view
|
352
|
+
returns (IInstance instance, NftId componentNftId)
|
435
353
|
{
|
436
354
|
IRegistry registry = getRegistry();
|
437
355
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
438
356
|
if(instanceInfo.objectType != INSTANCE()) {
|
439
|
-
revert
|
357
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
440
358
|
}
|
441
359
|
|
442
|
-
|
443
|
-
|
444
|
-
|
445
|
-
|
446
|
-
|
447
|
-
|
360
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
361
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
362
|
+
|
363
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
364
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
365
|
+
}
|
366
|
+
|
367
|
+
componentNftId = componentInfo.nftId;
|
368
|
+
} else {
|
369
|
+
|
448
370
|
}
|
371
|
+
|
372
|
+
instance = Instance(instanceInfo.objectAddress);
|
449
373
|
|
450
374
|
}
|
451
375
|
|
452
|
-
//
|
453
|
-
|
454
|
-
|
455
|
-
function setComponentLocked(bool locked) onlyComponent external {
|
456
|
-
address componentAddress = msg.sender;
|
457
|
-
IRegistry registry = getRegistry();
|
458
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
459
|
-
address instanceAddress = registry.getObjectInfo(instanceNftId).objectAddress;
|
460
|
-
IInstance instance = IInstance(instanceAddress);
|
461
|
-
|
462
|
-
InstanceAccessManager accessManager = instance.getInstanceAccessManager();
|
463
|
-
// TODO setLocked by target address?
|
464
|
-
string memory componentName = ShortStrings.toString(accessManager.getTargetInfo(componentAddress).name);
|
465
|
-
accessManager.setTargetLocked(componentName, locked);
|
376
|
+
// From IService
|
377
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
378
|
+
return INSTANCE();
|
466
379
|
}
|
467
380
|
}
|