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