@etherisc/gif-next 0.0.2-e9a637d-547 → 0.0.2-e9c25ee-730
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 +136 -22
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1672 -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/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1255 -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/{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 +1322 -0
- 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 +1209 -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 +4 -0
- package/artifacts/contracts/{components/IDistributionComponent.sol/IDistributionComponent.json → distribution/Distribution.sol/Distribution.json} +285 -324
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1633 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +896 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +274 -275
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +339 -329
- 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 +1445 -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 +2002 -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 +1388 -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 +1612 -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 +2389 -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 +596 -94
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +367 -106
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +585 -207
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2366 -0
- 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 +1985 -576
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +378 -425
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -174
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +1927 -876
- 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 +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 -54
- 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 +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 +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 +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 +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +753 -0
- 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} +302 -175
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → oracle/Oracle.sol/Oracle.json} +253 -241
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +997 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +764 -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} +320 -465
- 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 +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1261 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +800 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IBundleService.sol/IBundleService.json +289 -68
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +886 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → pool}/IPoolService.sol/IPoolService.json +609 -223
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +368 -426
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +1574 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +808 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +879 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +740 -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} +455 -482
- 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 +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1496 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +848 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → product}/IApplicationService.sol/IApplicationService.json +180 -163
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1064 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +981 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +623 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +997 -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} +95 -65
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1333 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +349 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +808 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +911 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +764 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1098 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -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 +483 -29
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +286 -109
- 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 +982 -137
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2195 -0
- 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 +361 -250
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +174 -109
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2160 -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 +1393 -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 +317 -154
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +4 -0
- package/artifacts/contracts/{instance/base/ComponentService.sol/ComponentService.json → shared/Component.sol/Component.json} +265 -186
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1556 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +816 -0
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IClaimService.sol/IClaimService.json → shared/ComponentVerifyingService.sol/ComponentVerifyingService.json} +142 -132
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +616 -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 +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +137 -131
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +1196 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +688 -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 +144 -3
- 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 +69 -5
- 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 +776 -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 +126 -100
- 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 +66 -109
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +635 -8
- 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 +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → staking/IStaking.sol/IStaking.json} +749 -587
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1167 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +1888 -0
- package/artifacts/contracts/staking/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 +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +792 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +560 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1380 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +736 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2297 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +617 -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 +373 -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 +241 -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 +204 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +254 -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 +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 +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 +572 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionLib.json +158 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +4 -0
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +167 -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 +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +875 -0
- package/contracts/authorization/AccessAdminLib.sol +379 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +261 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +136 -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 +245 -0
- package/contracts/distribution/DistributionService.sol +440 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +50 -0
- package/contracts/distribution/IDistributionService.sol +109 -0
- 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 +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +117 -38
- package/contracts/instance/IInstanceService.sol +71 -50
- package/contracts/instance/Instance.sol +252 -110
- package/contracts/instance/InstanceAdmin.sol +569 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +262 -0
- package/contracts/instance/InstanceReader.sol +528 -82
- package/contracts/instance/InstanceService.sol +385 -391
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +174 -95
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/BalanceStore.sol +123 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- 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 +9 -11
- package/contracts/instance/module/IComponents.sol +44 -23
- package/contracts/instance/module/IDistribution.sol +25 -12
- package/contracts/instance/module/IPolicy.sol +71 -38
- package/contracts/instance/module/IRisk.sol +6 -1
- package/contracts/{test/Usdc.sol → mock/Dip.sol} +6 -6
- package/contracts/oracle/BasicOracle.sol +45 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +53 -0
- package/contracts/oracle/IOracle.sol +41 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +154 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +173 -0
- package/contracts/pool/BasicPoolAuthorization.sol +82 -0
- package/contracts/pool/BundleService.sol +395 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/{instance/service → pool}/IBundleService.sol +52 -30
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +165 -0
- package/contracts/pool/Pool.sol +343 -0
- package/contracts/pool/PoolLib.sol +260 -0
- package/contracts/pool/PoolService.sol +733 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +274 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +61 -0
- package/contracts/product/ClaimService.sol +630 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
- package/contracts/{instance/service → product}/IApplicationService.sol +22 -35
- package/contracts/product/IClaimService.sol +135 -0
- package/contracts/product/IPolicyService.sol +95 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +33 -0
- package/contracts/product/PolicyService.sol +664 -0
- package/contracts/product/PolicyServiceLib.sol +86 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +309 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +467 -0
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -40
- package/contracts/registry/IRegistry.sol +99 -30
- package/contracts/registry/IRegistryService.sol +34 -40
- package/contracts/registry/IRelease.sol +29 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +460 -197
- package/contracts/registry/RegistryAdmin.sol +291 -0
- package/contracts/registry/RegistryAuthorization.sol +277 -0
- package/contracts/registry/RegistryService.sol +89 -130
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseAdmin.sol +268 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +517 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +341 -0
- package/contracts/registry/TokenRegistry.sol +264 -64
- package/contracts/shared/Component.sol +210 -0
- package/contracts/shared/ComponentService.sol +708 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ComponentVerifyingService.sol +128 -0
- package/contracts/shared/ContractLib.sol +292 -0
- package/contracts/shared/IComponent.sol +58 -0
- package/contracts/shared/IComponentService.sol +112 -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 +23 -1
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +13 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +12 -4
- package/contracts/shared/InstanceLinkedComponent.sol +195 -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 +34 -27
- package/contracts/shared/PolicyHolder.sol +22 -41
- package/contracts/shared/Registerable.sol +52 -20
- package/contracts/shared/RegistryLinked.sol +9 -19
- package/contracts/shared/Service.sol +34 -40
- package/contracts/shared/TokenHandler.sol +322 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +179 -0
- package/contracts/staking/IStakingService.sol +172 -0
- package/contracts/staking/Staking.sol +546 -0
- package/contracts/staking/StakingLib.sol +281 -0
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +52 -0
- package/contracts/staking/StakingReader.sol +180 -0
- package/contracts/staking/StakingService.sol +464 -0
- package/contracts/staking/StakingServiceManager.sol +45 -0
- package/contracts/staking/StakingStore.sol +606 -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 +28 -26
- 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 +307 -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/type/RiskId.sol +75 -0
- package/contracts/type/RoleId.sol +180 -0
- package/contracts/type/Seconds.sol +101 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +47 -4
- package/contracts/type/String.sol +53 -0
- package/contracts/{types → type}/Timestamp.sol +20 -6
- package/contracts/type/UFixed.sol +262 -0
- package/contracts/{types → type}/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +1 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +104 -39
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +7 -4
- package/package.json +12 -8
- package/artifacts/contracts/components/Component.sol/Component.dbg.json +0 -4
- package/artifacts/contracts/components/Distribution.sol/Distribution.dbg.json +0 -4
- package/artifacts/contracts/components/IComponent.sol/IComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IDistributionComponent.sol/IDistributionComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IPoolComponent.sol/IPoolComponent.dbg.json +0 -4
- package/artifacts/contracts/components/IProductComponent.sol/IProductComponent.dbg.json +0 -4
- package/artifacts/contracts/components/Pool.sol/Pool.dbg.json +0 -4
- package/artifacts/contracts/components/Product.sol/Product.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/instance/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- 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 -1348
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/ObjectManager.sol/ObjectManager.json +0 -256
- 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/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -237
- 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 -1039
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ApplicationServiceManager.sol/ApplicationServiceManager.json +0 -673
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleService.sol/BundleService.json +0 -1231
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/BundleServiceManager.sol/BundleServiceManager.json +0 -721
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimService.sol/ClaimService.json +0 -817
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ClaimServiceManager.sol/ClaimServiceManager.json +0 -641
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionService.sol/DistributionService.json +0 -1798
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/DistributionServiceManager.sol/DistributionServiceManager.json +0 -805
- 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/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/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 -1092
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PolicyServiceManager.sol/PolicyServiceManager.json +0 -697
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolService.sol/PoolService.json +0 -1237
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/PoolServiceManager.sol/PoolServiceManager.json +0 -661
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductService.sol/ProductService.json +0 -840
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/instance/service/ProductServiceManager.sol/ProductServiceManager.json +0 -653
- 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 -559
- 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 -596
- 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/Amount.sol/AmountLib.dbg.json +0 -4
- package/artifacts/contracts/types/Amount.sol/AmountLib.json +0 -161
- 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 -288
- 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 -253
- package/contracts/components/Distribution.sol +0 -280
- package/contracts/components/IComponent.sol +0 -76
- 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 -303
- package/contracts/components/Product.sol +0 -293
- package/contracts/instance/AccessManagerUpgradeableInitializeable.sol +0 -13
- package/contracts/instance/BundleManager.sol +0 -127
- package/contracts/instance/Cloneable.sol +0 -51
- package/contracts/instance/InstanceAccessManager.sol +0 -540
- package/contracts/instance/ObjectManager.sol +0 -82
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/KeyValueStore.sol +0 -180
- package/contracts/instance/base/Lifecycle.sol +0 -109
- package/contracts/instance/module/IAccess.sol +0 -54
- package/contracts/instance/module/ISetup.sol +0 -33
- package/contracts/instance/module/ITreasury.sol +0 -23
- package/contracts/instance/service/ApplicationService.sol +0 -351
- package/contracts/instance/service/BundleService.sol +0 -431
- package/contracts/instance/service/BundleServiceManager.sol +0 -51
- package/contracts/instance/service/ClaimService.sol +0 -151
- package/contracts/instance/service/DistributionService.sol +0 -437
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IClaimService.sol +0 -61
- package/contracts/instance/service/IDistributionService.sol +0 -99
- package/contracts/instance/service/IPolicyService.sol +0 -72
- package/contracts/instance/service/IPoolService.sol +0 -99
- package/contracts/instance/service/IProductService.sol +0 -40
- package/contracts/instance/service/PolicyService.sol +0 -362
- package/contracts/instance/service/PolicyServiceManager.sol +0 -54
- package/contracts/instance/service/PoolService.sol +0 -303
- package/contracts/instance/service/PoolServiceManager.sol +0 -51
- package/contracts/instance/service/ProductService.sol +0 -209
- package/contracts/instance/service/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -216
- package/contracts/registry/ReleaseManager.sol +0 -324
- 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/Amount.sol +0 -60
- 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/RiskId.sol +0 -43
- package/contracts/types/RoleId.sol +0 -97
- package/contracts/types/Seconds.sol +0 -54
- package/contracts/types/UFixed.sol +0 -326
- /package/contracts/{types → type}/DistributorType.sol +0 -0
@@ -2,407 +2,347 @@
|
|
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 {NftId} from "../../contracts/types/NftId.sol";
|
8
|
-
import {RoleId} from "../types/RoleId.sol";
|
9
|
-
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 "../types/RoleId.sol";
|
10
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, POLICY, CLAIM, PRODUCT, DISTRIBUTION, REGISTRY, POOL} from "../types/ObjectType.sol";
|
11
|
-
|
12
|
-
import {Service} from "../shared/Service.sol";
|
13
|
-
import {IService} from "../shared/IService.sol";
|
14
|
-
|
15
|
-
import {IDistributionComponent} from "../components/IDistributionComponent.sol";
|
16
|
-
import {IPoolComponent} from "../components/IPoolComponent.sol";
|
17
|
-
import {IProductComponent} from "../components/IProductComponent.sol";
|
18
5
|
|
6
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
8
|
+
import {IInstance} from "./IInstance.sol";
|
9
|
+
import {IInstanceService} from "./IInstanceService.sol";
|
19
10
|
import {IRegistry} from "../registry/IRegistry.sol";
|
20
11
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
21
|
-
import {
|
12
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
22
13
|
|
14
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
15
|
+
import {Amount} from "../type/Amount.sol";
|
16
|
+
import {BundleSet} from "./BundleSet.sol";
|
23
17
|
import {Instance} from "./Instance.sol";
|
24
|
-
import {
|
25
|
-
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
26
|
-
import {IInstanceService} from "./IInstanceService.sol";
|
18
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
27
19
|
import {InstanceReader} from "./InstanceReader.sol";
|
28
|
-
import {BundleManager} from "./BundleManager.sol";
|
29
|
-
import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
|
30
20
|
import {InstanceStore} from "./InstanceStore.sol";
|
21
|
+
import {NftId} from "../type/NftId.sol";
|
22
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
23
|
+
import {RiskSet} from "./RiskSet.sol";
|
24
|
+
import {RoleId} from "../type/RoleId.sol";
|
25
|
+
import {Seconds} from "../type/Seconds.sol";
|
26
|
+
import {Service} from "../shared/Service.sol";
|
27
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
28
|
+
import {UFixed} from "../type/UFixed.sol";
|
29
|
+
import {VersionPart} from "../type/Version.sol";
|
31
30
|
|
32
31
|
|
33
32
|
contract InstanceService is
|
34
33
|
Service,
|
35
34
|
IInstanceService
|
36
35
|
{
|
37
|
-
address internal _masterOzAccessManager;
|
38
|
-
address internal _masterInstanceAccessManager;
|
39
|
-
address internal _masterInstance;
|
40
|
-
address internal _masterInstanceReader;
|
41
|
-
address internal _masterInstanceBundleManager;
|
42
|
-
address internal _masterInstanceStore;
|
43
36
|
|
44
37
|
// TODO update to real hash when instance is stable
|
45
38
|
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
46
39
|
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
40
|
+
IRegistryService internal _registryService;
|
41
|
+
IStakingService internal _stakingService;
|
42
|
+
IComponentService internal _componentService;
|
43
|
+
|
44
|
+
address internal _masterAccessManager;
|
45
|
+
address internal _masterInstanceAdmin;
|
46
|
+
address internal _masterInstance;
|
47
|
+
address internal _masterInstanceReader;
|
48
|
+
address internal _masterInstanceBundleSet;
|
49
|
+
address internal _masterInstanceRiskSet;
|
50
|
+
address internal _masterInstanceStore;
|
51
|
+
|
52
|
+
|
53
|
+
modifier onlyInstance() {
|
54
|
+
_checkInstance(msg.sender, getRelease());
|
51
55
|
_;
|
52
56
|
}
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
58
|
-
|
59
|
-
|
57
|
+
|
58
|
+
|
59
|
+
// TODO cleanup
|
60
|
+
// modifier onlyInstanceOwner(NftId instanceNftId) {
|
61
|
+
// if(msg.sender != getRegistry().ownerOf(instanceNftId)) {
|
62
|
+
// revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
63
|
+
// }
|
64
|
+
// _;
|
65
|
+
// }
|
66
|
+
|
67
|
+
// // TODO check component - service - instance version match
|
68
|
+
// modifier onlyComponent() {
|
69
|
+
// if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
70
|
+
// revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
71
|
+
// }
|
72
|
+
// _;
|
73
|
+
// }
|
74
|
+
|
75
|
+
|
76
|
+
/// @inheritdoc IInstanceService
|
77
|
+
function createRole(
|
78
|
+
string memory roleName,
|
79
|
+
RoleId adminRoleId,
|
80
|
+
uint32 maxMemberCount
|
81
|
+
)
|
82
|
+
external
|
83
|
+
restricted()
|
84
|
+
onlyInstance()
|
85
|
+
returns (RoleId roleId)
|
86
|
+
{
|
87
|
+
IInstance instance = IInstance(msg.sender);
|
88
|
+
roleId = instance.getInstanceAdmin().createRole(
|
89
|
+
roleName,
|
90
|
+
adminRoleId,
|
91
|
+
maxMemberCount);
|
60
92
|
}
|
61
|
-
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
93
|
+
|
94
|
+
|
95
|
+
/// @inheritdoc IInstanceService
|
96
|
+
function setRoleActive(RoleId roleId, bool active)
|
97
|
+
external
|
98
|
+
restricted()
|
99
|
+
onlyInstance()
|
100
|
+
{
|
101
|
+
IInstance instance = IInstance(msg.sender);
|
102
|
+
instance.getInstanceAdmin().setRoleActive(roleId, active);
|
67
103
|
}
|
68
104
|
|
69
|
-
|
105
|
+
|
106
|
+
/// @inheritdoc IInstanceService
|
107
|
+
function grantRole(RoleId roleId, address account)
|
108
|
+
external
|
109
|
+
restricted()
|
110
|
+
onlyInstance()
|
111
|
+
{
|
112
|
+
IInstance instance = IInstance(msg.sender);
|
113
|
+
instance.getInstanceAdmin().grantRole(roleId, account);
|
114
|
+
}
|
115
|
+
|
116
|
+
|
117
|
+
/// @inheritdoc IInstanceService
|
118
|
+
function revokeRole(RoleId roleId, address account)
|
70
119
|
external
|
71
|
-
|
72
|
-
|
73
|
-
InstanceAccessManager clonedInstanceAccessManager,
|
74
|
-
Instance clonedInstance,
|
75
|
-
NftId clonedInstanceNftId,
|
76
|
-
InstanceReader clonedInstanceReader,
|
77
|
-
BundleManager clonedBundleManager,
|
78
|
-
InstanceStore clonedInstanceStore
|
79
|
-
)
|
120
|
+
restricted()
|
121
|
+
onlyInstance()
|
80
122
|
{
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
IRegistryService registryService = IRegistryService(
|
85
|
-
registry.getServiceAddress(REGISTRY(), getVersion().toMajorPart())
|
86
|
-
);
|
123
|
+
IInstance instance = IInstance(msg.sender);
|
124
|
+
instance.getInstanceAdmin().revokeRole(roleId, account);
|
125
|
+
}
|
87
126
|
|
88
|
-
|
127
|
+
/// @inheritdoc IInstanceService
|
128
|
+
function createTarget(address target, string memory name)
|
129
|
+
external
|
130
|
+
restricted()
|
131
|
+
onlyInstance()
|
132
|
+
returns (RoleId contractRoleId)
|
133
|
+
{
|
134
|
+
IInstance instance = IInstance(msg.sender);
|
135
|
+
return instance.getInstanceAdmin().createTarget(target, name);
|
136
|
+
}
|
89
137
|
|
90
|
-
// initially grants ADMIN_ROLE to this (being the instance service).
|
91
|
-
// This will allow the instance service to bootstrap the authorizations of the instance.
|
92
|
-
// Instance service will not use oz access manager directlly but through instance access manager instead
|
93
|
-
// Instance service will renounce ADMIN_ROLE when bootstraping is finished
|
94
|
-
clonedOzAccessManager.initialize(address(this));
|
95
138
|
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
107
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
108
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
139
|
+
/// @dev Locks/unlocks the specified target constrolled by the corresponding instance admin.
|
140
|
+
function setTargetLocked(address target, bool locked)
|
141
|
+
external
|
142
|
+
virtual
|
143
|
+
restricted()
|
144
|
+
onlyInstance()
|
145
|
+
{
|
146
|
+
address instanceAddress = msg.sender;
|
147
|
+
IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
|
148
|
+
}
|
109
149
|
|
110
|
-
clonedBundleManager = BundleManager(Clones.clone(_masterInstanceBundleManager));
|
111
|
-
clonedBundleManager.initialize(address(clonedInstance));
|
112
|
-
clonedInstance.setBundleManager(clonedBundleManager);
|
113
150
|
|
114
|
-
|
115
|
-
|
116
|
-
|
117
|
-
|
151
|
+
/// @inheritdoc IInstanceService
|
152
|
+
function setInstanceLocked(bool locked)
|
153
|
+
external
|
154
|
+
virtual
|
155
|
+
restricted()
|
156
|
+
onlyInstance()
|
157
|
+
{
|
158
|
+
address instanceAddress = msg.sender;
|
159
|
+
IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
|
160
|
+
}
|
118
161
|
|
119
|
-
// TODO amend setters with instance specific , policy manager ...
|
120
162
|
|
121
|
-
|
163
|
+
/// @inheritdoc IInstanceService
|
164
|
+
function createInstance(bool allowAnyToken)
|
165
|
+
external
|
166
|
+
virtual
|
167
|
+
restricted()
|
168
|
+
returns (
|
169
|
+
IInstance instance,
|
170
|
+
NftId instanceNftId
|
171
|
+
)
|
172
|
+
{
|
173
|
+
// tx sender will become instance owner
|
174
|
+
address instanceOwner = msg.sender;
|
122
175
|
|
123
|
-
|
176
|
+
// create instance admin and instance
|
177
|
+
InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
|
178
|
+
instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
|
124
179
|
|
125
|
-
|
126
|
-
|
180
|
+
// register cloned instance with registry
|
181
|
+
instanceNftId = _registryService.registerInstance(
|
182
|
+
instance, instanceOwner).nftId;
|
183
|
+
|
184
|
+
// MUST be set after instance is set up and registered
|
185
|
+
IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
|
186
|
+
instanceAdmin.completeSetup(
|
187
|
+
address(getRegistry()),
|
188
|
+
address(instance),
|
189
|
+
address(instanceAuthorization),
|
190
|
+
getRelease());
|
191
|
+
|
192
|
+
// hard checks for newly cloned instance
|
193
|
+
assert(address(instance.getRegistry()) == address(getRegistry()));
|
194
|
+
assert(instance.getRelease() == getRelease());
|
195
|
+
|
196
|
+
// register cloned instance as staking target
|
197
|
+
_stakingService.createInstanceTarget(
|
198
|
+
instanceNftId,
|
199
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
200
|
+
TargetManagerLib.getDefaultRewardRate());
|
127
201
|
|
128
202
|
emit LogInstanceCloned(
|
129
|
-
|
130
|
-
address(
|
131
|
-
address(clonedInstance),
|
132
|
-
address(clonedInstanceStore),
|
133
|
-
address(clonedBundleManager),
|
134
|
-
address(clonedInstanceReader),
|
135
|
-
clonedInstanceNftId);
|
203
|
+
instanceNftId,
|
204
|
+
address(instance));
|
136
205
|
}
|
137
206
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
internal
|
207
|
+
|
208
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
209
|
+
external
|
210
|
+
virtual
|
211
|
+
restricted()
|
212
|
+
onlyInstance()
|
145
213
|
{
|
146
|
-
|
147
|
-
|
148
|
-
|
149
|
-
|
150
|
-
_grantProductServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
151
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
152
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
153
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstanceStore);
|
154
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstanceStore, clonedBundleManager);
|
155
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
156
|
-
_grantInstanceAuthorizations(clonedAccessManager);
|
157
|
-
_grantInstanceOwnerAuthorizations(clonedAccessManager, clonedInstance);
|
214
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
215
|
+
_stakingService.setInstanceLockingPeriod(
|
216
|
+
instanceNftId,
|
217
|
+
stakeLockingPeriod);
|
158
218
|
}
|
159
219
|
|
160
|
-
function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
|
161
|
-
// default roles controlled by ADMIN_ROLE -> core roles
|
162
|
-
// all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
|
163
|
-
clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
164
|
-
clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
|
165
|
-
clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
|
166
|
-
clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
|
167
|
-
clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
|
168
|
-
clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
169
|
-
clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
170
|
-
clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
171
|
-
// default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
|
172
|
-
clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
|
173
|
-
clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
|
174
|
-
clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
|
175
|
-
}
|
176
220
|
|
177
|
-
function
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
internal
|
221
|
+
function setStakingRewardRate(UFixed rewardRate)
|
222
|
+
external
|
223
|
+
virtual
|
224
|
+
restricted()
|
225
|
+
onlyInstance()
|
183
226
|
{
|
184
|
-
|
185
|
-
|
186
|
-
|
187
|
-
|
227
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
228
|
+
_stakingService.setInstanceRewardRate(
|
229
|
+
instanceNftId,
|
230
|
+
rewardRate);
|
188
231
|
}
|
189
232
|
|
190
|
-
function
|
191
|
-
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
instanceDistributionServiceSelectors[6] = clonedInstanceStore.updateDistributor.selector;
|
202
|
-
instanceDistributionServiceSelectors[7] = clonedInstanceStore.updateDistributorState.selector;
|
203
|
-
instanceDistributionServiceSelectors[8] = clonedInstanceStore.createReferral.selector;
|
204
|
-
instanceDistributionServiceSelectors[9] = clonedInstanceStore.updateReferral.selector;
|
205
|
-
instanceDistributionServiceSelectors[10] = clonedInstanceStore.updateReferralState.selector;
|
206
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
207
|
-
"InstanceStore",
|
208
|
-
instanceDistributionServiceSelectors,
|
209
|
-
DISTRIBUTION_SERVICE_ROLE());
|
210
|
-
}
|
233
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
234
|
+
external
|
235
|
+
virtual
|
236
|
+
restricted()
|
237
|
+
onlyInstance()
|
238
|
+
{
|
239
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
240
|
+
_stakingService.setInstanceMaxStakedAmount(
|
241
|
+
instanceNftId,
|
242
|
+
maxStakedAmount);
|
243
|
+
}
|
211
244
|
|
212
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
213
|
-
// configure authorization for pool service on instance
|
214
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
|
215
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
216
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
217
|
-
instancePoolServiceSelectors[0] = clonedInstanceStore.createPoolSetup.selector;
|
218
|
-
instancePoolServiceSelectors[1] = clonedInstanceStore.updatePoolSetup.selector;
|
219
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
220
|
-
"InstanceStore",
|
221
|
-
instancePoolServiceSelectors,
|
222
|
-
POOL_SERVICE_ROLE());
|
223
|
-
}
|
224
245
|
|
225
|
-
function
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
233
|
-
|
234
|
-
|
235
|
-
|
236
|
-
"InstanceStore",
|
237
|
-
instanceProductServiceSelectors,
|
238
|
-
PRODUCT_SERVICE_ROLE());
|
246
|
+
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
247
|
+
external
|
248
|
+
virtual
|
249
|
+
restricted()
|
250
|
+
onlyInstance()
|
251
|
+
{
|
252
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
253
|
+
_stakingService.refillInstanceRewardReserves(
|
254
|
+
instanceNftId,
|
255
|
+
rewardProvider,
|
256
|
+
dipAmount);
|
239
257
|
}
|
240
258
|
|
241
|
-
function _grantApplicationServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
242
|
-
// configure authorization for application services on instance
|
243
|
-
address applicationServiceAddress = getRegistry().getServiceAddress(APPLICATION(), getVersion().toMajorPart());
|
244
|
-
clonedAccessManager.grantRole(APPLICATION_SERVICE_ROLE(), applicationServiceAddress);
|
245
|
-
bytes4[] memory instanceApplicationServiceSelectors = new bytes4[](3);
|
246
|
-
instanceApplicationServiceSelectors[0] = clonedInstanceStore.createApplication.selector;
|
247
|
-
instanceApplicationServiceSelectors[1] = clonedInstanceStore.updateApplication.selector;
|
248
|
-
instanceApplicationServiceSelectors[2] = clonedInstanceStore.updateApplicationState.selector;
|
249
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
250
|
-
"InstanceStore",
|
251
|
-
instanceApplicationServiceSelectors,
|
252
|
-
APPLICATION_SERVICE_ROLE());
|
253
|
-
}
|
254
259
|
|
255
|
-
function
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
261
|
-
|
262
|
-
|
263
|
-
|
264
|
-
|
265
|
-
|
260
|
+
function withdrawStakingRewardReserves(Amount dipAmount)
|
261
|
+
external
|
262
|
+
virtual
|
263
|
+
restricted()
|
264
|
+
onlyInstance()
|
265
|
+
returns (Amount newBalance)
|
266
|
+
{
|
267
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
268
|
+
_stakingService.withdrawInstanceRewardReserves(
|
269
|
+
instanceNftId,
|
270
|
+
dipAmount);
|
266
271
|
}
|
267
272
|
|
268
|
-
function _grantClaimServiceAuthorizations(InstanceAccessManager clonedAccessManager, InstanceStore clonedInstanceStore) internal {
|
269
|
-
// configure authorization for claim/payout services on instance
|
270
|
-
address claimServiceAddress = getRegistry().getServiceAddress(CLAIM(), getVersion().toMajorPart());
|
271
|
-
clonedAccessManager.grantRole(POLICY_SERVICE_ROLE(), claimServiceAddress);
|
272
|
-
// TODO add claims function authz
|
273
|
-
bytes4[] memory instanceClaimServiceSelectors = new bytes4[](0);
|
274
|
-
// instanceClaimServiceSelectors[0] = clonedInstanceStore.updatePolicy.selector;
|
275
|
-
// instanceClaimServiceSelectors[1] = clonedInstanceStore.updatePolicyState.selector;
|
276
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
277
|
-
"InstanceStore",
|
278
|
-
instanceClaimServiceSelectors,
|
279
|
-
CLAIM_SERVICE_ROLE());
|
280
|
-
}
|
281
273
|
|
282
|
-
function
|
283
|
-
|
284
|
-
|
285
|
-
|
286
|
-
|
287
|
-
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
instanceBundleServiceSelectors,
|
293
|
-
BUNDLE_SERVICE_ROLE());
|
294
|
-
|
295
|
-
// configure authorization for bundle service on bundle manager
|
296
|
-
bytes4[] memory bundleManagerBundleServiceSelectors = new bytes4[](5);
|
297
|
-
bundleManagerBundleServiceSelectors[0] = clonedBundleManager.linkPolicy.selector;
|
298
|
-
bundleManagerBundleServiceSelectors[1] = clonedBundleManager.unlinkPolicy.selector;
|
299
|
-
bundleManagerBundleServiceSelectors[2] = clonedBundleManager.add.selector;
|
300
|
-
bundleManagerBundleServiceSelectors[3] = clonedBundleManager.lock.selector;
|
301
|
-
bundleManagerBundleServiceSelectors[4] = clonedBundleManager.unlock.selector;
|
302
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
303
|
-
"BundleManager",
|
304
|
-
bundleManagerBundleServiceSelectors,
|
305
|
-
BUNDLE_SERVICE_ROLE());
|
306
|
-
}
|
307
|
-
|
308
|
-
function _grantInstanceServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
309
|
-
// configure authorization for instance service on instance
|
310
|
-
address instanceServiceAddress = getRegistry().getServiceAddress(INSTANCE(), getVersion().toMajorPart());
|
311
|
-
clonedAccessManager.grantRole(INSTANCE_SERVICE_ROLE(), instanceServiceAddress);
|
312
|
-
bytes4[] memory instanceInstanceServiceSelectors = new bytes4[](1);
|
313
|
-
instanceInstanceServiceSelectors[0] = clonedInstance.setInstanceReader.selector;
|
314
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
315
|
-
"Instance",
|
316
|
-
instanceInstanceServiceSelectors,
|
317
|
-
INSTANCE_SERVICE_ROLE());
|
318
|
-
|
319
|
-
// configure authorizations for instance service on instance access manager
|
320
|
-
bytes4[] memory accessManagerInstanceServiceSelectors = new bytes4[](3);
|
321
|
-
accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
322
|
-
accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLockedByService.selector;
|
323
|
-
accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
|
324
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
325
|
-
"InstanceAccessManager",
|
326
|
-
accessManagerInstanceServiceSelectors,
|
327
|
-
INSTANCE_SERVICE_ROLE());
|
328
|
-
}
|
274
|
+
function upgradeInstanceReader()
|
275
|
+
external
|
276
|
+
restricted()
|
277
|
+
onlyInstance()
|
278
|
+
{
|
279
|
+
address instanceAddress = msg.sender;
|
280
|
+
IInstance instance = IInstance(msg.sender);
|
281
|
+
|
282
|
+
InstanceReader upgradedInstanceReaderClone = InstanceReader(
|
283
|
+
Clones.clone(address(_masterInstanceReader)));
|
329
284
|
|
330
|
-
|
331
|
-
|
332
|
-
accessManagerInstanceSelectors[0] = clonedAccessManager.createRole.selector;
|
333
|
-
accessManagerInstanceSelectors[1] = clonedAccessManager.createTarget.selector;
|
334
|
-
accessManagerInstanceSelectors[2] = clonedAccessManager.setTargetFunctionRole.selector;
|
335
|
-
accessManagerInstanceSelectors[3] = clonedAccessManager.setTargetLockedByInstance.selector;
|
336
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
337
|
-
"InstanceAccessManager",
|
338
|
-
accessManagerInstanceSelectors,
|
339
|
-
INSTANCE_ROLE());
|
285
|
+
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
286
|
+
instance.setInstanceReader(upgradedInstanceReaderClone);
|
340
287
|
}
|
341
288
|
|
342
|
-
function _grantInstanceOwnerAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
343
|
-
// configure authorization for instance owner on instance access manager
|
344
|
-
// instance owner role is granted/revoked ONLY by INSTANCE_ROLE
|
345
|
-
bytes4[] memory instanceInstanceOwnerSelectors = new bytes4[](4);
|
346
|
-
instanceInstanceOwnerSelectors[0] = clonedInstance.createRole.selector;
|
347
|
-
instanceInstanceOwnerSelectors[1] = clonedInstance.createTarget.selector;
|
348
|
-
instanceInstanceOwnerSelectors[2] = clonedInstance.setTargetFunctionRole.selector;
|
349
|
-
instanceInstanceOwnerSelectors[3] = clonedInstance.setTargetLocked.selector;
|
350
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
351
|
-
"Instance",
|
352
|
-
instanceInstanceOwnerSelectors,
|
353
|
-
INSTANCE_OWNER_ROLE());
|
354
|
-
}
|
355
289
|
|
356
290
|
function setAndRegisterMasterInstance(address instanceAddress)
|
357
|
-
|
358
|
-
|
359
|
-
|
291
|
+
external
|
292
|
+
onlyOwner()
|
293
|
+
returns(NftId masterInstanceNftId)
|
360
294
|
{
|
361
295
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
362
|
-
if(
|
363
|
-
if(
|
364
|
-
if(
|
365
|
-
|
296
|
+
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
297
|
+
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
298
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
366
299
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
367
300
|
|
368
301
|
IInstance instance = IInstance(instanceAddress);
|
369
|
-
|
370
|
-
|
371
|
-
|
372
|
-
address instanceAccessManagerAddress = address(instanceAccessManager);
|
302
|
+
address accessManagerAddress = instance.authority();
|
303
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
304
|
+
address instanceAdminAddress = address(instanceAdmin);
|
373
305
|
InstanceReader instanceReader = instance.getInstanceReader();
|
374
306
|
address instanceReaderAddress = address(instanceReader);
|
375
|
-
|
376
|
-
address
|
307
|
+
BundleSet bundleSet = instance.getBundleSet();
|
308
|
+
address bundleSetAddress = address(bundleSet);
|
309
|
+
RiskSet riskSet = instance.getRiskSet();
|
310
|
+
address riskSetAddress = address(riskSet);
|
377
311
|
InstanceStore instanceStore = instance.getInstanceStore();
|
378
312
|
address instanceStoreAddress = address(instanceStore);
|
379
313
|
|
380
|
-
if(
|
381
|
-
if(
|
314
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
315
|
+
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
382
316
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
383
|
-
if(
|
317
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
318
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
384
319
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
385
320
|
|
386
|
-
if(instance.authority() !=
|
387
|
-
if(
|
388
|
-
if(
|
321
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
322
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
323
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
324
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
325
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
326
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
389
327
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
390
|
-
if(bundleManager.getInstance() != instance) { revert ErrorInstanceServiceBundleMangerInstanceMismatch(); }
|
391
328
|
|
392
|
-
|
393
|
-
|
329
|
+
_masterAccessManager = accessManagerAddress;
|
330
|
+
_masterInstanceAdmin = instanceAdminAddress;
|
394
331
|
_masterInstance = instanceAddress;
|
395
332
|
_masterInstanceReader = instanceReaderAddress;
|
396
|
-
|
333
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
334
|
+
_masterInstanceRiskSet = riskSetAddress;
|
397
335
|
_masterInstanceStore = instanceStoreAddress;
|
398
336
|
|
399
|
-
IRegistryService registryService = IRegistryService(getRegistry().getServiceAddress(REGISTRY(), getVersion().toMajorPart()));
|
400
337
|
IInstance masterInstance = IInstance(_masterInstance);
|
401
|
-
IRegistry.ObjectInfo memory info =
|
338
|
+
IRegistry.ObjectInfo memory info = _registryService.registerInstance(masterInstance, getOwner());
|
402
339
|
masterInstanceNftId = info.nftId;
|
403
340
|
}
|
404
341
|
|
405
|
-
function
|
342
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
343
|
+
external
|
344
|
+
onlyOwner
|
345
|
+
{
|
406
346
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
407
347
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
408
348
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -413,101 +353,113 @@ contract InstanceService is
|
|
413
353
|
_masterInstanceReader = instanceReaderAddress;
|
414
354
|
}
|
415
355
|
|
416
|
-
function upgradeInstanceReader(NftId instanceNftId)
|
417
|
-
external
|
418
|
-
onlyInstanceOwner(instanceNftId)
|
419
|
-
{
|
420
|
-
IRegistry registry = getRegistry();
|
421
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
422
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
423
|
-
|
424
|
-
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
425
|
-
upgradedInstanceReaderClone.initialize(address(instance));
|
426
|
-
instance.setInstanceReader(upgradedInstanceReaderClone);
|
427
|
-
}
|
428
|
-
|
429
356
|
function getMasterInstanceReader() external view returns (address) {
|
430
357
|
return _masterInstanceReader;
|
431
358
|
}
|
432
359
|
|
433
|
-
|
434
|
-
|
435
|
-
|
360
|
+
/// @dev create new cloned instance admin
|
361
|
+
/// function used to setup a new instance
|
362
|
+
function _cloneNewInstanceAdmin()
|
363
|
+
internal
|
364
|
+
virtual
|
365
|
+
returns (InstanceAdmin clonedAdmin)
|
366
|
+
{
|
367
|
+
// clone instance specific access manager
|
368
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
369
|
+
Clones.clone(
|
370
|
+
InstanceAdmin(_masterInstanceAdmin).authority()));
|
371
|
+
|
372
|
+
// set up the instance admin
|
373
|
+
clonedAdmin = InstanceAdmin(
|
374
|
+
Clones.clone(_masterInstanceAdmin));
|
436
375
|
|
437
|
-
|
438
|
-
|
376
|
+
clonedAdmin.initialize(
|
377
|
+
address(clonedAccessManager),
|
378
|
+
"InstanceAdmin");
|
439
379
|
}
|
440
380
|
|
441
|
-
function getMasterInstanceBundleManager() external view returns (address) {
|
442
|
-
return _masterInstanceBundleManager;
|
443
|
-
}
|
444
381
|
|
445
|
-
|
446
|
-
function
|
447
|
-
|
448
|
-
|
449
|
-
|
450
|
-
|
451
|
-
function _initialize(
|
452
|
-
address owner,
|
453
|
-
bytes memory data
|
382
|
+
/// @dev create new cloned instance
|
383
|
+
/// function used to setup a new instance
|
384
|
+
function _createInstance(
|
385
|
+
InstanceAdmin instanceAdmin,
|
386
|
+
address instanceOwner,
|
387
|
+
bool allowAnyToken
|
454
388
|
)
|
455
389
|
internal
|
456
|
-
|
457
|
-
|
390
|
+
virtual
|
391
|
+
returns (IInstance)
|
458
392
|
{
|
459
|
-
|
460
|
-
|
461
|
-
|
462
|
-
|
463
|
-
|
464
|
-
|
465
|
-
|
393
|
+
// clone instance
|
394
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
395
|
+
clonedInstance.initialize(
|
396
|
+
instanceAdmin,
|
397
|
+
InstanceStore(Clones.clone(address(_masterInstanceStore))),
|
398
|
+
BundleSet(Clones.clone(_masterInstanceBundleSet)),
|
399
|
+
RiskSet(Clones.clone(_masterInstanceRiskSet)),
|
400
|
+
InstanceReader(Clones.clone(address(_masterInstanceReader))),
|
401
|
+
getRegistry(),
|
402
|
+
getRelease(),
|
403
|
+
instanceOwner,
|
404
|
+
allowAnyToken);
|
405
|
+
|
406
|
+
return clonedInstance;
|
466
407
|
}
|
467
408
|
|
468
|
-
|
469
|
-
|
409
|
+
|
410
|
+
/// all gif targets MUST be children of instanceNftId
|
411
|
+
function _createGifTarget(
|
470
412
|
NftId instanceNftId,
|
471
413
|
address targetAddress,
|
472
414
|
string memory targetName,
|
473
|
-
|
474
|
-
|
415
|
+
RoleId[] memory roles,
|
416
|
+
bytes4[][] memory selectors
|
475
417
|
)
|
476
|
-
|
477
|
-
|
418
|
+
internal
|
419
|
+
virtual
|
478
420
|
{
|
421
|
+
// TODO instanceAdmin will check target instance match anyway
|
479
422
|
(
|
480
423
|
IInstance instance, // or instanceInfo
|
481
|
-
|
424
|
+
// or targetInfo
|
482
425
|
) = _validateInstanceAndComponent(instanceNftId, targetAddress);
|
483
426
|
|
484
|
-
|
485
|
-
|
427
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
428
|
+
|
429
|
+
// TODO refactor/implement
|
430
|
+
// instanceAdmin.createGifTarget(targetAddress, targetName);
|
431
|
+
|
486
432
|
// set proposed target config
|
487
|
-
|
488
|
-
|
489
|
-
|
490
|
-
{
|
491
|
-
accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
|
433
|
+
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++) {
|
434
|
+
// TODO refactor/implement
|
435
|
+
// instanceAdmin.setTargetFunctionRoleByService(targetName, selectors[roleIdx], roles[roleIdx]);
|
492
436
|
}
|
493
437
|
}
|
438
|
+
|
439
|
+
/// @dev top level initializer
|
440
|
+
function _initialize(
|
441
|
+
address owner,
|
442
|
+
bytes memory data
|
443
|
+
)
|
444
|
+
internal
|
445
|
+
virtual override
|
446
|
+
initializer()
|
447
|
+
{
|
448
|
+
(
|
449
|
+
address authority,
|
450
|
+
address registry
|
451
|
+
) = abi.decode(data, (address, address));
|
494
452
|
|
495
|
-
|
496
|
-
// TODO check that targetName associated with component...how???
|
497
|
-
function setComponentLocked(bool locked) onlyComponent external {
|
498
|
-
address componentAddress = msg.sender;
|
499
|
-
IRegistry registry = getRegistry();
|
500
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
453
|
+
__Service_init(authority, registry, owner);
|
501
454
|
|
502
|
-
|
503
|
-
|
504
|
-
|
455
|
+
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
456
|
+
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
457
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
505
458
|
|
506
|
-
|
507
|
-
componentAddress,
|
508
|
-
locked);
|
459
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
509
460
|
}
|
510
461
|
|
462
|
+
|
511
463
|
function _validateInstanceAndComponent(NftId instanceNftId, address componentAddress)
|
512
464
|
internal
|
513
465
|
view
|
@@ -516,15 +468,57 @@ contract InstanceService is
|
|
516
468
|
IRegistry registry = getRegistry();
|
517
469
|
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
518
470
|
if(instanceInfo.objectType != INSTANCE()) {
|
519
|
-
revert
|
471
|
+
revert ErrorInstanceServiceNotInstanceNftId(instanceNftId);
|
520
472
|
}
|
521
473
|
|
522
|
-
|
523
|
-
|
524
|
-
|
474
|
+
if (registry.getNftIdForAddress(componentAddress).gtz()) {
|
475
|
+
IRegistry.ObjectInfo memory componentInfo = registry.getObjectInfo(componentAddress);
|
476
|
+
|
477
|
+
if(componentInfo.parentNftId != instanceNftId) {
|
478
|
+
revert ErrorInstanceServiceInstanceComponentMismatch(instanceNftId, componentInfo.nftId);
|
479
|
+
}
|
480
|
+
|
481
|
+
componentNftId = componentInfo.nftId;
|
482
|
+
} else {
|
483
|
+
|
525
484
|
}
|
526
485
|
|
527
486
|
instance = Instance(instanceInfo.objectAddress);
|
528
|
-
|
487
|
+
|
488
|
+
}
|
489
|
+
|
490
|
+
|
491
|
+
function _checkInstance(
|
492
|
+
address instanceAddress,
|
493
|
+
VersionPart expectedRelease
|
494
|
+
)
|
495
|
+
internal
|
496
|
+
virtual
|
497
|
+
view
|
498
|
+
{
|
499
|
+
IRegistry registry = getRegistry();
|
500
|
+
|
501
|
+
NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
|
502
|
+
if (instanceNftId.eqz()) {
|
503
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
504
|
+
}
|
505
|
+
|
506
|
+
ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
|
507
|
+
if (objectType != INSTANCE()) {
|
508
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
509
|
+
}
|
510
|
+
|
511
|
+
if (expectedRelease.gtz()) {
|
512
|
+
VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
|
513
|
+
if (instanceRelease != expectedRelease) {
|
514
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
|
515
|
+
}
|
516
|
+
}
|
517
|
+
}
|
518
|
+
|
519
|
+
|
520
|
+
// From IService
|
521
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
522
|
+
return INSTANCE();
|
529
523
|
}
|
530
524
|
}
|