@etherisc/gif-next 0.0.2-bdb55c6-577 → 0.0.2-bdbfee9-660
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 +128 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1056 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +771 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → accounting/IAccountingService.sol/IAccountingService.json} +401 -103
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1403 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +790 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/{shared/IAccessManagerExtended.sol/IAccessManagerExtended.json → authorization/IAccessAdmin.sol/IAccessAdmin.json} +605 -795
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +455 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +397 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +646 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1225 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +805 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +120 -606
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +608 -282
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +229 -116
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +133 -279
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +362 -66
- 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 +1461 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2026 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +805 -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 +1404 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1628 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +805 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2452 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +805 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +851 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +551 -96
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +436 -86
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +550 -235
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1954 -313
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +902 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1704 -759
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +423 -230
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +121 -102
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +916 -774
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +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 +192 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +938 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +810 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +43 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +130 -136
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +91 -10
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +121 -413
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +203 -177
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +164 -91
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1231 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +805 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +418 -220
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +207 -102
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +234 -34
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +128 -396
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +494 -308
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +125 -684
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +546 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +733 -530
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +210 -101
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +217 -170
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +146 -97
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1140 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +805 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +476 -221
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +183 -118
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +158 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +341 -15
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +410 -100
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +176 -79
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +270 -268
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +110 -7
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +548 -309
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +183 -102
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +239 -309
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +145 -128
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +268 -567
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +698 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +755 -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 +379 -64
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +90 -147
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +612 -128
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1895 -155
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1053 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +140 -276
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +128 -83
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +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 +1389 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +683 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +15 -15
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +539 -532
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +169 -126
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -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/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +519 -249
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +116 -133
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -3
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +77 -1
- 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 +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +106 -366
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -88
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- 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 +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +73 -104
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -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 +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +322 -133
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +213 -29
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +405 -415
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +469 -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 +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +158 -112
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +91 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +269 -187
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +134 -97
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +273 -165
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +95 -49
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +28 -4
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +98 -37
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +140 -4
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +19 -19
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +4 -4
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +125 -7
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +121 -23
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +69 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +148 -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 +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +15 -2
- package/artifacts/contracts/type/String.sol/StrLib.dbg.json +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +180 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +126 -33
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +120 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +11 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +637 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +142 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +11 -1
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +780 -0
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +172 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +144 -0
- package/contracts/authorization/IAuthorization.sol +27 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +141 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +125 -139
- package/contracts/distribution/DistributionService.sol +273 -136
- package/contracts/distribution/DistributionServiceManager.sol +8 -11
- package/contracts/distribution/IDistributionComponent.sol +21 -42
- package/contracts/distribution/IDistributionService.sol +54 -26
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +385 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +110 -47
- package/contracts/instance/IInstanceService.sol +74 -42
- package/contracts/instance/Instance.sol +248 -138
- package/contracts/instance/InstanceAdmin.sol +301 -249
- package/contracts/instance/InstanceAuthorizationV3.sol +266 -0
- package/contracts/instance/InstanceReader.sol +494 -252
- package/contracts/instance/InstanceService.sol +358 -208
- package/contracts/instance/InstanceServiceManager.sol +8 -13
- package/contracts/instance/InstanceStore.sol +35 -18
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +14 -11
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +113 -0
- package/contracts/instance/base/ObjectSet.sol +77 -0
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +30 -20
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +25 -4
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +62 -53
- package/contracts/oracle/OracleService.sol +118 -85
- package/contracts/oracle/OracleServiceManager.sol +8 -11
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +82 -0
- package/contracts/pool/BundleService.sol +212 -114
- package/contracts/pool/BundleServiceManager.sol +8 -11
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +91 -77
- package/contracts/pool/Pool.sol +207 -163
- package/contracts/pool/PoolLib.sol +359 -0
- package/contracts/pool/PoolService.sol +404 -264
- package/contracts/pool/PoolServiceManager.sol +6 -9
- package/contracts/product/ApplicationService.sol +132 -87
- package/contracts/product/ApplicationServiceManager.sol +6 -6
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +385 -188
- package/contracts/product/ClaimServiceManager.sol +6 -6
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +61 -37
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +29 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +448 -278
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +6 -9
- package/contracts/product/PricingService.sol +93 -88
- package/contracts/product/PricingServiceManager.sol +6 -9
- package/contracts/product/Product.sol +237 -142
- package/contracts/product/RiskService.sol +157 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +82 -31
- package/contracts/registry/IRegistryService.sol +3 -10
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +374 -214
- package/contracts/registry/RegistryAdmin.sol +122 -171
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +47 -72
- package/contracts/registry/RegistryServiceManager.sol +5 -10
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +520 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +345 -0
- package/contracts/registry/TokenRegistry.sol +14 -15
- package/contracts/shared/Component.sol +65 -136
- package/contracts/shared/ComponentService.sol +445 -385
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ContractLib.sol +311 -0
- package/contracts/shared/IComponent.sol +6 -18
- package/contracts/shared/IComponentService.sol +49 -41
- package/contracts/shared/IInstanceLinkedComponent.sol +10 -26
- package/contracts/shared/IKeyValueStore.sol +1 -0
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IService.sol +10 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +95 -45
- package/contracts/shared/KeyValueStore.sol +7 -3
- package/contracts/shared/Lifecycle.sol +30 -72
- package/contracts/shared/{NftIdSetManager.sol → NftIdSet.sol} +1 -1
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +20 -59
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +31 -41
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +49 -22
- package/contracts/staking/IStakingService.sol +37 -16
- package/contracts/staking/Staking.sol +244 -190
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +10 -12
- package/contracts/staking/StakingReader.sol +46 -34
- package/contracts/staking/StakingService.sol +146 -84
- package/contracts/staking/StakingServiceManager.sol +8 -8
- package/contracts/staking/StakingStore.sol +95 -61
- package/contracts/staking/TargetManagerLib.sol +8 -4
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +8 -8
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +7 -0
- package/contracts/type/ObjectType.sol +200 -61
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +121 -87
- package/contracts/type/Seconds.sol +25 -1
- package/contracts/type/Selector.sol +107 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/String.sol +65 -0
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +61 -125
- package/contracts/type/Version.sol +57 -6
- package/contracts/{shared → upgradeability}/IVersionable.sol +3 -0
- package/contracts/{shared → upgradeability}/ProxyManager.sol +96 -49
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +8 -4
- package/contracts/{shared → upgradeability}/Versionable.sol +8 -5
- package/package.json +10 -7
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -228
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -679
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -694
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -1292
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerCustom.sol/AccessManagerCustom.json +0 -1193
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtended.sol/AccessManagerExtended.json +0 -1715
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedInitializeable.sol/AccessManagerExtendedInitializeable.json +0 -1728
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisable.sol/AccessManagerExtendedWithDisable.json +0 -1806
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol/AccessManagerExtendedWithDisableInitializeable.json +0 -1824
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +0 -4
- 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/IAccessManagerExtended.sol/IAccessManagerExtended.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.dbg.json +0 -4
- package/artifacts/contracts/shared/IAccessManagerExtendedWithDisable.sol/IAccessManagerExtendedWithDisable.json +0 -1600
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.dbg.json +0 -4
- package/artifacts/contracts/shared/NftIdSetManager.sol/NftIdSetManager.json +0 -306
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -617
- 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/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +0 -4
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +0 -444
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -377
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -124
- package/contracts/product/ProductServiceManager.sol +0 -42
- package/contracts/registry/ReleaseManager.sol +0 -600
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerCustom.sol +0 -736
- package/contracts/shared/AccessManagerExtended.sol +0 -470
- package/contracts/shared/AccessManagerExtendedInitializeable.sol +0 -13
- package/contracts/shared/AccessManagerExtendedWithDisable.sol +0 -137
- package/contracts/shared/AccessManagerExtendedWithDisableInitializeable.sol +0 -14
- package/contracts/shared/ComponentVerifyingService.sol +0 -117
- package/contracts/shared/IAccessManagerExtended.sol +0 -74
- package/contracts/shared/IAccessManagerExtendedWithDisable.sol +0 -18
- package/contracts/shared/InitializableCustom.sol +0 -177
- package/contracts/staking/StakeManagerLib.sol +0 -179
@@ -2,38 +2,33 @@
|
|
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 {BundleManager} from "./BundleManager.sol";
|
8
|
-
import {ChainNft} from "../registry/ChainNft.sol";
|
9
|
-
import {NftId} from "../type/NftId.sol";
|
10
|
-
import {RoleId} from "../type/RoleId.sol";
|
11
|
-
import {SecondsLib} from "../type/Seconds.sol";
|
12
|
-
import {UFixedLib} from "../type/UFixed.sol";
|
13
|
-
import {ADMIN_ROLE, INSTANCE_OWNER_ROLE, DISTRIBUTION_OWNER_ROLE, POOL_OWNER_ROLE, PRODUCT_OWNER_ROLE, INSTANCE_SERVICE_ROLE, DISTRIBUTION_SERVICE_ROLE, POOL_SERVICE_ROLE, PRODUCT_SERVICE_ROLE, APPLICATION_SERVICE_ROLE, POLICY_SERVICE_ROLE, CLAIM_SERVICE_ROLE, BUNDLE_SERVICE_ROLE, INSTANCE_ROLE} from "../type/RoleId.sol";
|
14
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
15
|
-
|
16
|
-
import {Service} from "../shared/Service.sol";
|
17
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
18
|
-
import {IService} from "../shared/IService.sol";
|
19
|
-
import {AccessManagerExtendedInitializeable} from "../shared/AccessManagerExtendedInitializeable.sol";
|
20
|
-
|
21
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
22
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
23
|
-
import {IProductComponent} from "../product/IProductComponent.sol";
|
24
5
|
|
6
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
9
|
+
import {IInstance} from "./IInstance.sol";
|
10
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
25
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
26
12
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
27
13
|
import {IStakingService} from "../staking/IStakingService.sol";
|
28
|
-
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
29
14
|
|
15
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
16
|
+
import {Amount} from "../type/Amount.sol";
|
17
|
+
import {BundleSet} from "./BundleSet.sol";
|
30
18
|
import {Instance} from "./Instance.sol";
|
31
|
-
import {IInstance} from "./IInstance.sol";
|
32
19
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
33
|
-
import {IInstanceService} from "./IInstanceService.sol";
|
34
20
|
import {InstanceReader} from "./InstanceReader.sol";
|
35
21
|
import {InstanceStore} from "./InstanceStore.sol";
|
36
|
-
import {
|
22
|
+
import {NftId} from "../type/NftId.sol";
|
23
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
24
|
+
import {RiskSet} from "./RiskSet.sol";
|
25
|
+
import {RoleId} from "../type/RoleId.sol";
|
26
|
+
import {Seconds} from "../type/Seconds.sol";
|
27
|
+
import {Service} from "../shared/Service.sol";
|
28
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
29
|
+
import {UFixed} from "../type/UFixed.sol";
|
30
|
+
import {VersionPart} from "../type/Version.sol";
|
31
|
+
|
37
32
|
|
38
33
|
contract InstanceService is
|
39
34
|
Service,
|
@@ -45,176 +40,314 @@ contract InstanceService is
|
|
45
40
|
|
46
41
|
IRegistryService internal _registryService;
|
47
42
|
IStakingService internal _stakingService;
|
43
|
+
IComponentService internal _componentService;
|
48
44
|
|
49
45
|
address internal _masterAccessManager;
|
50
46
|
address internal _masterInstanceAdmin;
|
51
47
|
address internal _masterInstance;
|
52
48
|
address internal _masterInstanceReader;
|
53
|
-
address internal
|
49
|
+
address internal _masterInstanceBundleSet;
|
50
|
+
address internal _masterInstanceRiskSet;
|
54
51
|
address internal _masterInstanceStore;
|
55
52
|
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
}
|
53
|
+
|
54
|
+
modifier onlyInstance() {
|
55
|
+
_checkInstance(msg.sender, getRelease());
|
60
56
|
_;
|
61
57
|
}
|
62
58
|
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
59
|
+
|
60
|
+
/// @inheritdoc IInstanceService
|
61
|
+
function createRole(
|
62
|
+
string memory roleName,
|
63
|
+
RoleId adminRoleId,
|
64
|
+
uint32 maxMemberCount
|
65
|
+
)
|
66
|
+
external
|
67
|
+
restricted()
|
68
|
+
onlyInstance()
|
69
|
+
returns (RoleId roleId)
|
70
|
+
{
|
71
|
+
IInstance instance = IInstance(msg.sender);
|
72
|
+
roleId = instance.getInstanceAdmin().createRole(
|
73
|
+
roleName,
|
74
|
+
adminRoleId,
|
75
|
+
maxMemberCount);
|
76
|
+
}
|
77
|
+
|
78
|
+
|
79
|
+
/// @inheritdoc IInstanceService
|
80
|
+
function setRoleActive(RoleId roleId, bool active)
|
81
|
+
external
|
82
|
+
restricted()
|
83
|
+
onlyInstance()
|
84
|
+
{
|
85
|
+
IInstance instance = IInstance(msg.sender);
|
86
|
+
instance.getInstanceAdmin().setRoleActive(roleId, active);
|
69
87
|
}
|
70
88
|
|
71
|
-
|
89
|
+
|
90
|
+
/// @inheritdoc IInstanceService
|
91
|
+
function grantRole(RoleId roleId, address account)
|
92
|
+
external
|
93
|
+
restricted()
|
94
|
+
onlyInstance()
|
95
|
+
{
|
96
|
+
IInstance instance = IInstance(msg.sender);
|
97
|
+
instance.getInstanceAdmin().grantRole(roleId, account);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
/// @inheritdoc IInstanceService
|
102
|
+
function revokeRole(RoleId roleId, address account)
|
72
103
|
external
|
104
|
+
restricted()
|
105
|
+
onlyInstance()
|
106
|
+
{
|
107
|
+
IInstance instance = IInstance(msg.sender);
|
108
|
+
instance.getInstanceAdmin().revokeRole(roleId, account);
|
109
|
+
}
|
110
|
+
|
111
|
+
|
112
|
+
/// @inheritdoc IInstanceService
|
113
|
+
function createTarget(address target, string memory name)
|
114
|
+
external
|
115
|
+
restricted()
|
116
|
+
onlyInstance()
|
117
|
+
returns (RoleId contractRoleId)
|
118
|
+
{
|
119
|
+
IInstance instance = IInstance(msg.sender);
|
120
|
+
return instance.getInstanceAdmin().createTarget(target, name);
|
121
|
+
}
|
122
|
+
|
123
|
+
|
124
|
+
/// @inheritdoc IInstanceService
|
125
|
+
function authorizeFunctions(
|
126
|
+
address target,
|
127
|
+
RoleId roleId,
|
128
|
+
IAccess.FunctionInfo[] memory functions
|
129
|
+
)
|
130
|
+
external
|
131
|
+
restricted()
|
132
|
+
onlyInstance()
|
133
|
+
{
|
134
|
+
IInstance instance = IInstance(msg.sender);
|
135
|
+
return instance.getInstanceAdmin().authorizeFunctions(target, roleId, functions);
|
136
|
+
}
|
137
|
+
|
138
|
+
|
139
|
+
/// @inheritdoc IInstanceService
|
140
|
+
function unauthorizeFunctions(
|
141
|
+
address target,
|
142
|
+
IAccess.FunctionInfo[] memory functions
|
143
|
+
)
|
144
|
+
external
|
145
|
+
restricted()
|
146
|
+
onlyInstance()
|
147
|
+
{
|
148
|
+
IInstance instance = IInstance(msg.sender);
|
149
|
+
return instance.getInstanceAdmin().unauthorizeFunctions(target, functions);
|
150
|
+
}
|
151
|
+
|
152
|
+
|
153
|
+
/// @inheritdoc IInstanceService
|
154
|
+
function setTargetLocked(address target, bool locked)
|
155
|
+
external
|
156
|
+
virtual
|
157
|
+
restricted()
|
158
|
+
onlyInstance()
|
159
|
+
{
|
160
|
+
address instanceAddress = msg.sender;
|
161
|
+
IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
|
162
|
+
}
|
163
|
+
|
164
|
+
|
165
|
+
/// @inheritdoc IInstanceService
|
166
|
+
function setInstanceLocked(bool locked)
|
167
|
+
external
|
168
|
+
virtual
|
169
|
+
restricted()
|
170
|
+
onlyInstance()
|
171
|
+
{
|
172
|
+
address instanceAddress = msg.sender;
|
173
|
+
IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
|
174
|
+
}
|
175
|
+
|
176
|
+
|
177
|
+
/// @inheritdoc IInstanceService
|
178
|
+
function createInstance(bool allowAnyToken)
|
179
|
+
external
|
180
|
+
virtual
|
181
|
+
restricted()
|
73
182
|
returns (
|
74
|
-
|
75
|
-
NftId
|
183
|
+
IInstance instance,
|
184
|
+
NftId instanceNftId
|
76
185
|
)
|
77
186
|
{
|
187
|
+
// tx sender will become instance owner
|
78
188
|
address instanceOwner = msg.sender;
|
79
|
-
AccessManagerExtendedInitializeable clonedAccessManager = AccessManagerExtendedInitializeable(
|
80
|
-
Clones.clone(_masterAccessManager));
|
81
189
|
|
82
|
-
//
|
83
|
-
|
84
|
-
|
85
|
-
clonedAccessManager.initialize(address(this));
|
190
|
+
// create instance admin and instance
|
191
|
+
InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
|
192
|
+
instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
|
86
193
|
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
address(getRegistry()),
|
91
|
-
instanceOwner);
|
92
|
-
// initialize and set before instance reader
|
93
|
-
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
94
|
-
clonedInstanceStore.initialize(address(clonedInstance));
|
95
|
-
clonedInstance.setInstanceStore(clonedInstanceStore);
|
96
|
-
|
97
|
-
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
98
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
99
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
100
|
-
|
101
|
-
BundleManager clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
102
|
-
clonedBundleManager.initialize(address(clonedInstance));
|
103
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
104
|
-
|
105
|
-
InstanceAdmin clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
106
|
-
clonedAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAdmin), 0);
|
107
|
-
clonedInstanceAdmin.initialize(address(clonedInstance));
|
108
|
-
clonedInstance.setInstanceAdmin(clonedInstanceAdmin);
|
109
|
-
|
110
|
-
// TODO amend setters with instance specific , policy manager ...
|
111
|
-
|
112
|
-
// TODO library does external calls -> but it is registry and access manager -> find out is it best practice
|
113
|
-
InstanceAuthorizationsLib.grantInitialAuthorizations(
|
114
|
-
clonedAccessManager,
|
115
|
-
clonedInstanceAdmin,
|
116
|
-
clonedInstance,
|
117
|
-
clonedBundleManager,
|
118
|
-
clonedInstanceStore,
|
119
|
-
instanceOwner,
|
120
|
-
getRegistry(),
|
121
|
-
getVersion().toMajorPart());
|
194
|
+
// register cloned instance with registry
|
195
|
+
instanceNftId = _registryService.registerInstance(
|
196
|
+
instance, instanceOwner).nftId;
|
122
197
|
|
123
|
-
|
198
|
+
// MUST be set after instance is set up and registered
|
199
|
+
IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
|
200
|
+
instanceAdmin.completeSetup(
|
201
|
+
address(getRegistry()),
|
202
|
+
address(instanceAuthorization),
|
203
|
+
getRelease(),
|
204
|
+
address(instance));
|
124
205
|
|
125
|
-
//
|
126
|
-
|
127
|
-
|
206
|
+
// hard checks for newly cloned instance
|
207
|
+
assert(address(instance.getRegistry()) == address(getRegistry()));
|
208
|
+
assert(instance.getRelease() == getRelease());
|
128
209
|
|
129
|
-
//
|
210
|
+
// register cloned instance as staking target
|
130
211
|
_stakingService.createInstanceTarget(
|
131
|
-
|
212
|
+
instanceNftId,
|
132
213
|
TargetManagerLib.getDefaultLockingPeriod(),
|
133
214
|
TargetManagerLib.getDefaultRewardRate());
|
134
215
|
|
135
216
|
emit LogInstanceCloned(
|
136
|
-
|
137
|
-
address(
|
138
|
-
address(clonedInstance),
|
139
|
-
address(clonedInstanceStore),
|
140
|
-
address(clonedBundleManager),
|
141
|
-
address(clonedInstanceReader),
|
142
|
-
clonedInstanceNftId);
|
217
|
+
instanceNftId,
|
218
|
+
address(instance));
|
143
219
|
}
|
144
220
|
|
145
|
-
|
221
|
+
|
222
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
146
223
|
external
|
147
224
|
virtual
|
148
|
-
|
225
|
+
restricted()
|
226
|
+
onlyInstance()
|
149
227
|
{
|
150
|
-
|
151
|
-
|
228
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
229
|
+
_stakingService.setInstanceLockingPeriod(
|
230
|
+
instanceNftId,
|
231
|
+
stakeLockingPeriod);
|
232
|
+
}
|
152
233
|
|
153
|
-
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
154
|
-
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
155
|
-
}
|
156
234
|
|
157
|
-
|
158
|
-
|
235
|
+
function setStakingRewardRate(UFixed rewardRate)
|
236
|
+
external
|
237
|
+
virtual
|
238
|
+
restricted()
|
239
|
+
onlyInstance()
|
240
|
+
{
|
241
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
242
|
+
_stakingService.setInstanceRewardRate(
|
243
|
+
instanceNftId,
|
244
|
+
rewardRate);
|
245
|
+
}
|
246
|
+
|
247
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
248
|
+
external
|
249
|
+
virtual
|
250
|
+
restricted()
|
251
|
+
onlyInstance()
|
252
|
+
{
|
253
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
254
|
+
_stakingService.setInstanceMaxStakedAmount(
|
255
|
+
instanceNftId,
|
256
|
+
maxStakedAmount);
|
257
|
+
}
|
159
258
|
|
160
|
-
IInstance instance = IInstance(
|
161
|
-
registry.getObjectInfo(
|
162
|
-
instanceNftId).objectAddress);
|
163
259
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
260
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
261
|
+
external
|
262
|
+
virtual
|
263
|
+
restricted()
|
264
|
+
onlyInstance()
|
265
|
+
{
|
266
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
267
|
+
_stakingService.refillInstanceRewardReserves(
|
268
|
+
instanceNftId,
|
269
|
+
rewardProvider,
|
270
|
+
dipAmount);
|
168
271
|
}
|
169
272
|
|
170
273
|
|
171
|
-
function
|
172
|
-
|
274
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
275
|
+
external
|
276
|
+
virtual
|
277
|
+
restricted()
|
278
|
+
onlyInstance()
|
279
|
+
returns (Amount newBalance)
|
280
|
+
{
|
281
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
282
|
+
newBalance = _stakingService.withdrawInstanceRewardReserves(
|
283
|
+
instanceNftId,
|
284
|
+
dipAmount);
|
173
285
|
}
|
174
286
|
|
175
|
-
|
176
|
-
function
|
177
|
-
|
287
|
+
|
288
|
+
function upgradeInstanceReader()
|
289
|
+
external
|
290
|
+
virtual
|
291
|
+
restricted()
|
292
|
+
onlyInstance()
|
293
|
+
{
|
294
|
+
address instanceAddress = msg.sender;
|
295
|
+
IInstance instance = IInstance(msg.sender);
|
296
|
+
|
297
|
+
InstanceReader upgradedInstanceReaderClone = InstanceReader(
|
298
|
+
Clones.clone(address(_masterInstanceReader)));
|
299
|
+
|
300
|
+
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
301
|
+
instance.setInstanceReader(upgradedInstanceReaderClone);
|
178
302
|
}
|
179
303
|
|
304
|
+
|
180
305
|
function setAndRegisterMasterInstance(address instanceAddress)
|
181
|
-
|
182
|
-
|
183
|
-
|
306
|
+
external
|
307
|
+
virtual
|
308
|
+
onlyOwner()
|
309
|
+
returns(NftId masterInstanceNftId)
|
184
310
|
{
|
185
311
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
186
|
-
if(_masterAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
|
187
312
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
188
|
-
if(
|
189
|
-
|
313
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
314
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
190
315
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
191
316
|
|
192
317
|
IInstance instance = IInstance(instanceAddress);
|
318
|
+
address accessManagerAddress = instance.authority();
|
193
319
|
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
194
320
|
address instanceAdminAddress = address(instanceAdmin);
|
195
321
|
InstanceReader instanceReader = instance.getInstanceReader();
|
196
322
|
address instanceReaderAddress = address(instanceReader);
|
197
|
-
|
198
|
-
address
|
323
|
+
BundleSet bundleSet = instance.getBundleSet();
|
324
|
+
address bundleSetAddress = address(bundleSet);
|
325
|
+
RiskSet riskSet = instance.getRiskSet();
|
326
|
+
address riskSetAddress = address(riskSet);
|
199
327
|
InstanceStore instanceStore = instance.getInstanceStore();
|
200
328
|
address instanceStoreAddress = address(instanceStore);
|
201
329
|
|
330
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
202
331
|
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
203
332
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
204
|
-
if(
|
333
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
334
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
205
335
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
206
336
|
|
207
337
|
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
208
|
-
if(
|
338
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
339
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
209
340
|
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
210
|
-
if(
|
341
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
342
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
211
343
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
212
344
|
|
213
|
-
_masterAccessManager =
|
345
|
+
_masterAccessManager = accessManagerAddress;
|
214
346
|
_masterInstanceAdmin = instanceAdminAddress;
|
215
347
|
_masterInstance = instanceAddress;
|
216
348
|
_masterInstanceReader = instanceReaderAddress;
|
217
|
-
|
349
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
350
|
+
_masterInstanceRiskSet = riskSetAddress;
|
218
351
|
_masterInstanceStore = instanceStoreAddress;
|
219
352
|
|
220
353
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -222,7 +355,12 @@ contract InstanceService is
|
|
222
355
|
masterInstanceNftId = info.nftId;
|
223
356
|
}
|
224
357
|
|
225
|
-
|
358
|
+
|
359
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
360
|
+
external
|
361
|
+
virtual
|
362
|
+
onlyOwner
|
363
|
+
{
|
226
364
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
227
365
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
228
366
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -233,110 +371,83 @@ contract InstanceService is
|
|
233
371
|
_masterInstanceReader = instanceReaderAddress;
|
234
372
|
}
|
235
373
|
|
236
|
-
function
|
237
|
-
|
238
|
-
onlyInstanceOwner(instanceNftId)
|
239
|
-
{
|
240
|
-
IRegistry registry = getRegistry();
|
241
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
242
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
243
|
-
|
244
|
-
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
245
|
-
upgradedInstanceReaderClone.initialize(address(instance));
|
246
|
-
instance.setInstanceReader(upgradedInstanceReaderClone);
|
374
|
+
function getMasterInstanceReader() external virtual view returns (address) {
|
375
|
+
return _masterInstanceReader;
|
247
376
|
}
|
248
377
|
|
378
|
+
//--- internal functions --------------------------------------------------------//
|
249
379
|
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
bytes4[][] memory selectors,
|
255
|
-
RoleId[] memory roles
|
256
|
-
)
|
257
|
-
external
|
380
|
+
/// @dev create new cloned instance admin
|
381
|
+
/// function used to setup a new instance
|
382
|
+
function _cloneNewInstanceAdmin()
|
383
|
+
internal
|
258
384
|
virtual
|
259
|
-
|
385
|
+
returns (InstanceAdmin clonedAdmin)
|
260
386
|
{
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
387
|
+
// clone instance specific access manager
|
388
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
389
|
+
Clones.clone(
|
390
|
+
InstanceAdmin(_masterInstanceAdmin).authority()));
|
391
|
+
|
392
|
+
// set up the instance admin
|
393
|
+
clonedAdmin = InstanceAdmin(
|
394
|
+
Clones.clone(_masterInstanceAdmin));
|
270
395
|
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
string memory targetName,
|
275
|
-
bytes4[][] memory selectors,
|
276
|
-
RoleId[] memory roles
|
277
|
-
)
|
278
|
-
external
|
279
|
-
virtual
|
280
|
-
restricted()
|
281
|
-
{
|
282
|
-
_createGifTarget(
|
283
|
-
instanceNftId,
|
284
|
-
targetAddress,
|
285
|
-
targetName,
|
286
|
-
roles,
|
287
|
-
selectors
|
288
|
-
);
|
396
|
+
clonedAdmin.initialize(
|
397
|
+
address(clonedAccessManager),
|
398
|
+
"InstanceAdmin");
|
289
399
|
}
|
290
400
|
|
291
401
|
|
292
|
-
///
|
293
|
-
function
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
bytes4[][] memory selectors
|
402
|
+
/// @dev create new cloned instance
|
403
|
+
/// function used to setup a new instance
|
404
|
+
function _createInstance(
|
405
|
+
InstanceAdmin instanceAdmin,
|
406
|
+
address instanceOwner,
|
407
|
+
bool allowAnyToken
|
299
408
|
)
|
300
409
|
internal
|
301
410
|
virtual
|
411
|
+
returns (IInstance)
|
302
412
|
{
|
303
|
-
//
|
304
|
-
(
|
305
|
-
|
306
|
-
|
307
|
-
|
413
|
+
// clone instance
|
414
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
415
|
+
clonedInstance.initialize(
|
416
|
+
instanceAdmin,
|
417
|
+
InstanceStore(Clones.clone(address(_masterInstanceStore))),
|
418
|
+
BundleSet(Clones.clone(_masterInstanceBundleSet)),
|
419
|
+
RiskSet(Clones.clone(_masterInstanceRiskSet)),
|
420
|
+
InstanceReader(Clones.clone(address(_masterInstanceReader))),
|
421
|
+
getRegistry(),
|
422
|
+
getRelease(),
|
423
|
+
instanceOwner,
|
424
|
+
allowAnyToken);
|
308
425
|
|
309
|
-
|
310
|
-
instanceAdmin.createGifTarget(targetAddress, targetName);
|
311
|
-
// set proposed target config
|
312
|
-
// TODO restriction: gif targets are set only once and only here?
|
313
|
-
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
314
|
-
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
315
|
-
instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
316
|
-
}
|
426
|
+
return clonedInstance;
|
317
427
|
}
|
318
|
-
|
319
|
-
|
428
|
+
|
429
|
+
|
430
|
+
/// @dev top level initializer (upgradable contract)
|
320
431
|
function _initialize(
|
321
432
|
address owner,
|
322
433
|
bytes memory data
|
323
434
|
)
|
324
435
|
internal
|
325
|
-
initializer
|
326
436
|
virtual override
|
437
|
+
initializer()
|
327
438
|
{
|
328
439
|
(
|
329
|
-
address
|
330
|
-
|
331
|
-
|
332
|
-
) = abi.decode(data, (address, address, address));
|
440
|
+
address authority,
|
441
|
+
address registry
|
442
|
+
) = abi.decode(data, (address, address));
|
333
443
|
|
334
|
-
|
444
|
+
__Service_init(authority, registry, owner);
|
335
445
|
|
336
446
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
337
447
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
448
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
338
449
|
|
339
|
-
|
450
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
340
451
|
}
|
341
452
|
|
342
453
|
|
@@ -348,15 +459,54 @@ contract InstanceService is
|
|
348
459
|
IRegistry registry = getRegistry();
|
349
460
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
350
461
|
if(instanceInfo.objectType != INSTANCE()) {
|
351
|
-
revert
|
462
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
352
463
|
}
|
353
464
|
|
354
|
-
|
355
|
-
|
356
|
-
|
465
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
466
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
467
|
+
|
468
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
469
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
470
|
+
}
|
471
|
+
|
472
|
+
componentNftId = componentInfo.nftId;
|
357
473
|
}
|
358
474
|
|
359
|
-
instance = Instance(instanceInfo.objectAddress);
|
360
|
-
|
475
|
+
instance = Instance(instanceInfo.objectAddress);
|
476
|
+
}
|
477
|
+
|
478
|
+
|
479
|
+
function _checkInstance(
|
480
|
+
address instanceAddress,
|
481
|
+
VersionPart expectedRelease
|
482
|
+
)
|
483
|
+
internal
|
484
|
+
virtual
|
485
|
+
view
|
486
|
+
{
|
487
|
+
IRegistry registry = getRegistry();
|
488
|
+
|
489
|
+
NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
|
490
|
+
if (instanceNftId.eqz()) {
|
491
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
492
|
+
}
|
493
|
+
|
494
|
+
ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
|
495
|
+
if (objectType != INSTANCE()) {
|
496
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
497
|
+
}
|
498
|
+
|
499
|
+
if (expectedRelease.gtz()) {
|
500
|
+
VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
|
501
|
+
if (instanceRelease != expectedRelease) {
|
502
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
|
503
|
+
}
|
504
|
+
}
|
505
|
+
}
|
506
|
+
|
507
|
+
|
508
|
+
// From IService
|
509
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
510
|
+
return INSTANCE();
|
361
511
|
}
|
362
512
|
}
|