@etherisc/gif-next 0.0.2-e0ff180-766 → 0.0.2-e14821a-976
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 +153 -22
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1088 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +803 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1664 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +1289 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1416 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +803 -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 +1372 -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 +659 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1247 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +818 -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} +311 -328
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +1835 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +4 -0
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +943 -0
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/Component.sol/Component.json → distribution/IDistributionComponent.sol/IDistributionComponent.json} +276 -280
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service → distribution}/IDistributionService.sol/IDistributionService.json +534 -340
- 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 +1487 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +818 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2056 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +818 -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 +1442 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +818 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1174 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1650 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +818 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2588 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +818 -0
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/{base/IKeyValueStore.sol/IKeyValueStore.json → BaseStore.sol/BaseStore.json} +87 -184
- 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/IBaseStore.sol/IBaseStore.dbg.json +4 -0
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +304 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +573 -1775
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +530 -71
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +639 -2578
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +2284 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +850 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1866 -636
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +571 -386
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +216 -172
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +3039 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +4 -0
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +3427 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -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 +960 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +823 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +762 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IBundleService.sol/IBundleService.json → oracle/IOracleService.sol/IOracleService.json} +328 -225
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +876 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +1055 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +823 -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} +357 -488
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +818 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +1464 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +879 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +4 -0
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +1033 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +4 -0
- package/artifacts/contracts/{components/IProductComponent.sol/IProductComponent.json → pool/IPoolComponent.sol/IPoolComponent.json} +349 -284
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +4 -0
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +1397 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +4 -0
- package/artifacts/contracts/{components/IPoolComponent.sol/IPoolComponent.json → pool/Pool.sol/Pool.json} +382 -418
- 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 +1807 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +879 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +1062 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +803 -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} +492 -497
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +818 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +1546 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +891 -0
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPoolService.sol/IPoolService.json → product/IApplicationService.sol/IApplicationService.json} +334 -374
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +4 -0
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +1104 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +1036 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IApplicationService.sol/IApplicationService.json → product/IPricingService.sol/IPricingService.json} +185 -155
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +4 -0
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +1006 -0
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{instance/service/IPolicyService.sol/IPolicyService.json → product/IRiskService.sol/IRiskService.json} +223 -164
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +1417 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +783 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +867 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +4 -0
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +958 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +827 -0
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +4 -0
- package/artifacts/contracts/product/Product.sol/Product.json +1120 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +886 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +787 -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 +499 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +315 -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 +987 -131
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +2160 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +1087 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +415 -262
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +227 -111
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +2152 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1389 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +696 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +360 -137
- 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} +289 -188
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +1577 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +4 -0
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +875 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +632 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +4 -0
- package/artifacts/contracts/{components → shared}/IComponent.sol/IComponent.json +153 -138
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +4 -0
- package/artifacts/contracts/{components/Distribution.sol/Distribution.json → shared/IComponentService.sol/IComponentService.json} +584 -738
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +697 -0
- package/artifacts/contracts/shared/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 +38 -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 +163 -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 +98 -5
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +66 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +798 -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 +57 -67
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +36 -73
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +160 -102
- 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 +110 -111
- 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/staking/IStaking.sol/IStaking.json +2747 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +1147 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.json +50 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +4 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.json +3188 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +470 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +860 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +704 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +1357 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +779 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +3097 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +309 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +679 -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 +251 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +193 -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 +289 -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 +180 -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 +11 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +669 -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 +11 -1
- package/contracts/accounting/AccountingService.sol +274 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +47 -0
- package/contracts/authorization/AccessAdmin.sol +780 -0
- package/contracts/authorization/AccessAdminLib.sol +396 -0
- package/contracts/authorization/AccessManagerCloneable.sol +158 -0
- package/contracts/authorization/Authorization.sol +169 -0
- package/contracts/authorization/IAccess.sol +67 -0
- package/contracts/authorization/IAccessAdmin.sol +144 -0
- package/contracts/authorization/IAuthorization.sol +26 -0
- package/contracts/authorization/IServiceAuthorization.sol +78 -0
- package/contracts/authorization/ServiceAuthorization.sol +320 -0
- package/contracts/distribution/BasicDistribution.sol +140 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +67 -0
- package/contracts/distribution/Distribution.sol +245 -0
- package/contracts/distribution/DistributionService.sol +465 -0
- package/contracts/distribution/DistributionServiceManager.sol +39 -0
- package/contracts/distribution/IDistributionComponent.sol +45 -0
- package/contracts/distribution/IDistributionService.sol +115 -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 +437 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BaseStore.sol +93 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IBaseStore.sol +37 -0
- package/contracts/instance/IInstance.sol +131 -73
- package/contracts/instance/IInstanceService.sol +86 -39
- package/contracts/instance/Instance.sol +248 -224
- package/contracts/instance/InstanceAdmin.sol +379 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +275 -0
- package/contracts/instance/InstanceReader.sol +513 -192
- package/contracts/instance/InstanceService.sol +432 -394
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +323 -0
- package/contracts/instance/ProductStore.sol +290 -0
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/TargetNames.sol +10 -0
- package/contracts/instance/base/BalanceStore.sol +121 -0
- package/contracts/instance/base/Cloneable.sol +28 -0
- package/contracts/instance/base/ObjectCounter.sol +20 -0
- package/contracts/instance/base/ObjectLifecycle.sol +109 -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 +43 -24
- 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 +44 -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 +152 -0
- package/contracts/oracle/OracleService.sol +310 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +161 -0
- package/contracts/pool/BasicPoolAuthorization.sol +81 -0
- package/contracts/pool/BundleService.sol +401 -0
- package/contracts/pool/BundleServiceManager.sol +39 -0
- package/contracts/pool/IBundleService.sol +116 -0
- package/contracts/pool/IPoolComponent.sol +62 -0
- package/contracts/pool/IPoolService.sol +167 -0
- package/contracts/pool/Pool.sol +331 -0
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +635 -0
- package/contracts/pool/PoolServiceManager.sol +39 -0
- package/contracts/product/ApplicationService.sol +343 -0
- package/contracts/{instance/service → product}/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +48 -0
- package/contracts/product/BasicProductAuthorization.sol +63 -0
- package/contracts/product/ClaimService.sol +642 -0
- package/contracts/{instance/service → product}/ClaimServiceManager.sol +12 -9
- package/contracts/{instance/service → product}/IApplicationService.sol +41 -35
- package/contracts/product/IClaimService.sol +136 -0
- package/contracts/product/IPolicyService.sol +102 -0
- package/contracts/product/IPricingService.sol +40 -0
- package/contracts/product/IProductComponent.sol +62 -0
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +680 -0
- package/contracts/product/PolicyServiceLib.sol +139 -0
- package/contracts/product/PolicyServiceManager.sol +39 -0
- package/contracts/product/PricingService.sol +318 -0
- package/contracts/product/PricingServiceManager.sol +39 -0
- package/contracts/product/Product.sol +491 -0
- package/contracts/product/RiskService.sol +189 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +79 -40
- package/contracts/registry/IRegistry.sol +104 -33
- 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 +469 -200
- package/contracts/registry/RegistryAdmin.sol +191 -0
- package/contracts/registry/RegistryAuthorization.sol +336 -0
- package/contracts/registry/RegistryService.sol +90 -131
- package/contracts/registry/RegistryServiceManager.sol +23 -32
- package/contracts/registry/ReleaseAdmin.sol +195 -0
- package/contracts/registry/ReleaseLifecycle.sol +32 -0
- package/contracts/registry/ReleaseRegistry.sol +525 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +342 -0
- package/contracts/registry/TokenRegistry.sol +265 -64
- package/contracts/shared/Component.sol +210 -0
- package/contracts/shared/ComponentService.sol +705 -0
- package/contracts/shared/ComponentServiceManager.sol +38 -0
- package/contracts/shared/ContractLib.sol +312 -0
- package/contracts/shared/IComponent.sol +58 -0
- package/contracts/shared/IComponentService.sol +111 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +30 -0
- package/contracts/{instance/base → shared}/ILifecycle.sol +5 -4
- package/contracts/shared/INftOwnable.sol +6 -2
- package/contracts/shared/IPolicyHolder.sol +23 -14
- package/contracts/shared/IRegisterable.sol +22 -1
- package/contracts/shared/IRegistryLinked.sol +0 -1
- package/contracts/shared/IService.sol +12 -5
- package/contracts/shared/InitializableERC165.sol +49 -0
- package/contracts/shared/InstanceLinkedComponent.sol +192 -0
- package/contracts/shared/Lifecycle.sol +88 -0
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +39 -30
- package/contracts/shared/PolicyHolder.sol +23 -41
- package/contracts/shared/Registerable.sol +54 -22
- package/contracts/shared/RegistryLinked.sol +11 -21
- package/contracts/shared/Service.sol +36 -41
- package/contracts/shared/TokenHandler.sol +322 -13
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +367 -0
- package/contracts/staking/IStakingService.sol +127 -0
- package/contracts/staking/ITargetLimitHandler.sol +17 -0
- package/contracts/staking/Staking.sol +797 -0
- package/contracts/staking/StakingLib.sol +195 -0
- package/contracts/staking/StakingManager.sol +53 -0
- package/contracts/staking/StakingReader.sol +171 -0
- package/contracts/staking/StakingService.sol +320 -0
- package/contracts/staking/StakingServiceManager.sol +46 -0
- package/contracts/staking/StakingStore.sol +1368 -0
- package/contracts/staking/TargetHandler.sol +132 -0
- package/contracts/staking/TargetManagerLib.sol +234 -0
- package/contracts/{types → type}/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +154 -0
- package/contracts/{types → type}/Blocknumber.sol +36 -13
- package/contracts/type/ChainId.sol +101 -0
- 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 +120 -0
- package/contracts/type/Selector.sol +107 -0
- package/contracts/{types → type}/StateId.sol +47 -4
- package/contracts/type/String.sol +65 -0
- package/contracts/{types → type}/Timestamp.sol +23 -7
- package/contracts/type/UFixed.sol +263 -0
- package/contracts/{types → type}/Version.sol +58 -7
- package/contracts/{shared → upgradeability}/IVersionable.sol +4 -1
- package/contracts/{shared → upgradeability}/ProxyManager.sol +118 -41
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +28 -0
- package/contracts/{shared → upgradeability}/Versionable.sol +9 -6
- 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 -1330
- 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/IClaimService.sol/IClaimService.json +0 -475
- 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/IProductService.sol/IProductService.json +0 -450
- 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 -527
- package/contracts/instance/ObjectManager.sol +0 -82
- package/contracts/instance/base/ComponentService.sol +0 -121
- package/contracts/instance/base/IKeyValueStore.sol +0 -49
- 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 -350
- 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 -435
- package/contracts/instance/service/DistributionServiceManager.sol +0 -51
- package/contracts/instance/service/IBundleService.sol +0 -93
- 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 -210
- 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/shared/ERC165.sol +0 -27
- package/contracts/shared/UpgradableProxyWithAdmin.sol +0 -16
- 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,494 +2,532 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {Clones} from "@openzeppelin/contracts/proxy/Clones.sol";
|
5
|
-
import {ShortString, ShortStrings} from "@openzeppelin/contracts/utils/ShortStrings.sol";
|
6
5
|
|
7
|
-
import {
|
6
|
+
import {IAccess} from "../authorization/IAccess.sol";
|
7
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
8
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
8
9
|
import {IInstance} from "./IInstance.sol";
|
9
|
-
import {InstanceAccessManager} from "./InstanceAccessManager.sol";
|
10
10
|
import {IInstanceService} from "./IInstanceService.sol";
|
11
|
-
import {InstanceReader} from "./InstanceReader.sol";
|
12
|
-
import {BundleManager} from "./BundleManager.sol";
|
13
|
-
import {AccessManagerUpgradeableInitializeable} from "./AccessManagerUpgradeableInitializeable.sol";
|
14
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
15
12
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
16
|
-
import {
|
17
|
-
|
18
|
-
import {
|
19
|
-
import {
|
20
|
-
import {
|
21
|
-
import {
|
22
|
-
import {
|
23
|
-
import {
|
24
|
-
import {
|
25
|
-
import {
|
13
|
+
import {IStakingService} from "../staking/IStakingService.sol";
|
14
|
+
|
15
|
+
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
16
|
+
import {Amount} from "../type/Amount.sol";
|
17
|
+
import {BundleSet} from "./BundleSet.sol";
|
18
|
+
import {Instance} from "./Instance.sol";
|
19
|
+
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
20
|
+
import {InstanceReader} from "./InstanceReader.sol";
|
21
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
22
|
+
import {NftId} from "../type/NftId.sol";
|
23
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
24
|
+
import {ProductStore} from "./ProductStore.sol";
|
25
|
+
import {RiskSet} from "./RiskSet.sol";
|
26
|
+
import {RoleId} from "../type/RoleId.sol";
|
27
|
+
import {Seconds} from "../type/Seconds.sol";
|
28
|
+
import {Service} from "../shared/Service.sol";
|
29
|
+
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
|
+
import {UFixed} from "../type/UFixed.sol";
|
31
|
+
import {VersionPart} from "../type/Version.sol";
|
32
|
+
|
26
33
|
|
27
34
|
contract InstanceService is
|
28
35
|
Service,
|
29
36
|
IInstanceService
|
30
37
|
{
|
31
|
-
address internal _masterOzAccessManager;
|
32
|
-
address internal _masterInstanceAccessManager;
|
33
|
-
address internal _masterInstance;
|
34
|
-
address internal _masterInstanceReader;
|
35
|
-
address internal _masterInstanceBundleManager;
|
36
38
|
|
37
|
-
// TODO update to real hash when instance is stable
|
38
39
|
bytes32 public constant INSTANCE_CREATION_CODE_HASH = bytes32(0);
|
39
40
|
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
41
|
+
// keccak256(abi.encode(uint256(keccak256("etherisc.gif.InstanceService@3.0.0")) - 1)) & ~bytes32(uint256(0xff));
|
42
|
+
bytes32 public constant INSTANCE_SERVICE_STORAGE_LOCATION_V3_0 = 0xd3b64f4b2eed579b20c89ed2b45eb50bb8adfc41b6a240bf0795686c0bce0500;
|
43
|
+
|
44
|
+
struct InstanceServiceStorage {
|
45
|
+
IRegistryService _registryService;
|
46
|
+
IStakingService _stakingService;
|
47
|
+
IComponentService _componentService;
|
48
|
+
|
49
|
+
address _masterAccessManager;
|
50
|
+
address _masterInstanceAdmin;
|
51
|
+
address _masterInstance;
|
52
|
+
address _masterInstanceReader;
|
53
|
+
address _masterInstanceBundleSet;
|
54
|
+
address _masterInstanceRiskSet;
|
55
|
+
address _masterInstanceStore;
|
56
|
+
address _masterProductStore;
|
45
57
|
}
|
46
|
-
|
47
|
-
|
48
|
-
modifier
|
49
|
-
|
50
|
-
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
51
|
-
}
|
52
|
-
_;
|
53
|
-
}
|
54
|
-
// TODO check release version?
|
55
|
-
modifier onlyComponent() {
|
56
|
-
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
57
|
-
revert ErrorInstanceServiceRequestUnauhorized(msg.sender);
|
58
|
-
}
|
58
|
+
|
59
|
+
|
60
|
+
modifier onlyInstance() {
|
61
|
+
_checkInstance(msg.sender, getRelease());
|
59
62
|
_;
|
60
63
|
}
|
61
64
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
)
|
65
|
+
|
66
|
+
/// @inheritdoc IInstanceService
|
67
|
+
function createRole(
|
68
|
+
string memory roleName,
|
69
|
+
RoleId adminRoleId,
|
70
|
+
uint32 maxMemberCount
|
71
|
+
)
|
72
|
+
external
|
73
|
+
restricted()
|
74
|
+
onlyInstance()
|
75
|
+
returns (RoleId roleId)
|
72
76
|
{
|
73
|
-
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
|
78
|
-
|
77
|
+
IInstance instance = IInstance(msg.sender);
|
78
|
+
roleId = instance.getInstanceAdmin().createRole(
|
79
|
+
roleName,
|
80
|
+
adminRoleId,
|
81
|
+
maxMemberCount);
|
82
|
+
}
|
79
83
|
|
80
|
-
clonedOzAccessManager = AccessManagerUpgradeableInitializeable(
|
81
|
-
Clones.clone(_masterOzAccessManager));
|
82
84
|
|
83
|
-
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
85
|
+
/// @inheritdoc IInstanceService
|
86
|
+
function setRoleActive(RoleId roleId, bool active)
|
87
|
+
external
|
88
|
+
restricted()
|
89
|
+
onlyInstance()
|
90
|
+
{
|
91
|
+
IInstance instance = IInstance(msg.sender);
|
92
|
+
instance.getInstanceAdmin().setRoleActive(roleId, active);
|
93
|
+
}
|
88
94
|
|
89
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
90
|
-
clonedInstance.initialize(
|
91
|
-
address(clonedOzAccessManager),
|
92
|
-
registryAddress,
|
93
|
-
instanceOwner);
|
94
|
-
|
95
|
-
clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
96
|
-
clonedInstanceReader.initialize(address(clonedInstance));
|
97
|
-
clonedInstance.setInstanceReader(clonedInstanceReader);
|
98
95
|
|
99
|
-
|
100
|
-
|
101
|
-
|
96
|
+
/// @inheritdoc IInstanceService
|
97
|
+
function grantRole(RoleId roleId, address account)
|
98
|
+
external
|
99
|
+
restricted()
|
100
|
+
onlyInstance()
|
101
|
+
{
|
102
|
+
IInstance instance = IInstance(msg.sender);
|
103
|
+
instance.getInstanceAdmin().grantRole(roleId, account);
|
104
|
+
}
|
102
105
|
|
103
|
-
clonedInstanceAccessManager = InstanceAccessManager(Clones.clone(_masterInstanceAccessManager));
|
104
|
-
clonedOzAccessManager.grantRole(ADMIN_ROLE().toInt(), address(clonedInstanceAccessManager), 0);
|
105
|
-
clonedInstanceAccessManager.initialize(address(clonedInstance));
|
106
|
-
clonedInstance.setInstanceAccessManager(clonedInstanceAccessManager);
|
107
106
|
|
108
|
-
|
107
|
+
/// @inheritdoc IInstanceService
|
108
|
+
function revokeRole(RoleId roleId, address account)
|
109
|
+
external
|
110
|
+
restricted()
|
111
|
+
onlyInstance()
|
112
|
+
{
|
113
|
+
IInstance instance = IInstance(msg.sender);
|
114
|
+
instance.getInstanceAdmin().revokeRole(roleId, account);
|
115
|
+
}
|
109
116
|
|
110
|
-
_grantInitialAuthorizations(clonedInstanceAccessManager, clonedInstance, clonedBundleManager, instanceOwner);
|
111
117
|
|
112
|
-
|
118
|
+
/// @inheritdoc IInstanceService
|
119
|
+
function createTarget(address target, string memory name)
|
120
|
+
external
|
121
|
+
restricted()
|
122
|
+
onlyInstance()
|
123
|
+
returns (RoleId contractRoleId)
|
124
|
+
{
|
125
|
+
IInstance instance = IInstance(msg.sender);
|
126
|
+
return instance.getInstanceAdmin().createTarget(target, name);
|
127
|
+
}
|
113
128
|
|
114
|
-
IRegistry.ObjectInfo memory info = registryService.registerInstance(clonedInstance, instanceOwner);
|
115
|
-
clonedInstanceNftId = info.nftId;
|
116
|
-
// clonedInstance.linkToRegisteredNftId();
|
117
129
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
130
|
+
/// @inheritdoc IInstanceService
|
131
|
+
function authorizeFunctions(
|
132
|
+
address target,
|
133
|
+
RoleId roleId,
|
134
|
+
IAccess.FunctionInfo[] memory functions
|
135
|
+
)
|
136
|
+
external
|
137
|
+
restricted()
|
138
|
+
onlyInstance()
|
139
|
+
{
|
140
|
+
IInstance instance = IInstance(msg.sender);
|
141
|
+
return instance.getInstanceAdmin().authorizeFunctions(target, roleId, functions);
|
125
142
|
}
|
126
143
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
144
|
+
|
145
|
+
/// @inheritdoc IInstanceService
|
146
|
+
function unauthorizeFunctions(
|
147
|
+
address target,
|
148
|
+
IAccess.FunctionInfo[] memory functions
|
149
|
+
)
|
150
|
+
external
|
151
|
+
restricted()
|
152
|
+
onlyInstance()
|
133
153
|
{
|
134
|
-
|
135
|
-
|
136
|
-
_grantDistributionServiceAuthorizations(clonedAccessManager, clonedInstance);
|
137
|
-
_grantPoolServiceAuthorizations(clonedAccessManager, clonedInstance);
|
138
|
-
_grantProductServiceAuthorizations(clonedAccessManager, clonedInstance);
|
139
|
-
_grantApplicationServiceAuthorizations(clonedAccessManager, clonedInstance);
|
140
|
-
_grantPolicyServiceAuthorizations(clonedAccessManager, clonedInstance);
|
141
|
-
_grantClaimServiceAuthorizations(clonedAccessManager, clonedInstance);
|
142
|
-
_grantBundleServiceAuthorizations(clonedAccessManager, clonedInstance, clonedBundleManager);
|
143
|
-
_grantInstanceServiceAuthorizations(clonedAccessManager, clonedInstance);
|
144
|
-
_grantInstanceOwnerAuthorizations(clonedAccessManager, instanceOwner);
|
154
|
+
IInstance instance = IInstance(msg.sender);
|
155
|
+
return instance.getInstanceAdmin().unauthorizeFunctions(target, functions);
|
145
156
|
}
|
146
157
|
|
147
|
-
function _createCoreAndGifRoles(InstanceAccessManager clonedAccessManager) internal {
|
148
|
-
// default roles controlled by ADMIN_ROLE -> core roles
|
149
|
-
// all set/granted only once during cloning (the only exception is INSTANCE_OWNER_ROLE, hooked to instance nft)
|
150
|
-
clonedAccessManager.createCoreRole(INSTANCE_SERVICE_ROLE(), "InstanceServiceRole");
|
151
|
-
clonedAccessManager.createCoreRole(DISTRIBUTION_SERVICE_ROLE(), "DistributionServiceRole");
|
152
|
-
clonedAccessManager.createCoreRole(POOL_SERVICE_ROLE(), "PoolServiceRole");
|
153
|
-
clonedAccessManager.createCoreRole(APPLICATION_SERVICE_ROLE(), "ApplicationServiceRole");
|
154
|
-
clonedAccessManager.createCoreRole(PRODUCT_SERVICE_ROLE(), "ProductServiceRole");
|
155
|
-
clonedAccessManager.createCoreRole(CLAIM_SERVICE_ROLE(), "ClaimServiceRole");
|
156
|
-
clonedAccessManager.createCoreRole(POLICY_SERVICE_ROLE(), "PolicyServiceRole");
|
157
|
-
clonedAccessManager.createCoreRole(BUNDLE_SERVICE_ROLE(), "BundleServiceRole");
|
158
|
-
// default roles controlled by INSTANCE_OWNER_ROLE -> gif roles
|
159
|
-
clonedAccessManager.createGifRole(DISTRIBUTION_OWNER_ROLE(), "DistributionOwnerRole", INSTANCE_OWNER_ROLE());
|
160
|
-
clonedAccessManager.createGifRole(POOL_OWNER_ROLE(), "PoolOwnerRole", INSTANCE_OWNER_ROLE());
|
161
|
-
clonedAccessManager.createGifRole(PRODUCT_OWNER_ROLE(), "ProductOwnerRole", INSTANCE_OWNER_ROLE());
|
162
|
-
}
|
163
158
|
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
clonedAccessManager.grantRole(DISTRIBUTION_SERVICE_ROLE(), distributionServiceAddress);
|
174
|
-
bytes4[] memory instanceDistributionServiceSelectors = new bytes4[](11);
|
175
|
-
instanceDistributionServiceSelectors[0] = clonedInstance.createDistributionSetup.selector;
|
176
|
-
instanceDistributionServiceSelectors[1] = clonedInstance.updateDistributionSetup.selector;
|
177
|
-
instanceDistributionServiceSelectors[2] = clonedInstance.createDistributorType.selector;
|
178
|
-
instanceDistributionServiceSelectors[3] = clonedInstance.updateDistributorType.selector;
|
179
|
-
instanceDistributionServiceSelectors[4] = clonedInstance.updateDistributorTypeState.selector;
|
180
|
-
instanceDistributionServiceSelectors[5] = clonedInstance.createDistributor.selector;
|
181
|
-
instanceDistributionServiceSelectors[6] = clonedInstance.updateDistributor.selector;
|
182
|
-
instanceDistributionServiceSelectors[7] = clonedInstance.updateDistributorState.selector;
|
183
|
-
instanceDistributionServiceSelectors[8] = clonedInstance.createReferral.selector;
|
184
|
-
instanceDistributionServiceSelectors[9] = clonedInstance.updateReferral.selector;
|
185
|
-
instanceDistributionServiceSelectors[10] = clonedInstance.updateReferralState.selector;
|
186
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
187
|
-
"Instance",
|
188
|
-
instanceDistributionServiceSelectors,
|
189
|
-
DISTRIBUTION_SERVICE_ROLE());
|
159
|
+
/// @inheritdoc IInstanceService
|
160
|
+
function setTargetLocked(address target, bool locked)
|
161
|
+
external
|
162
|
+
virtual
|
163
|
+
restricted()
|
164
|
+
onlyInstance()
|
165
|
+
{
|
166
|
+
address instanceAddress = msg.sender;
|
167
|
+
IInstance(instanceAddress).getInstanceAdmin().setTargetLocked(target, locked);
|
190
168
|
}
|
191
169
|
|
192
|
-
function _grantPoolServiceAuthorizations(InstanceAccessManager clonedAccessManager, Instance clonedInstance) internal {
|
193
|
-
// configure authorization for pool service on instance
|
194
|
-
address poolServiceAddress = getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart());
|
195
|
-
clonedAccessManager.grantRole(POOL_SERVICE_ROLE(), address(poolServiceAddress));
|
196
|
-
bytes4[] memory instancePoolServiceSelectors = new bytes4[](4);
|
197
|
-
instancePoolServiceSelectors[0] = clonedInstance.createPoolSetup.selector;
|
198
|
-
instancePoolServiceSelectors[1] = clonedInstance.updatePoolSetup.selector;
|
199
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
200
|
-
"Instance",
|
201
|
-
instancePoolServiceSelectors,
|
202
|
-
POOL_SERVICE_ROLE());
|
203
|
-
}
|
204
170
|
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
214
|
-
|
215
|
-
|
216
|
-
|
217
|
-
|
218
|
-
PRODUCT_SERVICE_ROLE());
|
171
|
+
/// @inheritdoc IInstanceService
|
172
|
+
function setInstanceLocked(bool locked)
|
173
|
+
external
|
174
|
+
virtual
|
175
|
+
restricted()
|
176
|
+
onlyInstance()
|
177
|
+
{
|
178
|
+
address instanceAddress = msg.sender;
|
179
|
+
IInstance(instanceAddress).getInstanceAdmin().setInstanceLocked(locked);
|
180
|
+
|
181
|
+
emit LogInstanceServiceInstanceLocked(
|
182
|
+
getRegistry().getNftIdForAddress(instanceAddress),
|
183
|
+
locked);
|
219
184
|
}
|
220
185
|
|
221
|
-
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
|
228
|
-
|
229
|
-
|
230
|
-
|
231
|
-
|
232
|
-
|
186
|
+
|
187
|
+
/// @inheritdoc IInstanceService
|
188
|
+
function createInstance(bool allowAnyToken)
|
189
|
+
external
|
190
|
+
virtual
|
191
|
+
restricted()
|
192
|
+
returns (
|
193
|
+
IInstance instance,
|
194
|
+
NftId instanceNftId
|
195
|
+
)
|
196
|
+
{
|
197
|
+
// tx sender will become instance owner
|
198
|
+
address instanceOwner = msg.sender;
|
199
|
+
|
200
|
+
// create instance admin and instance
|
201
|
+
InstanceAdmin instanceAdmin = _cloneNewInstanceAdmin();
|
202
|
+
instance = _createInstance(instanceAdmin, instanceOwner, allowAnyToken);
|
203
|
+
|
204
|
+
// register cloned instance with registry
|
205
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
206
|
+
instanceNftId = $._registryService.registerInstance(
|
207
|
+
instance, instanceOwner).nftId;
|
208
|
+
|
209
|
+
// MUST be set after instance is set up and registered
|
210
|
+
IAuthorization instanceAuthorization = InstanceAdmin($._masterInstanceAdmin).getInstanceAuthorization();
|
211
|
+
instanceAdmin.completeSetup(
|
212
|
+
address(getRegistry()),
|
213
|
+
address(instanceAuthorization),
|
214
|
+
getRelease(),
|
215
|
+
address(instance));
|
216
|
+
|
217
|
+
// hard checks for newly cloned instance
|
218
|
+
assert(address(instance.getRegistry()) == address(getRegistry()));
|
219
|
+
assert(instance.getRelease() == getRelease());
|
220
|
+
|
221
|
+
// register cloned instance as staking target
|
222
|
+
$._stakingService.createInstanceTarget(
|
223
|
+
instanceNftId,
|
224
|
+
TargetManagerLib.getDefaultLockingPeriod(),
|
225
|
+
TargetManagerLib.getDefaultRewardRate());
|
226
|
+
|
227
|
+
emit LogInstanceServiceInstanceCreated(
|
228
|
+
instanceNftId,
|
229
|
+
address(instance));
|
233
230
|
}
|
234
231
|
|
235
|
-
|
236
|
-
|
237
|
-
|
238
|
-
|
239
|
-
|
240
|
-
|
241
|
-
|
242
|
-
|
243
|
-
|
244
|
-
|
245
|
-
|
232
|
+
|
233
|
+
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
234
|
+
external
|
235
|
+
virtual
|
236
|
+
restricted()
|
237
|
+
onlyInstance()
|
238
|
+
{
|
239
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
240
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
241
|
+
$._stakingService.setInstanceLockingPeriod(
|
242
|
+
instanceNftId,
|
243
|
+
stakeLockingPeriod);
|
246
244
|
}
|
247
245
|
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
246
|
+
|
247
|
+
function setStakingRewardRate(UFixed rewardRate)
|
248
|
+
external
|
249
|
+
virtual
|
250
|
+
restricted()
|
251
|
+
onlyInstance()
|
252
|
+
{
|
253
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
254
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
255
|
+
$._stakingService.setInstanceRewardRate(
|
256
|
+
instanceNftId,
|
257
|
+
rewardRate);
|
260
258
|
}
|
261
259
|
|
262
|
-
function
|
263
|
-
|
264
|
-
|
265
|
-
|
266
|
-
|
267
|
-
|
268
|
-
|
269
|
-
|
270
|
-
|
271
|
-
|
272
|
-
|
273
|
-
|
274
|
-
|
275
|
-
|
276
|
-
|
277
|
-
|
278
|
-
|
279
|
-
|
280
|
-
|
281
|
-
|
282
|
-
|
283
|
-
|
284
|
-
|
285
|
-
|
260
|
+
function setStakingMaxAmount(Amount maxStakedAmount)
|
261
|
+
external
|
262
|
+
virtual
|
263
|
+
restricted()
|
264
|
+
onlyInstance()
|
265
|
+
{
|
266
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
267
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
268
|
+
$._stakingService.setInstanceMaxStakedAmount(
|
269
|
+
instanceNftId,
|
270
|
+
maxStakedAmount);
|
271
|
+
}
|
272
|
+
|
273
|
+
|
274
|
+
function refillInstanceRewardReserves(address rewardProvider, Amount dipAmount)
|
275
|
+
external
|
276
|
+
virtual
|
277
|
+
restricted()
|
278
|
+
onlyInstance()
|
279
|
+
returns (Amount newBalance)
|
280
|
+
{
|
281
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
282
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
283
|
+
newBalance = $._stakingService.refillInstanceRewardReserves(
|
284
|
+
instanceNftId,
|
285
|
+
rewardProvider,
|
286
|
+
dipAmount);
|
286
287
|
}
|
287
288
|
|
288
|
-
|
289
|
-
|
290
|
-
|
291
|
-
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
299
|
-
|
300
|
-
|
301
|
-
accessManagerInstanceServiceSelectors[0] = clonedAccessManager.createGifTarget.selector;
|
302
|
-
accessManagerInstanceServiceSelectors[1] = clonedAccessManager.setTargetLocked.selector;
|
303
|
-
accessManagerInstanceServiceSelectors[2] = clonedAccessManager.setCoreTargetFunctionRole.selector;
|
304
|
-
clonedAccessManager.setCoreTargetFunctionRole(
|
305
|
-
"InstanceAccessManager",
|
306
|
-
accessManagerInstanceServiceSelectors,
|
307
|
-
INSTANCE_SERVICE_ROLE());
|
289
|
+
|
290
|
+
function withdrawInstanceRewardReserves(Amount dipAmount)
|
291
|
+
external
|
292
|
+
virtual
|
293
|
+
restricted()
|
294
|
+
onlyInstance()
|
295
|
+
returns (Amount newBalance)
|
296
|
+
{
|
297
|
+
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
298
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
299
|
+
newBalance = $._stakingService.withdrawInstanceRewardReserves(
|
300
|
+
instanceNftId,
|
301
|
+
dipAmount);
|
308
302
|
}
|
309
303
|
|
310
|
-
|
311
|
-
|
312
|
-
|
313
|
-
|
314
|
-
|
315
|
-
|
316
|
-
|
317
|
-
|
318
|
-
|
319
|
-
|
320
|
-
|
304
|
+
|
305
|
+
function upgradeInstanceReader()
|
306
|
+
external
|
307
|
+
virtual
|
308
|
+
restricted()
|
309
|
+
onlyInstance()
|
310
|
+
{
|
311
|
+
address instanceAddress = msg.sender;
|
312
|
+
IInstance instance = IInstance(msg.sender);
|
313
|
+
|
314
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
315
|
+
InstanceReader upgradedInstanceReaderClone = InstanceReader(
|
316
|
+
Clones.clone(address($._masterInstanceReader)));
|
317
|
+
|
318
|
+
upgradedInstanceReaderClone.initializeWithInstance(instanceAddress);
|
319
|
+
instance.setInstanceReader(upgradedInstanceReaderClone);
|
320
|
+
|
321
|
+
emit LogInstanceServiceInstanceReaderUpgraded(
|
322
|
+
getRegistry().getNftIdForAddress(instanceAddress),
|
323
|
+
address(upgradedInstanceReaderClone));
|
321
324
|
}
|
322
325
|
|
323
326
|
|
324
|
-
function setAndRegisterMasterInstance(address instanceAddress)
|
325
|
-
|
326
|
-
|
327
|
-
|
327
|
+
function setAndRegisterMasterInstance(address instanceAddress)
|
328
|
+
external
|
329
|
+
virtual
|
330
|
+
onlyOwner()
|
331
|
+
returns(NftId masterInstanceNftId)
|
328
332
|
{
|
329
|
-
|
330
|
-
if(_masterOzAccessManager != address(0)) { revert ErrorInstanceServiceMasterOzAccessManagerAlreadySet(); }
|
331
|
-
if(_masterInstanceAccessManager != address(0)) { revert ErrorInstanceServiceMasterInstanceAccessManagerAlreadySet(); }
|
332
|
-
if(_masterInstanceBundleManager != address(0)) { revert ErrorInstanceServiceMasterBundleManagerAlreadySet(); }
|
333
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
333
334
|
|
335
|
+
if($._masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
336
|
+
if($._masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
337
|
+
if($._masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
338
|
+
if($._masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
334
339
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
335
340
|
|
336
|
-
|
337
|
-
|
338
|
-
|
339
|
-
|
340
|
-
|
341
|
-
|
342
|
-
|
343
|
-
|
344
|
-
|
345
|
-
|
346
|
-
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
352
|
-
|
353
|
-
|
354
|
-
|
355
|
-
|
356
|
-
|
357
|
-
|
358
|
-
|
359
|
-
|
360
|
-
|
341
|
+
{
|
342
|
+
IInstance instance = IInstance(instanceAddress);
|
343
|
+
address accessManagerAddress = instance.authority();
|
344
|
+
InstanceAdmin instanceAdmin = instance.getInstanceAdmin();
|
345
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
346
|
+
BundleSet bundleSet = instance.getBundleSet();
|
347
|
+
RiskSet riskSet = instance.getRiskSet();
|
348
|
+
InstanceStore instanceStore = instance.getInstanceStore();
|
349
|
+
ProductStore productStore = instance.getProductStore();
|
350
|
+
|
351
|
+
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
352
|
+
if(address(instanceAdmin) == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
353
|
+
if(address(instanceReader) == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
354
|
+
if(address(bundleSet) == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
355
|
+
if(address(riskSet) == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
356
|
+
if(address(instanceStore) == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
357
|
+
if(address(productStore) == address(0)) { revert ErrorInstanceServiceProductStoreZero(); }
|
358
|
+
|
359
|
+
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
360
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
361
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
362
|
+
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
363
|
+
if(productStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceProductStoreAuthorityMismatch(); }
|
364
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
365
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
366
|
+
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
367
|
+
|
368
|
+
$._masterAccessManager = accessManagerAddress;
|
369
|
+
$._masterInstanceAdmin = address(instanceAdmin);
|
370
|
+
$._masterInstance = instanceAddress;
|
371
|
+
$._masterInstanceReader = address(instanceReader);
|
372
|
+
$._masterInstanceBundleSet = address(bundleSet);
|
373
|
+
$._masterInstanceRiskSet = address(riskSet);
|
374
|
+
$._masterInstanceStore = address(instanceStore);
|
375
|
+
$._masterProductStore = address(productStore);
|
376
|
+
}
|
361
377
|
|
362
|
-
|
363
|
-
|
364
|
-
|
365
|
-
|
366
|
-
|
367
|
-
// masterInstance.linkToRegisteredNftId();
|
378
|
+
{
|
379
|
+
IInstance masterInstance = IInstance($._masterInstance);
|
380
|
+
IRegistry.ObjectInfo memory info = $._registryService.registerInstance(masterInstance, getOwner());
|
381
|
+
masterInstanceNftId = info.nftId;
|
382
|
+
}
|
368
383
|
}
|
369
384
|
|
370
|
-
|
371
|
-
|
385
|
+
|
386
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
387
|
+
external
|
388
|
+
virtual
|
389
|
+
onlyOwner
|
390
|
+
{
|
391
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
392
|
+
|
393
|
+
if($._masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
372
394
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
373
|
-
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
395
|
+
if(instanceReaderAddress == $._masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
374
396
|
|
375
397
|
InstanceReader instanceReader = InstanceReader(instanceReaderAddress);
|
376
|
-
if(instanceReader.getInstance() != IInstance(_masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
|
398
|
+
if(instanceReader.getInstance() != IInstance($._masterInstance)) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch(); }
|
377
399
|
|
378
|
-
_masterInstanceReader = instanceReaderAddress;
|
400
|
+
$._masterInstanceReader = instanceReaderAddress;
|
401
|
+
|
402
|
+
emit LogInstanceServiceMasterInstanceReaderUpgraded(
|
403
|
+
getRegistry().getNftIdForAddress($._masterInstance),
|
404
|
+
instanceReaderAddress);
|
379
405
|
}
|
380
406
|
|
381
|
-
function
|
382
|
-
|
383
|
-
|
407
|
+
function getMasterInstanceReader() external virtual view returns (address) {
|
408
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
409
|
+
return $._masterInstanceReader;
|
410
|
+
}
|
411
|
+
|
412
|
+
//--- internal functions --------------------------------------------------------//
|
413
|
+
|
414
|
+
/// @dev create new cloned instance admin
|
415
|
+
/// function used to setup a new instance
|
416
|
+
function _cloneNewInstanceAdmin()
|
417
|
+
internal
|
418
|
+
virtual
|
419
|
+
returns (InstanceAdmin clonedAdmin)
|
384
420
|
{
|
385
|
-
|
386
|
-
|
387
|
-
|
421
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
422
|
+
|
423
|
+
// clone instance specific access manager
|
424
|
+
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
425
|
+
Clones.clone(
|
426
|
+
InstanceAdmin($._masterInstanceAdmin).authority()));
|
388
427
|
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
}
|
428
|
+
// set up the instance admin
|
429
|
+
clonedAdmin = InstanceAdmin(
|
430
|
+
Clones.clone($._masterInstanceAdmin));
|
393
431
|
|
394
|
-
|
395
|
-
|
432
|
+
clonedAdmin.initialize(
|
433
|
+
address(clonedAccessManager),
|
434
|
+
"InstanceAdmin");
|
396
435
|
}
|
397
436
|
|
398
|
-
function getMasterInstance() external view returns (address) {
|
399
|
-
return _masterInstance;
|
400
|
-
}
|
401
437
|
|
402
|
-
|
403
|
-
|
438
|
+
/// @dev create new cloned instance
|
439
|
+
/// function used to setup a new instance
|
440
|
+
function _createInstance(
|
441
|
+
InstanceAdmin instanceAdmin,
|
442
|
+
address instanceOwner,
|
443
|
+
bool allowAnyToken
|
444
|
+
)
|
445
|
+
internal
|
446
|
+
virtual
|
447
|
+
returns (IInstance)
|
448
|
+
{
|
449
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
450
|
+
// clone instance
|
451
|
+
Instance clonedInstance = Instance(Clones.clone($._masterInstance));
|
452
|
+
clonedInstance.initialize(
|
453
|
+
IInstance.InstanceContracts({
|
454
|
+
instanceAdmin: instanceAdmin,
|
455
|
+
instanceStore: InstanceStore(Clones.clone(address($._masterInstanceStore))),
|
456
|
+
productStore: ProductStore(Clones.clone(address($._masterProductStore))),
|
457
|
+
bundleSet: BundleSet(Clones.clone($._masterInstanceBundleSet)),
|
458
|
+
riskSet: RiskSet(Clones.clone($._masterInstanceRiskSet)),
|
459
|
+
instanceReader: InstanceReader(Clones.clone(address($._masterInstanceReader)))
|
460
|
+
}),
|
461
|
+
getRegistry(),
|
462
|
+
getRelease(),
|
463
|
+
instanceOwner,
|
464
|
+
allowAnyToken);
|
465
|
+
|
466
|
+
return clonedInstance;
|
404
467
|
}
|
405
468
|
|
406
|
-
function getMasterInstanceBundleManager() external view returns (address) {
|
407
|
-
return _masterInstanceBundleManager;
|
408
|
-
}
|
409
469
|
|
410
|
-
|
411
|
-
function getDomain() public pure override returns(ObjectType) {
|
412
|
-
return INSTANCE();
|
413
|
-
}
|
414
|
-
|
415
|
-
/// @dev top level initializer
|
470
|
+
/// @dev top level initializer (upgradable contract)
|
416
471
|
function _initialize(
|
417
472
|
address owner,
|
418
473
|
bytes memory data
|
419
474
|
)
|
420
475
|
internal
|
421
|
-
initializer
|
422
476
|
virtual override
|
423
|
-
|
424
|
-
address initialOwner;
|
425
|
-
address registryAddress;
|
426
|
-
(registryAddress, initialOwner) = abi.decode(data, (address, address));
|
427
|
-
// TODO while InstanceService is not deployed in InstanceServiceManager constructor
|
428
|
-
// owner is InstanceServiceManager deployer
|
429
|
-
initializeService(registryAddress, address(0), owner);
|
430
|
-
registerInterface(type(IInstanceService).interfaceId);
|
431
|
-
}
|
432
|
-
|
433
|
-
// all gif targets MUST be childs of instanceNftId
|
434
|
-
function createGifTarget(
|
435
|
-
NftId instanceNftId,
|
436
|
-
address targetAddress,
|
437
|
-
string memory targetName,
|
438
|
-
bytes4[][] memory selectors,
|
439
|
-
RoleId[] memory roles
|
440
|
-
)
|
441
|
-
external
|
442
|
-
onlyRegisteredService
|
477
|
+
initializer()
|
443
478
|
{
|
444
479
|
(
|
445
|
-
|
446
|
-
|
447
|
-
) =
|
448
|
-
|
449
|
-
InstanceAccessManager accessManager = instance.getInstanceAccessManager();
|
450
|
-
accessManager.createGifTarget(targetAddress, targetName);
|
451
|
-
// set proposed target config
|
452
|
-
// TODO restriction: for gif targets can set only once and only here?
|
453
|
-
// assume config is a mix of gif and custom roles and no further configuration by INSTANCE_OWNER_ROLE is ever needed?
|
454
|
-
for(uint roleIdx = 0; roleIdx < roles.length; roleIdx++)
|
455
|
-
{
|
456
|
-
accessManager.setCoreTargetFunctionRole(targetName, selectors[roleIdx], roles[roleIdx]);
|
457
|
-
}
|
458
|
-
}
|
480
|
+
address authority,
|
481
|
+
address registry
|
482
|
+
) = abi.decode(data, (address, address));
|
459
483
|
|
460
|
-
|
461
|
-
// TODO check that targetName associated with component...how???
|
462
|
-
function setComponentLocked(bool locked) onlyComponent external {
|
463
|
-
address componentAddress = msg.sender;
|
464
|
-
IRegistry registry = getRegistry();
|
465
|
-
NftId instanceNftId = registry.getObjectInfo(componentAddress).parentNftId;
|
484
|
+
__Service_init(authority, registry, owner);
|
466
485
|
|
467
|
-
|
468
|
-
|
469
|
-
|
486
|
+
InstanceServiceStorage storage $ = _getInstanceServiceStorage();
|
487
|
+
$._registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
488
|
+
$._stakingService = IStakingService(_getServiceAddress(STAKING()));
|
489
|
+
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
470
490
|
|
471
|
-
|
472
|
-
componentAddress,
|
473
|
-
locked);
|
491
|
+
_registerInterface(type(IInstanceService).interfaceId);
|
474
492
|
}
|
475
493
|
|
476
|
-
|
494
|
+
|
495
|
+
function _checkInstance(
|
496
|
+
address instanceAddress,
|
497
|
+
VersionPart expectedRelease
|
498
|
+
)
|
477
499
|
internal
|
500
|
+
virtual
|
478
501
|
view
|
479
|
-
returns (IInstance instance, NftId componentNftId)
|
480
502
|
{
|
481
503
|
IRegistry registry = getRegistry();
|
482
|
-
|
483
|
-
|
484
|
-
|
504
|
+
|
505
|
+
NftId instanceNftId = registry.getNftIdForAddress(instanceAddress);
|
506
|
+
if (instanceNftId.eqz()) {
|
507
|
+
revert ErrorInstanceServiceNotRegistered(instanceAddress);
|
485
508
|
}
|
486
509
|
|
487
|
-
|
488
|
-
if(
|
489
|
-
revert
|
510
|
+
ObjectType objectType = registry.getObjectInfo(instanceNftId).objectType;
|
511
|
+
if (objectType != INSTANCE()) {
|
512
|
+
revert ErrorInstanceServiceNotInstance(instanceAddress, objectType);
|
490
513
|
}
|
491
514
|
|
492
|
-
|
493
|
-
|
515
|
+
if (expectedRelease.gtz()) {
|
516
|
+
VersionPart instanceRelease = IInstance(instanceAddress).getRelease();
|
517
|
+
if (instanceRelease != expectedRelease) {
|
518
|
+
revert ErrorInstanceServiceInstanceVersionMismatch(instanceNftId, expectedRelease, instanceRelease);
|
519
|
+
}
|
520
|
+
}
|
521
|
+
}
|
522
|
+
|
523
|
+
function _getInstanceServiceStorage() private pure returns (InstanceServiceStorage storage $) {
|
524
|
+
assembly {
|
525
|
+
$.slot := INSTANCE_SERVICE_STORAGE_LOCATION_V3_0
|
526
|
+
}
|
527
|
+
}
|
528
|
+
|
529
|
+
// From IService
|
530
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
531
|
+
return INSTANCE();
|
494
532
|
}
|
495
533
|
}
|