@etherisc/gif-next 0.0.2-be8b3db-650 → 0.0.2-bf51045-496
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/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1000 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +746 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +767 -0
- 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/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -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 +1292 -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 +246 -561
- 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 +308 -274
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +306 -335
- 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 +1441 -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 +1991 -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/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1145 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1605 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2293 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +359 -1919
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +280 -80
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +383 -2670
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1684 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1312 -310
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +351 -379
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +159 -106
- 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/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -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 +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +929 -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/{components/IProductComponent.sol/IProductComponent.json → oracle/IOracleComponent.sol/IOracleComponent.json} +269 -237
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → oracle/IOracleService.sol/IOracleService.json} +336 -167
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +262 -231
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -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} +322 -438
- 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 +1360 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +822 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +922 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → pool}/IPoolComponent.sol/IPoolComponent.json +291 -350
- 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 +997 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1619 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +794 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +806 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +730 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/{components/Product.sol/Product.json → product/BasicProduct.sol/BasicProduct.json} +397 -420
- 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 +185 -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 +944 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → product/IPricingService.sol/IPricingService.json} +234 -286
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +973 -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 +1313 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +810 -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 +1074 -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 +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +473 -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 +958 -118
- 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 -264
- 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 +677 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1574 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +818 -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 +488 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +203 -88
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1197 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +679 -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 +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 +767 -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 +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/staking/IStaking.sol/IStaking.json +1417 -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 +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/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +228 -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 +180 -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/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/accounting/AccountingService.sol +263 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +615 -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 -163
- package/contracts/distribution/DistributionService.sol +357 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +52 -0
- package/contracts/{instance/service → distribution}/IDistributionService.sol +36 -34
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +436 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +57 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +107 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +352 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +50 -72
- package/contracts/instance/IInstanceService.sol +37 -27
- package/contracts/instance/Instance.sol +171 -227
- package/contracts/instance/InstanceAdmin.sol +288 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +222 -0
- package/contracts/instance/InstanceReader.sol +350 -63
- package/contracts/instance/InstanceService.sol +267 -364
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +287 -0
- package/contracts/instance/RiskSet.sol +119 -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 +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/ObjectSet.sol +78 -0
- package/contracts/instance/module/IAccess.sol +19 -20
- package/contracts/instance/module/IBundle.sol +8 -9
- package/contracts/instance/module/IComponents.sol +27 -12
- package/contracts/instance/module/IDistribution.sol +6 -6
- package/contracts/instance/module/IPolicy.sol +48 -35
- package/contracts/instance/module/IRisk.sol +2 -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 +309 -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 +425 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +121 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +153 -0
- package/contracts/pool/Pool.sol +345 -0
- package/contracts/pool/PoolService.sol +615 -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 +41 -0
- package/contracts/product/ClaimService.sol +614 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
- package/contracts/{instance/service → product}/IApplicationService.sol +19 -35
- package/contracts/product/IClaimService.sol +123 -0
- package/contracts/product/IPolicyService.sol +90 -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 +736 -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 +427 -0
- package/contracts/product/RiskService.sol +107 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -36
- package/contracts/registry/IRegistry.sol +100 -26
- package/contracts/registry/IRegistryService.sol +36 -41
- package/contracts/registry/ITransferInterceptor.sol +1 -1
- package/contracts/registry/Registry.sol +464 -201
- package/contracts/registry/RegistryAdmin.sol +457 -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 +486 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +207 -0
- package/contracts/registry/TokenRegistry.sol +261 -62
- package/contracts/shared/Component.sol +219 -0
- package/contracts/shared/ComponentService.sol +696 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +62 -0
- package/contracts/shared/IComponentService.sol +116 -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 -8
- 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 +32 -23
- package/contracts/shared/RegistryLinked.sol +9 -19
- package/contracts/shared/Service.sol +55 -29
- package/contracts/shared/TokenHandler.sol +368 -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 +515 -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 +440 -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 +26 -3
- package/contracts/{types → type}/ClaimId.sol +31 -3
- package/contracts/{types → type}/Fee.sol +33 -24
- package/contracts/{types → type}/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/{types → type}/NftId.sol +21 -16
- package/contracts/{types → type}/NftIdSet.sol +2 -2
- package/contracts/type/ObjectType.sol +286 -0
- package/contracts/type/PayoutId.sol +82 -0
- package/contracts/{types → type}/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/{types → type}/RiskId.sol +31 -5
- 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 +47 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +21 -2
- package/contracts/{types → type}/UFixed.sol +40 -121
- package/contracts/{types → type}/Version.sol +4 -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/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -783
- 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 -532
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.dbg.json +0 -4
- package/artifacts/contracts/instance/base/Lifecycle.sol/Lifecycle.json +0 -194
- package/artifacts/contracts/instance/module/ISetup.sol/ISetup.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.dbg.json +0 -4
- package/artifacts/contracts/instance/module/ITreasury.sol/ITreasury.json +0 -10
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationService.sol/ApplicationService.json +0 -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 -1093
- 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 -1724
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -801
- 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 -428
- 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 -1021
- 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 -816
- 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 -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 -166
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.dbg.json +0 -4
- package/artifacts/contracts/types/NftIdSet.sol/LibNftIdSet.json +0 -33
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/NumberId.sol/NumberIdLib.json +0 -100
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.dbg.json +0 -4
- package/artifacts/contracts/types/ObjectType.sol/ObjectTypeLib.json +0 -92
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/PayoutId.sol/PayoutIdLib.json +0 -100
- package/artifacts/contracts/types/Referral.sol/ReferralLib.dbg.json +0 -4
- package/artifacts/contracts/types/Referral.sol/ReferralLib.json +0 -142
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RiskId.sol/RiskIdLib.json +0 -86
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/RoleId.sol/RoleIdLib.json +0 -156
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.dbg.json +0 -4
- package/artifacts/contracts/types/Seconds.sol/SecondsLib.json +0 -124
- package/artifacts/contracts/types/StateId.sol/StateIdLib.dbg.json +0 -4
- package/artifacts/contracts/types/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 -241
- package/contracts/components/IComponent.sol +0 -74
- package/contracts/components/IDistributionComponent.sol +0 -71
- package/contracts/components/IPoolComponent.sol +0 -113
- package/contracts/components/IProductComponent.sol +0 -40
- package/contracts/components/Pool.sol +0 -299
- package/contracts/components/Product.sol +0 -293
- package/contracts/instance/BundleManager.sol +0 -127
- package/contracts/instance/InstanceAccessManager.sol +0 -297
- package/contracts/instance/ObjectManager.sol +0 -84
- package/contracts/instance/base/ComponentService.sol +0 -134
- package/contracts/instance/base/KeyValueStore.sol +0 -175
- package/contracts/instance/base/Lifecycle.sol +0 -109
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -350
- package/contracts/instance/service/BundleService.sol +0 -336
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -450
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -62
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IPolicyService.sol +0 -72
- package/contracts/instance/service/IPoolService.sol +0 -35
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -403
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -163
- 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 -157
- 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
@@ -3,319 +3,230 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
5
|
|
6
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
7
|
+
import {Amount} from "../type/Amount.sol";
|
8
|
+
import {BundleSet} from "./BundleSet.sol";
|
9
|
+
import {RiskSet} from "./RiskSet.sol";
|
10
|
+
import {ChainNft} from "../registry/ChainNft.sol";
|
11
|
+
import {NftId} from "../type/NftId.sol";
|
12
|
+
import {RoleId} from "../type/RoleId.sol";
|
13
|
+
import {UFixed} from "../type/UFixed.sol";
|
14
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
15
|
+
|
16
|
+
import {Service} from "../shared/Service.sol";
|
17
|
+
|
18
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
19
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
20
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
21
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
22
|
+
|
23
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
6
24
|
import {Instance} from "./Instance.sol";
|
7
25
|
import {IInstance} from "./IInstance.sol";
|
8
|
-
import {
|
26
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
9
27
|
import {IInstanceService} from "./IInstanceService.sol";
|
10
28
|
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";
|
29
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
30
|
+
import {Seconds} from "../type/Seconds.sol";
|
31
|
+
import {VersionPart} from "../type/Version.sol";
|
32
|
+
|
24
33
|
|
25
34
|
contract InstanceService is
|
26
35
|
Service,
|
27
36
|
IInstanceService
|
28
37
|
{
|
29
38
|
|
30
|
-
|
39
|
+
// TODO update to real hash when instance is stable
|
40
|
+
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
41
|
+
|
42
|
+
IRegistryService internal _registryService;
|
43
|
+
IStakingService internal _stakingService;
|
44
|
+
IComponentService internal _componentService;
|
45
|
+
|
46
|
+
address internal _masterAccessManager;
|
47
|
+
address internal _masterInstanceAdmin;
|
31
48
|
address internal _masterInstance;
|
32
49
|
address internal _masterInstanceReader;
|
33
|
-
address internal
|
50
|
+
address internal _masterInstanceBundleSet;
|
51
|
+
address internal _masterInstanceRiskSet;
|
52
|
+
address internal _masterInstanceStore;
|
34
53
|
|
35
|
-
// TODO update to real hash when instance is stable
|
36
|
-
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
37
54
|
|
38
|
-
modifier
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
55
|
+
modifier onlyInstance() {
|
56
|
+
address instanceAddress = msg.sender;
|
57
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
58
|
+
if (instanceNftId.eqz()) {
|
59
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
60
|
+
}
|
61
|
+
|
62
|
+
ObjectType objectType = getRegistry().getObjectInfo(instanceNftId).objectType;
|
63
|
+
if (objectType != INSTANCE()) {
|
64
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
65
|
+
}
|
66
|
+
|
67
|
+
VersionPart instanceVersion = IInstance(instanceAddress).getRelease();
|
68
|
+
if (instanceVersion != getVersion().toMajorPart()) {
|
69
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceAddress, instanceVersion);
|
70
|
+
}
|
71
|
+
|
72
|
+
_;
|
73
|
+
}
|
74
|
+
|
75
|
+
|
76
|
+
modifier onlyInstanceOwner(NftId instanceNftId) {
|
77
|
+
if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
78
|
+
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
44
79
|
}
|
45
80
|
_;
|
46
81
|
}
|
47
82
|
|
48
|
-
|
49
|
-
|
50
|
-
if (! getRegistry().
|
51
|
-
revert ErrorInstanceServiceRequestUnauhorized(
|
83
|
+
// TODO check component - service - instance version match
|
84
|
+
modifier onlyComponent() {
|
85
|
+
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
86
|
+
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
52
87
|
}
|
53
88
|
_;
|
54
89
|
}
|
55
90
|
|
56
|
-
function
|
91
|
+
function createInstance()
|
57
92
|
external
|
58
93
|
returns (
|
59
|
-
|
60
|
-
|
61
|
-
NftId clonedInstanceNftId,
|
62
|
-
InstanceReader clonedInstanceReader,
|
63
|
-
BundleManager clonedBundleManager
|
94
|
+
IInstance instance,
|
95
|
+
NftId instanceNftId
|
64
96
|
)
|
65
97
|
{
|
98
|
+
// tx sender will become instance owner
|
66
99
|
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
|
-
|
90
|
-
// TODO amend setters with instance specific , policy manager ...
|
91
|
-
|
92
|
-
_grantInitialAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
|
93
100
|
|
94
|
-
//
|
95
|
-
|
96
|
-
|
97
|
-
clonedAccessManager.revokeRole(ADMIN_ROLE(), address(this));
|
101
|
+
// create instance admin and instance
|
102
|
+
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
103
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
98
104
|
|
99
|
-
|
100
|
-
|
101
|
-
|
105
|
+
// register cloned instance with registry
|
106
|
+
instanceNftId = _registryService.registerInstance(
|
107
|
+
instance, instanceOwner).nftId;
|
102
108
|
|
103
|
-
|
104
|
-
|
109
|
+
// register cloned instance as staking target
|
110
|
+
_stakingService.createInstanceTarget(
|
111
|
+
instanceNftId,
|
112
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
113
|
+
TargetManagerLib.getDefaultRewardRate());
|
105
114
|
|
106
|
-
|
107
|
-
|
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
|
-
}
|
115
|
+
// MUST be set after instance is set up and registered
|
116
|
+
instanceAdmin.initializeInstanceAuthorization(address(instance));
|
118
117
|
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole");
|
123
|
-
|
124
|
-
clonedAccessManager.createGifRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
|
125
|
-
clonedAccessManager.createGifRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
|
126
|
-
clonedAccessManager.createGifRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
|
127
|
-
clonedAccessManager.createGifRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
|
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");
|
118
|
+
emit LogInstanceCloned(
|
119
|
+
instanceNftId,
|
120
|
+
address(instance));
|
132
121
|
}
|
133
122
|
|
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
123
|
|
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());
|
124
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
125
|
+
external
|
126
|
+
virtual
|
127
|
+
onlyInstance()
|
128
|
+
{
|
129
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
130
|
+
_stakingService.setInstanceLockingPeriod(
|
131
|
+
instanceNftId,
|
132
|
+
stakeLockingPeriod);
|
161
133
|
}
|
162
134
|
|
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
135
|
|
176
|
-
function
|
177
|
-
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
183
|
-
|
184
|
-
|
185
|
-
instanceProductServiceSelectors[4] = clonedInstance.updateRiskState.selector;
|
186
|
-
clonedAccessManager.setTargetFunctionRole(
|
187
|
-
"Instance",
|
188
|
-
instanceProductServiceSelectors,
|
189
|
-
PRODUCT_SERVICE_ROLE());
|
136
|
+
function setStakingRewardRate(UFixed rewardRate)
|
137
|
+
external
|
138
|
+
virtual
|
139
|
+
onlyInstance()
|
140
|
+
{
|
141
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
142
|
+
_stakingService.setInstanceRewardRate(
|
143
|
+
instanceNftId,
|
144
|
+
rewardRate);
|
190
145
|
}
|
191
146
|
|
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
147
|
|
206
|
-
function
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
POLICY_SERVICE_ROLE());
|
148
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
149
|
+
external
|
150
|
+
virtual
|
151
|
+
onlyInstance()
|
152
|
+
{
|
153
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
154
|
+
_stakingService.refillInstanceRewardReserves(
|
155
|
+
instanceNftId,
|
156
|
+
rewardProvider,
|
157
|
+
dipAmount);
|
217
158
|
}
|
218
159
|
|
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
160
|
|
233
|
-
function
|
234
|
-
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
instanceBundleServiceSelectors,
|
244
|
-
BUNDLE_SERVICE_ROLE());
|
245
|
-
|
246
|
-
// configure authorization for bundle service on bundle manager
|
247
|
-
bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
|
248
|
-
bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
|
249
|
-
bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
|
250
|
-
bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
|
251
|
-
bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
|
252
|
-
bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
|
253
|
-
clonedAccessManager.setTargetFunctionRole(
|
254
|
-
"BundleManager",
|
255
|
-
bundleManagerBundleServiceSelectors,
|
256
|
-
BUNDLE_SERVICE_ROLE());
|
161
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
162
|
+
external
|
163
|
+
virtual
|
164
|
+
onlyInstance()
|
165
|
+
returns (Amount newBalance)
|
166
|
+
{
|
167
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
168
|
+
_stakingService.withdrawInstanceRewardReserves(
|
169
|
+
instanceNftId,
|
170
|
+
dipAmount);
|
257
171
|
}
|
258
172
|
|
259
|
-
function
|
260
|
-
|
261
|
-
address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getMajorVersion());
|
262
|
-
clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
|
263
|
-
bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
|
264
|
-
instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
|
265
|
-
clonedAccessManager.setTargetFunctionRole(
|
266
|
-
"Instance",
|
267
|
-
instanceInstanceServiceSelectors,
|
268
|
-
INSTANCE_SERVICE_ROLE());
|
269
|
-
|
270
|
-
bytes4[] memory instanceAccessManagerInstanceServiceSelectors = new bytes4[](1);
|
271
|
-
instanceAccessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
272
|
-
clonedAccessManager.setTargetFunctionRole(
|
273
|
-
"InstanceAccessManager",
|
274
|
-
instanceAccessManagerInstanceServiceSelectors,
|
275
|
-
INSTANCE_SERVICE_ROLE());
|
173
|
+
function getMasterInstanceReader() external view returns (address) {
|
174
|
+
return _masterInstanceReader;
|
276
175
|
}
|
277
176
|
|
278
|
-
function setAndRegisterMasterInstance(address instanceAddress)
|
177
|
+
function setAndRegisterMasterInstance(address instanceAddress)
|
279
178
|
external
|
280
179
|
onlyOwner
|
281
180
|
returns(NftId masterInstanceNftId)
|
282
181
|
{
|
283
182
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
284
|
-
if(
|
285
|
-
if(
|
286
|
-
|
183
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
184
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
185
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
287
186
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
288
187
|
|
289
188
|
IInstance instance = IInstance(instanceAddress);
|
290
|
-
|
291
|
-
|
189
|
+
address accessManagerAddress = instance.authority();
|
190
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
191
|
+
address instanceAdminAddress = address(instanceAdmin);
|
292
192
|
InstanceReader instanceReader = instance.getInstanceReader();
|
293
193
|
address instanceReaderAddress = address(instanceReader);
|
294
|
-
|
295
|
-
address
|
194
|
+
BundleSet bundleSet = instance.getBundleSet();
|
195
|
+
address bundleSetAddress = address(bundleSet);
|
196
|
+
RiskSet riskSet = instance.getRiskSet();
|
197
|
+
address riskSetAddress = address(riskSet);
|
198
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
199
|
+
address instanceStoreAddress = address(instanceStore);
|
296
200
|
|
297
201
|
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
202
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
298
203
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
299
|
-
if(
|
204
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
205
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
206
|
+
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
300
207
|
|
301
|
-
if(instance.authority() !=
|
208
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
209
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
210
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
211
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
212
|
+
if(bundleSet.getInstance() != instance) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
213
|
+
if(riskSet.getInstance() != instance) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
302
214
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
303
|
-
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
304
215
|
|
305
|
-
|
216
|
+
_masterAccessManager = accessManagerAddress;
|
217
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
306
218
|
_masterInstance = instanceAddress;
|
307
219
|
_masterInstanceReader = instanceReaderAddress;
|
308
|
-
|
220
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
221
|
+
_masterInstanceRiskSet = riskSetAddress;
|
222
|
+
_masterInstanceStore = instanceStoreAddress;
|
309
223
|
|
310
|
-
IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getMajorVersion()));
|
311
224
|
IInstance masterInstance = IInstance(_masterInstance);
|
312
|
-
IRegistry.ObjectInfo memory info =
|
225
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
313
226
|
masterInstanceNftId = info.nftId;
|
314
|
-
|
315
|
-
// masterInstance.linkToRegisteredNftId();
|
316
227
|
}
|
317
228
|
|
318
|
-
function
|
229
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress) external onlyOwner {
|
319
230
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
320
231
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
321
232
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -326,41 +237,101 @@ contract InstanceService is
|
|
326
237
|
_masterInstanceReader = instanceReaderAddress;
|
327
238
|
}
|
328
239
|
|
329
|
-
|
330
|
-
|
240
|
+
function upgradeInstanceReader(NftId instanceNftId)
|
241
|
+
external
|
242
|
+
nonReentrant()
|
243
|
+
onlyInstanceOwner(instanceNftId)
|
244
|
+
onlyNftOfType(instanceNftId, INSTANCE())
|
245
|
+
{
|
331
246
|
IRegistry registry = getRegistry();
|
332
247
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
333
248
|
Instance instance = Instance(instanceInfo.objectAddress);
|
334
|
-
address owner = instance.getOwner();
|
335
|
-
|
336
|
-
if (msg.sender != owner) {
|
337
|
-
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
338
|
-
}
|
339
249
|
|
340
250
|
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
341
|
-
upgradedInstanceReaderClone.
|
251
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
342
252
|
instance.setInstanceReader(upgradedInstanceReaderClone);
|
343
253
|
}
|
344
254
|
|
345
|
-
|
346
|
-
|
255
|
+
/// @dev create new cloned instance admin
|
256
|
+
/// function used to setup a new instance
|
257
|
+
function _createInstanceAdmin()
|
258
|
+
internal
|
259
|
+
virtual
|
260
|
+
returns (InstanceAdmin clonedInstanceAdmin)
|
261
|
+
{
|
262
|
+
// start with setting up a new OZ access manager
|
263
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
264
|
+
Clones.clone(_masterAccessManager));
|
265
|
+
|
266
|
+
// set up the instance admin
|
267
|
+
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
268
|
+
clonedAccessManager.initialize(
|
269
|
+
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
270
|
+
|
271
|
+
address authorization = address(
|
272
|
+
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
273
|
+
clonedInstanceAdmin.initialize(
|
274
|
+
clonedAccessManager,
|
275
|
+
authorization);
|
347
276
|
}
|
348
277
|
|
349
|
-
function getMasterInstance() external view returns (address) {
|
350
|
-
return _masterInstance;
|
351
|
-
}
|
352
278
|
|
353
|
-
|
354
|
-
|
279
|
+
/// @dev create new cloned instance
|
280
|
+
/// function used to setup a new instance
|
281
|
+
function _createInstance(
|
282
|
+
InstanceAdmin instanceAdmin,
|
283
|
+
address instanceOwner
|
284
|
+
)
|
285
|
+
internal
|
286
|
+
virtual
|
287
|
+
returns (IInstance)
|
288
|
+
{
|
289
|
+
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
290
|
+
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
291
|
+
RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
|
292
|
+
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
293
|
+
|
294
|
+
// clone instance
|
295
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
296
|
+
clonedInstance.initialize(
|
297
|
+
instanceAdmin,
|
298
|
+
clonedInstanceStore,
|
299
|
+
clonedBundleSet,
|
300
|
+
clonedRiskSet,
|
301
|
+
clonedInstanceReader,
|
302
|
+
getRegistry(),
|
303
|
+
instanceOwner);
|
304
|
+
return clonedInstance;
|
355
305
|
}
|
356
306
|
|
357
|
-
function getMasterInstanceBundleManager() external view returns (address) {
|
358
|
-
return _masterInstanceBundleManager;
|
359
|
-
}
|
360
307
|
|
361
|
-
|
362
|
-
function
|
363
|
-
|
308
|
+
/// all gif targets MUST be children of instanceNftId
|
309
|
+
function _createGifTarget(
|
310
|
+
NftId instanceNftId,
|
311
|
+
address targetAddress,
|
312
|
+
string memory targetName,
|
313
|
+
RoleId[] memory roles,
|
314
|
+
bytes4[][] memory selectors
|
315
|
+
)
|
316
|
+
internal
|
317
|
+
virtual
|
318
|
+
{
|
319
|
+
// TODO instanceAdmin will check target instance match anyway
|
320
|
+
(
|
321
|
+
IInstance instance, // or instanceInfo
|
322
|
+
// or targetInfo
|
323
|
+
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
324
|
+
|
325
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
326
|
+
|
327
|
+
// TODO refactor/implement
|
328
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
329
|
+
|
330
|
+
// set proposed target config
|
331
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
332
|
+
// TODO refactor/implement
|
333
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
334
|
+
}
|
364
335
|
}
|
365
336
|
|
366
337
|
/// @dev top level initializer
|
@@ -369,121 +340,53 @@ contract InstanceService is
|
|
369
340
|
bytes memory data
|
370
341
|
)
|
371
342
|
internal
|
372
|
-
initializer
|
373
343
|
virtual override
|
344
|
+
initializer()
|
374
345
|
{
|
375
|
-
|
376
|
-
|
377
|
-
|
378
|
-
|
379
|
-
// owner is InstanceServiceManager deployer
|
380
|
-
initializeService(registryAddress, owner);
|
381
|
-
registerInterface(type(IInstanceService).interfaceId);
|
382
|
-
}
|
383
|
-
|
384
|
-
function hasRole(address account, RoleId role, address instanceAddress) public view returns (bool) {
|
385
|
-
Instance instance = Instance(instanceAddress);
|
386
|
-
InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
|
387
|
-
return accessManager.hasRole(role, account);
|
388
|
-
}
|
389
|
-
|
390
|
-
function createGifTarget(NftId instanceNftId, address targetAddress, string memory targetName) external onlyRegisteredService {
|
391
|
-
IRegistry registry = getRegistry();
|
392
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
393
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
394
|
-
InstanceAccessManager accessManager = InstanceAccessManager(instance.authority());
|
395
|
-
accessManager.createGifTarget(targetAddress, targetName);
|
396
|
-
}
|
346
|
+
(
|
347
|
+
address registryAddress,
|
348
|
+
address authority
|
349
|
+
) = abi.decode(data, (address, address));
|
397
350
|
|
398
|
-
|
399
|
-
IRegistry registry = getRegistry();
|
400
|
-
IRegistry.ObjectInfo memory distributionInfo = registry.getObjectInfo(distributionAddress);
|
351
|
+
_initializeService(registryAddress, authority, owner);
|
401
352
|
|
402
|
-
|
403
|
-
|
404
|
-
|
353
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
354
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
355
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
405
356
|
|
406
|
-
|
407
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
408
|
-
InstanceAccessManager instanceAccessManager = InstanceAccessManager(instance.authority());
|
409
|
-
|
410
|
-
bytes4[] memory fctSelectors = new bytes4[](1);
|
411
|
-
fctSelectors[0] = IDistributionComponent.setFees.selector;
|
412
|
-
instanceAccessManager.setTargetFunctionRole(distributionName, fctSelectors, DISTRIBUTION_OWNER_ROLE());
|
413
|
-
|
414
|
-
bytes4[] memory fctSelectors2 = new bytes4[](1);
|
415
|
-
fctSelectors2[0] = IDistributionComponent.processRenewal.selector;
|
416
|
-
instanceAccessManager.setTargetFunctionRole(distributionName, fctSelectors2, PRODUCT_SERVICE_ROLE());
|
357
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
417
358
|
}
|
418
359
|
|
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
|
-
|
427
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
428
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
429
|
-
InstanceAccessManager instanceAccessManager = InstanceAccessManager(instance.authority());
|
430
|
-
|
431
|
-
bytes4[] memory fctSelectors = new bytes4[](1);
|
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).getPoolInfo().bundleOwnerRole);
|
452
|
-
}
|
453
360
|
|
454
|
-
function
|
361
|
+
function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
|
362
|
+
internal
|
363
|
+
view
|
364
|
+
returns (IInstance instance, NftId componentNftId)
|
365
|
+
{
|
455
366
|
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
367
|
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);
|
368
|
+
if(instanceInfo.objectType != INSTANCE()) {
|
369
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
477
370
|
}
|
478
371
|
|
479
|
-
|
372
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
373
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
480
374
|
|
375
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
376
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
377
|
+
}
|
481
378
|
|
482
|
-
|
483
|
-
|
379
|
+
componentNftId = componentInfo.nftId;
|
380
|
+
} else {
|
484
381
|
|
485
|
-
|
486
|
-
|
382
|
+
}
|
383
|
+
|
384
|
+
instance = Instance(instanceInfo.objectAddress);
|
385
|
+
|
487
386
|
}
|
488
|
-
}
|
489
387
|
|
388
|
+
// From IService
|
389
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
390
|
+
return INSTANCE();
|
391
|
+
}
|
392
|
+
}
|