@etherisc/gif-next 0.0.2-ebf1a6b-485 → 0.0.2-ec4918f-024
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 +57 -88
- 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 +1402 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/Distribution.sol/Distribution.json +320 -551
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1455 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +838 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → distribution}/IDistributionComponent.sol/IDistributionComponent.json +356 -256
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +360 -257
- 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 +1519 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +470 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2072 -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 +1471 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1231 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1573 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2095 -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 +310 -2058
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +271 -78
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +360 -2849
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1653 -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 +1145 -442
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +326 -377
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +143 -114
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3678 -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 +25 -150
- 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 +1039 -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 +788 -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} +359 -283
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +907 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +966 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +722 -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} +369 -540
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +470 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1465 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +834 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +960 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +960 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1283 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +466 -416
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1625 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +766 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +771 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +710 -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} +469 -395
- 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 +1431 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +838 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +158 -168
- 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 +925 -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} +259 -200
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1012 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IProductService.sol/IProductService.json → product/IRiskService.sol/IRiskService.json} +110 -65
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1302 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +782 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +907 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +762 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1131 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +622 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +694 -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 +449 -24
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +263 -134
- 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 +941 -125
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1886 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +333 -264
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +138 -95
- 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/{components → shared}/Component.sol/Component.json +213 -262
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1768 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +814 -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} +119 -197
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +92 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +260 -75
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1335 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json} +274 -223
- 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 +125 -19
- 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 +829 -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 +127 -110
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +382 -9
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +108 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +4 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +1465 -0
- 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 +1888 -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 +776 -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 +1249 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +710 -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 +602 -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/{components → distribution}/Distribution.sol +170 -178
- package/contracts/distribution/DistributionService.sol +355 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +42 -27
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +73 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +415 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +50 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +76 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +351 -0
- package/contracts/instance/{BundleManager.sol → BundleSet.sol} +32 -31
- package/contracts/instance/IInstance.sol +46 -72
- package/contracts/instance/IInstanceService.sol +37 -25
- package/contracts/instance/Instance.sol +166 -225
- package/contracts/instance/InstanceAdmin.sol +277 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +194 -0
- package/contracts/instance/InstanceReader.sol +264 -62
- package/contracts/instance/InstanceService.sol +284 -360
- 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 +19 -20
- package/contracts/instance/module/IBundle.sol +8 -9
- package/contracts/instance/module/IComponents.sol +51 -0
- package/contracts/instance/module/IDistribution.sol +6 -6
- package/contracts/instance/module/IPolicy.sol +47 -35
- 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 +291 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +154 -0
- package/contracts/pool/BasicPoolAuthorization.sol +57 -0
- package/contracts/pool/BundleService.sol +493 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +143 -0
- package/contracts/pool/IPoolComponent.sol +68 -0
- package/contracts/pool/IPoolService.sol +167 -0
- package/contracts/pool/Pool.sol +330 -0
- package/contracts/pool/PoolService.sol +544 -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 +53 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +612 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
- package/contracts/{instance/service → product}/IApplicationService.sol +16 -35
- package/contracts/product/IClaimService.sol +123 -0
- package/contracts/product/IPolicyService.sol +80 -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 +691 -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 +455 -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 +457 -204
- package/contracts/registry/RegistryAdmin.sol +448 -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 +501 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +194 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +265 -0
- package/contracts/shared/ComponentService.sol +745 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +126 -0
- package/contracts/shared/ContractLib.sol +38 -0
- package/contracts/shared/IComponent.sol +74 -0
- package/contracts/shared/IComponentService.sol +120 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +41 -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 -8
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +213 -0
- package/contracts/shared/KeyValueStore.sol +131 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +32 -25
- package/contracts/shared/PolicyHolder.sol +22 -41
- package/contracts/shared/Registerable.sol +32 -21
- package/contracts/shared/RegistryLinked.sol +3 -7
- package/contracts/shared/Service.sol +55 -29
- package/contracts/shared/TokenHandler.sol +122 -10
- package/contracts/shared/TokenHandlerDeployerLib.sol +12 -0
- package/contracts/staking/IStaking.sol +168 -0
- package/contracts/staking/IStakingService.sol +157 -0
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +497 -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 +407 -0
- package/contracts/staking/StakingServiceManager.sol +44 -0
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/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 +16 -2
- 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 +22 -2
- 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 +10 -6
- 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/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 -984
- 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 -968
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -665
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1096
- 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 -754
- 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 -1553
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -793
- 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 -409
- package/artifacts/contracts/instance/service/IDistributionService.sol/IDistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPolicyService.sol/IPolicyService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/IPoolService.sol/IPoolService.json +0 -347
- 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 -1000
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -689
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -727
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -649
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -777
- 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 -521
- 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/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/StateId.sol/StateIdLib.json +0 -92
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.dbg.json +0 -4
- package/artifacts/contracts/types/Timestamp.sol/TimestampLib.json +0 -267
- package/artifacts/contracts/types/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/MathLib.json +0 -10
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.dbg.json +0 -4
- package/artifacts/contracts/types/UFixed.sol/UFixedLib.json +0 -479
- package/artifacts/contracts/types/Version.sol/VersionLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionLib.json +0 -177
- package/artifacts/contracts/types/Version.sol/VersionPartLib.dbg.json +0 -4
- package/artifacts/contracts/types/Version.sol/VersionPartLib.json +0 -49
- package/contracts/components/Component.sol +0 -221
- package/contracts/components/IComponent.sol +0 -68
- package/contracts/components/IDistributionComponent.sol +0 -79
- package/contracts/components/IPoolComponent.sol +0 -151
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -378
- package/contracts/components/Product.sol +0 -289
- package/contracts/instance/InstanceAccessManager.sol +0 -297
- 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 -46
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -349
- package/contracts/instance/service/BundleService.sol +0 -299
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -394
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -55
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IPolicyService.sol +0 -70
- package/contracts/instance/service/IPoolService.sol +0 -20
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -402
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -109
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -233
- 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 -95
- package/contracts/types/Seconds.sol +0 -54
- /package/contracts/{types → type}/DistributorType.sol +0 -0
- /package/contracts/{types → type}/Key32.sol +0 -0
@@ -2,319 +2,257 @@
|
|
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
|
+
|
7
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
|
+
import {Amount} from "../type/Amount.sol";
|
9
|
+
import {BundleSet} from "./BundleSet.sol";
|
10
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {RoleId} from "../type/RoleId.sol";
|
13
|
+
import {SecondsLib} from "../type/Seconds.sol";
|
14
|
+
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
15
|
+
import {ADMIN_ROLE} from "../type/RoleId.sol";
|
16
|
+
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
17
|
+
|
18
|
+
import {Service} from "../shared/Service.sol";
|
19
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
20
|
+
import {IService} from "../shared/IService.sol";
|
21
|
+
|
22
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
23
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
24
|
+
import {IProductComponent} from "../product/IProductComponent.sol";
|
25
|
+
|
26
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
27
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
28
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
29
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
5
30
|
|
6
31
|
import {Instance} from "./Instance.sol";
|
7
32
|
import {IInstance} from "./IInstance.sol";
|
8
|
-
import {
|
33
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
9
34
|
import {IInstanceService} from "./IInstanceService.sol";
|
10
35
|
import {InstanceReader} from "./InstanceReader.sol";
|
11
|
-
import {
|
12
|
-
import {
|
13
|
-
import {
|
14
|
-
|
15
|
-
import {Service} from "../../contracts/shared/Service.sol";
|
16
|
-
import {IService} from "../shared/IService.sol";
|
17
|
-
import {NftId} from "../../contracts/types/NftId.sol";
|
18
|
-
import {RoleId} from "../types/RoleId.sol";
|
19
|
-
import {ADMIN_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, PUBLIC_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";
|
20
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
|
21
|
-
import {IDistributionComponent} from "../components/IDistributionComponent.sol";
|
22
|
-
import {IPoolComponent} from "../components/IPoolComponent.sol";
|
23
|
-
import {IProductComponent} from "../components/IProductComponent.sol";
|
36
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
37
|
+
import {Seconds} from "../type/Seconds.sol";
|
38
|
+
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
39
|
+
|
24
40
|
|
25
41
|
contract InstanceService is
|
26
42
|
Service,
|
27
43
|
IInstanceService
|
28
44
|
{
|
29
45
|
|
30
|
-
|
46
|
+
// TODO update to real hash when instance is stable
|
47
|
+
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
48
|
+
|
49
|
+
IRegistryService internal _registryService;
|
50
|
+
IStakingService internal _stakingService;
|
51
|
+
|
52
|
+
address internal _masterAccessManager;
|
53
|
+
address internal _masterInstanceAdmin;
|
31
54
|
address internal _masterInstance;
|
32
55
|
address internal _masterInstanceReader;
|
33
|
-
address internal
|
56
|
+
address internal _masterInstanceBundleSet;
|
57
|
+
address internal _masterInstanceStore;
|
34
58
|
|
35
|
-
// TODO update to real hash when instance is stable
|
36
|
-
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
37
59
|
|
38
|
-
modifier
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
60
|
+
modifier onlyInstance() {
|
61
|
+
address instanceAddress = msg.sender;
|
62
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
63
|
+
if (instanceNftId.eqz()) {
|
64
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
65
|
+
}
|
66
|
+
|
67
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
68
|
+
if (objectType != INSTANCE()) {
|
69
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
70
|
+
}
|
71
|
+
|
72
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
|
73
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
74
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
44
75
|
}
|
76
|
+
|
45
77
|
_;
|
46
78
|
}
|
47
79
|
|
48
|
-
|
49
|
-
|
50
|
-
if
|
51
|
-
revert ErrorInstanceServiceRequestUnauhorized(
|
80
|
+
|
81
|
+
modifier onlyInstanceOwner(NftId instanceNftId) {
|
82
|
+
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
83
|
+
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
52
84
|
}
|
53
85
|
_;
|
54
86
|
}
|
55
87
|
|
56
|
-
|
88
|
+
// TODO check component - service - instance version match
|
89
|
+
modifier onlyComponent() {
|
90
|
+
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
91
|
+
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
92
|
+
}
|
93
|
+
_;
|
94
|
+
}
|
95
|
+
|
96
|
+
function createInstance()
|
57
97
|
external
|
58
98
|
returns (
|
59
|
-
|
60
|
-
|
61
|
-
NftId clonedInstanceNftId,
|
62
|
-
InstanceReader clonedInstanceReader,
|
63
|
-
BundleManager clonedBundleManager
|
99
|
+
IInstance instance,
|
100
|
+
NftId instanceNftId
|
64
101
|
)
|
65
102
|
{
|
103
|
+
// tx sender will become instance owner
|
66
104
|
address instanceOwner = msg.sender;
|
67
|
-
IRegistry registry = getRegistry();
|
68
|
-
address registryAddress = address(registry);
|
69
|
-
NftId registryNftId = registry.getNftId(registryAddress);
|
70
|
-
address registryServiceAddress = registry.getServiceAddress(REGISTRY(), getMajorVersion());
|
71
|
-
IRegistryService registryService = IRegistryService(registryServiceAddress);
|
72
|
-
|
73
|
-
// initially set the authority of the access managar to this (being the instance service).
|
74
|
-
// This will allow the instance service to bootstrap the authorizations of the instance
|
75
|
-
// and then transfer the ownership of the access manager to the instance owner once everything is setup
|
76
|
-
clonedAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
77
|
-
clonedAccessManager.initialize(address(this));
|
78
|
-
|
79
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
80
|
-
clonedInstance.initialize(address(clonedAccessManager), registryAddress, registryNftId, msg.sender);
|
81
|
-
|
82
|
-
clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
83
|
-
clonedInstanceReader.initialize(registryAddress, address(clonedInstance));
|
84
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
85
|
-
|
86
|
-
clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
87
|
-
clonedBundleManager.initialize(address(clonedAccessManager), registryAddress, address(clonedInstance));
|
88
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
89
105
|
|
90
|
-
//
|
106
|
+
// create instance admin and instance
|
107
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
108
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
91
109
|
|
92
|
-
|
110
|
+
// register cloned instance with registry
|
111
|
+
instanceNftId = _registryService.registerInstance(
|
112
|
+
instance, instanceOwner).nftId;
|
93
113
|
|
94
|
-
//
|
95
|
-
|
96
|
-
|
97
|
-
|
114
|
+
// register cloned instance as staking target
|
115
|
+
_stakingService.createInstanceTarget(
|
116
|
+
instanceNftId,
|
117
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
118
|
+
TargetManagerLib.getDefaultRewardRate());
|
98
119
|
|
99
|
-
|
100
|
-
|
101
|
-
// clonedInstance.linkToRegisteredNftId();
|
120
|
+
// MUST be set after instance is set up and registered
|
121
|
+
instanceAdmin.initializeInstanceAuthorization(address(instance));
|
102
122
|
|
103
|
-
emit LogInstanceCloned(
|
123
|
+
emit LogInstanceCloned(
|
124
|
+
instanceNftId,
|
125
|
+
address(instance));
|
104
126
|
}
|
105
127
|
|
106
|
-
function _grantInitialAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
|
107
|
-
_createGifRoles(clonedAccessManager);
|
108
|
-
_createGifTargets(clonedAccessManager, clonedInstance, clonedBundleManager);
|
109
|
-
_grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstance);
|
110
|
-
_grantPoolServiceAuthorizations(clonedAccessManager, clonedInstance);
|
111
|
-
_grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
|
112
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
|
113
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
|
114
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
|
115
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
|
116
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
117
|
-
}
|
118
128
|
|
119
|
-
function
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
clonedAccessManager.createGifRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
129
|
-
clonedAccessManager.createGifRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
130
|
-
clonedAccessManager.createGifRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
131
|
-
clonedAccessManager.createGifRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
129
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
130
|
+
external
|
131
|
+
virtual
|
132
|
+
onlyInstance()
|
133
|
+
{
|
134
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
135
|
+
_stakingService.setInstanceLockingPeriod(
|
136
|
+
instanceNftId,
|
137
|
+
stakeLockingPeriod);
|
132
138
|
}
|
133
139
|
|
134
|
-
function _createGifTargets(InstanceAccessManager clonedAccessManager, Instance clonedInstance, BundleManager clonedBundleManager) internal {
|
135
|
-
clonedAccessManager.createGifTarget(address(clonedAccessManager), "InstanceAccessManager");
|
136
|
-
clonedAccessManager.createGifTarget(address(clonedInstance), "Instance");
|
137
|
-
clonedAccessManager.createGifTarget(address(clonedBundleManager), "BundleManager");
|
138
|
-
}
|
139
140
|
|
140
|
-
function
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
instanceDistributionServiceSelectors[3] = clonedInstance.updateDistributorType.selector;
|
150
|
-
instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
|
151
|
-
instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
|
152
|
-
instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
|
153
|
-
instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
|
154
|
-
instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
|
155
|
-
instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
|
156
|
-
instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
|
157
|
-
clonedAccessManager.setTargetFunctionRole(
|
158
|
-
"Instance",
|
159
|
-
instanceDistributionServiceSelectors,
|
160
|
-
DISTRIBUTION_SERVICE_ROLE());
|
141
|
+
function setStakingRewardRate(UFixed rewardRate)
|
142
|
+
external
|
143
|
+
virtual
|
144
|
+
onlyInstance()
|
145
|
+
{
|
146
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
147
|
+
_stakingService.setInstanceRewardRate(
|
148
|
+
instanceNftId,
|
149
|
+
rewardRate);
|
161
150
|
}
|
162
151
|
|
163
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
164
|
-
// configure authorization for pool service on instance
|
165
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getMajorVersion());
|
166
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
167
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
168
|
-
instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
|
169
|
-
instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
|
170
|
-
clonedAccessManager.setTargetFunctionRole(
|
171
|
-
"Instance",
|
172
|
-
instancePoolServiceSelectors,
|
173
|
-
POOL_SERVICE_ROLE());
|
174
|
-
}
|
175
152
|
|
176
|
-
function
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
|
186
|
-
clonedAccessManager.setTargetFunctionRole(
|
187
|
-
"Instance",
|
188
|
-
instanceProductServiceSelectors,
|
189
|
-
PRODUCT_SERVICE_ROLE());
|
153
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
154
|
+
external
|
155
|
+
virtual
|
156
|
+
onlyInstance()
|
157
|
+
{
|
158
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
159
|
+
_stakingService.refillInstanceRewardReserves(
|
160
|
+
instanceNftId,
|
161
|
+
rewardProvider,
|
162
|
+
dipAmount);
|
190
163
|
}
|
191
164
|
|
192
|
-
function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
193
|
-
// configure authorization for application services on instance
|
194
|
-
address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getMajorVersion());
|
195
|
-
clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
|
196
|
-
bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
|
197
|
-
instanceApplicationServiceSelectors[0] = clonedInstance.createApplication.selector;
|
198
|
-
instanceApplicationServiceSelectors[1] = clonedInstance.updateApplication.selector;
|
199
|
-
instanceApplicationServiceSelectors[2] = clonedInstance.updateApplicationState.selector;
|
200
|
-
clonedAccessManager.setTargetFunctionRole(
|
201
|
-
"Instance",
|
202
|
-
instanceApplicationServiceSelectors,
|
203
|
-
APPLICATION_SERVICE_ROLE());
|
204
|
-
}
|
205
165
|
|
206
|
-
function
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
POLICY_SERVICE_ROLE());
|
166
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
167
|
+
external
|
168
|
+
virtual
|
169
|
+
onlyInstance()
|
170
|
+
returns (Amount newBalance)
|
171
|
+
{
|
172
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
173
|
+
_stakingService.withdrawInstanceRewardReserves(
|
174
|
+
instanceNftId,
|
175
|
+
dipAmount);
|
217
176
|
}
|
218
177
|
|
219
|
-
function _grantClaimServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
220
|
-
// configure authorization for claim/payout services on instance
|
221
|
-
address claimServiceAddress = getRegistry().getServiceAddress(CLAIM(), getMajorVersion());
|
222
|
-
clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), claimServiceAddress);
|
223
|
-
// TODO add claims function authz
|
224
|
-
bytes4[] memory instanceClaimServiceSelectors = new bytes4[](0);
|
225
|
-
// instanceClaimServiceSelectors[0] = clonedInstance.updatePolicy.selector;
|
226
|
-
// instanceClaimServiceSelectors[1] = clonedInstance.updatePolicyState.selector;
|
227
|
-
clonedAccessManager.setTargetFunctionRole(
|
228
|
-
"Instance",
|
229
|
-
instanceClaimServiceSelectors,
|
230
|
-
CLAIM_SERVICE_ROLE());
|
231
|
-
}
|
232
178
|
|
233
|
-
function
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
179
|
+
function setComponentLocked(bool locked)
|
180
|
+
external
|
181
|
+
virtual
|
182
|
+
onlyComponent()
|
183
|
+
{
|
184
|
+
// checks
|
185
|
+
address componentAddress = msg.sender;
|
186
|
+
|
187
|
+
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
188
|
+
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
189
|
+
}
|
190
|
+
|
191
|
+
IRegistry registry = getRegistry();
|
192
|
+
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
193
|
+
|
194
|
+
IInstance instance = IInstance(
|
195
|
+
registry.getObjectAddress(instanceNftId));
|
196
|
+
|
197
|
+
// no revert in case already locked
|
198
|
+
// TODO refactor/implement
|
199
|
+
// instance.getInstanceAdmin().setTargetLockedByService(
|
200
|
+
// componentAddress,
|
201
|
+
// locked);
|
256
202
|
}
|
257
203
|
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
|
262
|
-
bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
|
263
|
-
instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
|
264
|
-
clonedAccessManager.setTargetFunctionRole(
|
265
|
-
"Instance",
|
266
|
-
instanceInstanceServiceSelectors,
|
267
|
-
INSTANCE_SERVICE_ROLE());
|
268
|
-
|
269
|
-
bytes4[] memory instanceAccessManagerInstanceServiceSelectors = new bytes4[](1);
|
270
|
-
instanceAccessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
271
|
-
clonedAccessManager.setTargetFunctionRole(
|
272
|
-
"InstanceAccessManager",
|
273
|
-
instanceAccessManagerInstanceServiceSelectors,
|
274
|
-
INSTANCE_SERVICE_ROLE());
|
204
|
+
|
205
|
+
function getMasterInstanceReader() external view returns (address) {
|
206
|
+
return _masterInstanceReader;
|
275
207
|
}
|
276
208
|
|
277
|
-
function setAndRegisterMasterInstance(address instanceAddress)
|
209
|
+
function setAndRegisterMasterInstance(address instanceAddress)
|
278
210
|
external
|
279
211
|
onlyOwner
|
280
212
|
returns(NftId masterInstanceNftId)
|
281
213
|
{
|
282
214
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
283
|
-
if(
|
284
|
-
if(
|
215
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
216
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
285
217
|
|
286
218
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
287
219
|
|
288
220
|
IInstance instance = IInstance(instanceAddress);
|
289
|
-
|
290
|
-
|
221
|
+
address accessManagerAddress = instance.authority();
|
222
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
223
|
+
address instanceAdminAddress = address(instanceAdmin);
|
291
224
|
InstanceReader instanceReader = instance.getInstanceReader();
|
292
225
|
address instanceReaderAddress = address(instanceReader);
|
293
|
-
|
226
|
+
BundleSet bundleManager = instance.getBundleSet();
|
294
227
|
address bundleManagerAddress = address(bundleManager);
|
228
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
229
|
+
address instanceStoreAddress = address(instanceStore);
|
295
230
|
|
296
231
|
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
232
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
297
233
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
298
|
-
if(bundleManagerAddress == address(0)) { revert
|
234
|
+
if(bundleManagerAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
235
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
299
236
|
|
300
|
-
if(instance.authority() !=
|
301
|
-
if(
|
237
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
238
|
+
if(bundleManager.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
239
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
302
240
|
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
241
|
+
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
303
242
|
|
304
|
-
|
243
|
+
_masterAccessManager = accessManagerAddress;
|
244
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
305
245
|
_masterInstance = instanceAddress;
|
306
246
|
_masterInstanceReader = instanceReaderAddress;
|
307
|
-
|
247
|
+
_masterInstanceBundleSet = bundleManagerAddress;
|
248
|
+
_masterInstanceStore = instanceStoreAddress;
|
308
249
|
|
309
|
-
IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getMajorVersion()));
|
310
250
|
IInstance masterInstance = IInstance(_masterInstance);
|
311
|
-
IRegistry.ObjectInfo memory info =
|
251
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
312
252
|
masterInstanceNftId = info.nftId;
|
313
|
-
|
314
|
-
// masterInstance.linkToRegisteredNftId();
|
315
253
|
}
|
316
254
|
|
317
|
-
function
|
255
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
318
256
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
319
257
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
320
258
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -325,41 +263,98 @@ contract InstanceService is
|
|
325
263
|
_masterInstanceReader = instanceReaderAddress;
|
326
264
|
}
|
327
265
|
|
328
|
-
|
329
|
-
|
266
|
+
function upgradeInstanceReader(NftId instanceNftId)
|
267
|
+
external
|
268
|
+
onlyInstanceOwner(instanceNftId)
|
269
|
+
onlyNftOfType(instanceNftId, INSTANCE())
|
270
|
+
{
|
330
271
|
IRegistry registry = getRegistry();
|
331
272
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
332
273
|
Instance instance = Instance(instanceInfo.objectAddress);
|
333
|
-
address owner = instance.getOwner();
|
334
|
-
|
335
|
-
if (msg.sender != owner) {
|
336
|
-
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
337
|
-
}
|
338
274
|
|
339
275
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
340
|
-
upgradedInstanceReaderClone.
|
276
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
341
277
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
342
278
|
}
|
343
279
|
|
344
|
-
|
345
|
-
|
280
|
+
/// @dev create new cloned instance admin
|
281
|
+
/// function used to setup a new instance
|
282
|
+
function _createInstanceAdmin()
|
283
|
+
internal
|
284
|
+
virtual
|
285
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
286
|
+
{
|
287
|
+
// start with setting up a new OZ access manager
|
288
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
289
|
+
Clones.clone(_masterAccessManager));
|
290
|
+
|
291
|
+
// set up the instance admin
|
292
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
293
|
+
clonedAccessManager.initialize(
|
294
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
295
|
+
|
296
|
+
address authorization = address(
|
297
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
298
|
+
clonedInstanceAdmin.initialize(
|
299
|
+
clonedAccessManager,
|
300
|
+
authorization);
|
346
301
|
}
|
347
302
|
|
348
|
-
function getMasterInstance() external view returns (address) {
|
349
|
-
return _masterInstance;
|
350
|
-
}
|
351
303
|
|
352
|
-
|
353
|
-
|
304
|
+
/// @dev create new cloned instance
|
305
|
+
/// function used to setup a new instance
|
306
|
+
function _createInstance(
|
307
|
+
InstanceAdmin instanceAdmin,
|
308
|
+
address instanceOwner
|
309
|
+
)
|
310
|
+
internal
|
311
|
+
virtual
|
312
|
+
returns (IInstance)
|
313
|
+
{
|
314
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
315
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
316
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
317
|
+
|
318
|
+
// clone instance
|
319
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
320
|
+
clonedInstance.initialize(
|
321
|
+
instanceAdmin,
|
322
|
+
clonedInstanceStore,
|
323
|
+
clonedBundleSet,
|
324
|
+
clonedInstanceReader,
|
325
|
+
getRegistry(),
|
326
|
+
instanceOwner);
|
327
|
+
return clonedInstance;
|
354
328
|
}
|
355
329
|
|
356
|
-
function getMasterInstanceBundleManager() external view returns (address) {
|
357
|
-
return _masterInstanceBundleManager;
|
358
|
-
}
|
359
330
|
|
360
|
-
|
361
|
-
function
|
362
|
-
|
331
|
+
/// all gif targets MUST be children of instanceNftId
|
332
|
+
function _createGifTarget(
|
333
|
+
NftId instanceNftId,
|
334
|
+
address targetAddress,
|
335
|
+
string memory targetName,
|
336
|
+
RoleId[] memory roles,
|
337
|
+
bytes4[][] memory selectors
|
338
|
+
)
|
339
|
+
internal
|
340
|
+
virtual
|
341
|
+
{
|
342
|
+
// TODO instanceAdmin will check target instance match anyway
|
343
|
+
(
|
344
|
+
IInstance instance, // or instanceInfo
|
345
|
+
// or targetInfo
|
346
|
+
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
347
|
+
|
348
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
349
|
+
|
350
|
+
// TODO refactor/implement
|
351
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
352
|
+
|
353
|
+
// set proposed target config
|
354
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
355
|
+
// TODO refactor/implement
|
356
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
357
|
+
}
|
363
358
|
}
|
364
359
|
|
365
360
|
/// @dev top level initializer
|
@@ -368,123 +363,52 @@ contract InstanceService is
|
|
368
363
|
bytes memory data
|
369
364
|
)
|
370
365
|
internal
|
371
|
-
initializer
|
372
366
|
virtual override
|
367
|
+
initializer()
|
373
368
|
{
|
374
|
-
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
// owner is InstanceServiceManager deployer
|
379
|
-
initializeService(registryAddress, owner);
|
380
|
-
registerInterface(type(IInstanceService).interfaceId);
|
381
|
-
}
|
369
|
+
(
|
370
|
+
address registryAddress,
|
371
|
+
address authority
|
372
|
+
) = abi.decode(data, (address, address));
|
382
373
|
|
383
|
-
|
384
|
-
Instance instance = Instance(instanceAddress);
|
385
|
-
InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
|
386
|
-
return accessManager.hasRole(role, account);
|
387
|
-
}
|
374
|
+
_initializeService(registryAddress, authority, owner);
|
388
375
|
|
389
|
-
|
390
|
-
|
391
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
392
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
393
|
-
InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
|
394
|
-
accessManager.createGifTarget(targetAddress, targetName);
|
395
|
-
}
|
396
|
-
|
397
|
-
function grantDistributionDefaultPermissions(NftId instanceNftId, address distributionAddress, string memory distributionName) external onlyRegisteredService {
|
398
|
-
IRegistry registry = getRegistry();
|
399
|
-
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionAddress);
|
400
|
-
|
401
|
-
if (distributionInfo.objectType != DISTRIBUTION()) {
|
402
|
-
revert ErrorInstanceServiceInvalidComponentType(distributionAddress, DISTRIBUTION(), distributionInfo.objectType);
|
403
|
-
}
|
376
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
377
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
404
378
|
|
405
|
-
|
406
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
407
|
-
InstanceAccessManager instanceAccessManager = InstanceAccessManager(instance.authority());
|
408
|
-
|
409
|
-
bytes4[] memory fctSelectors = new bytes4[](1);
|
410
|
-
fctSelectors[0] = IDistributionComponent.setFees.selector;
|
411
|
-
instanceAccessManager.setTargetFunctionRole(distributionName, fctSelectors, DISTRIBUTION_OWNER_ROLE());
|
412
|
-
|
413
|
-
bytes4[] memory fctSelectors2 = new bytes4[](2);
|
414
|
-
fctSelectors2[0] = IDistributionComponent.processSale.selector;
|
415
|
-
fctSelectors2[1] = IDistributionComponent.processRenewal.selector;
|
416
|
-
instanceAccessManager.setTargetFunctionRole(distributionName, fctSelectors2, PRODUCT_SERVICE_ROLE());
|
379
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
417
380
|
}
|
418
381
|
|
419
|
-
function grantPoolDefaultPermissions(NftId instanceNftId, address poolAddress, string memory poolName) external onlyRegisteredService {
|
420
|
-
IRegistry registry = getRegistry();
|
421
|
-
IRegistry.ObjectInfo memory poolInfo = registry.getObjectInfo(poolAddress);
|
422
|
-
|
423
|
-
if (poolInfo.objectType != POOL()) {
|
424
|
-
revert ErrorInstanceServiceInvalidComponentType(poolAddress, POOL(), poolInfo.objectType);
|
425
|
-
}
|
426
382
|
|
427
|
-
|
428
|
-
|
429
|
-
|
430
|
-
|
431
|
-
|
432
|
-
fctSelectors[0] = IPoolComponent.setFees.selector;
|
433
|
-
instanceAccessManager.setTargetFunctionRole(poolName, fctSelectors, POOL_OWNER_ROLE());
|
434
|
-
|
435
|
-
bytes4[] memory fctSelectors2 = new bytes4[](1);
|
436
|
-
fctSelectors2[0] = IPoolComponent.verifyApplication.selector;
|
437
|
-
instanceAccessManager.setTargetFunctionRole(poolName, fctSelectors2, POLICY_SERVICE_ROLE());
|
438
|
-
|
439
|
-
// bundle owner specific functions
|
440
|
-
bytes4[] memory fctSelectors3 = new bytes4[](7);
|
441
|
-
fctSelectors3[0] = IPoolComponent.stake.selector;
|
442
|
-
fctSelectors3[1] = IPoolComponent.unstake.selector;
|
443
|
-
fctSelectors3[2] = IPoolComponent.extend.selector;
|
444
|
-
fctSelectors3[3] = IPoolComponent.lockBundle.selector;
|
445
|
-
fctSelectors3[4] = IPoolComponent.unlockBundle.selector;
|
446
|
-
fctSelectors3[5] = IPoolComponent.close.selector;
|
447
|
-
fctSelectors3[6] = IPoolComponent.setBundleFee.selector;
|
448
|
-
instanceAccessManager.setTargetFunctionRole(
|
449
|
-
poolName,
|
450
|
-
fctSelectors3,
|
451
|
-
IPoolComponent(poolAddress).getBundleOwnerRole());
|
452
|
-
}
|
453
|
-
|
454
|
-
function grantProductDefaultPermissions(NftId instanceNftId, address productAddress, string memory productName) external onlyRegisteredService {
|
383
|
+
function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
|
384
|
+
internal
|
385
|
+
view
|
386
|
+
returns (IInstance instance, NftId componentNftId)
|
387
|
+
{
|
455
388
|
IRegistry registry = getRegistry();
|
456
|
-
IRegistry.ObjectInfo memory productInfo = registry.getObjectInfo(productAddress);
|
457
|
-
|
458
|
-
if (productInfo.objectType != PRODUCT()) {
|
459
|
-
revert ErrorInstanceServiceInvalidComponentType(productAddress, PRODUCT(), productInfo.objectType);
|
460
|
-
}
|
461
|
-
|
462
389
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
463
|
-
|
464
|
-
|
465
|
-
|
466
|
-
bytes4[] memory fctSelectors = new bytes4[](1);
|
467
|
-
fctSelectors[0] = IProductComponent.setFees.selector;
|
468
|
-
instanceAccessManager.setTargetFunctionRole(productName, fctSelectors, PRODUCT_OWNER_ROLE());
|
469
|
-
}
|
470
|
-
|
471
|
-
function setTargetLocked(string memory targetName, bool locked) external {
|
472
|
-
address componentAddress = msg.sender;
|
473
|
-
IRegistry registry = getRegistry();
|
474
|
-
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
475
|
-
if (componentInfo.nftId.eqz()) {
|
476
|
-
revert ErrorInstanceServiceComponentNotRegistered(componentAddress);
|
390
|
+
if(instanceInfo.objectType != INSTANCE()) {
|
391
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
477
392
|
}
|
478
393
|
|
479
|
-
|
394
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
395
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
480
396
|
|
397
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
398
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
399
|
+
}
|
481
400
|
|
482
|
-
|
483
|
-
|
401
|
+
componentNftId = componentInfo.nftId;
|
402
|
+
} else {
|
484
403
|
|
485
|
-
|
486
|
-
|
404
|
+
}
|
405
|
+
|
406
|
+
instance = Instance(instanceInfo.objectAddress);
|
407
|
+
|
487
408
|
}
|
488
|
-
|
489
|
-
}
|
490
409
|
|
410
|
+
// From IService
|
411
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
412
|
+
return INSTANCE();
|
413
|
+
}
|
414
|
+
}
|