@etherisc/gif-next 0.0.2-f13c010-035 → 0.0.2-f13fd28-503
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 +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +148 -62
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +149 -21
- 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 +82 -12
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +68 -13
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +106 -186
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +152 -33
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +57 -89
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +154 -108
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +75 -53
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +44 -58
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +50 -3
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +101 -164
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +258 -290
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +152 -33
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +137 -129
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +90 -126
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +225 -162
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +589 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +641 -310
- 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 +118 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +77 -20
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +163 -56
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +362 -99
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +140 -40
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +550 -224
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +104 -74
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +49 -27
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +410 -370
- 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 +2 -2
- 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 +74 -154
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +126 -35
- 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 +44 -58
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +27 -3
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +58 -90
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +112 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +69 -27
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +57 -104
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +152 -33
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +127 -331
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -87
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +56 -136
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +44 -97
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +164 -217
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +57 -128
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +456 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +302 -353
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +93 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +105 -63
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +45 -27
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +163 -175
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +152 -33
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +244 -179
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +74 -64
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +61 -10
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +142 -20
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +112 -56
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +27 -3
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +150 -144
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +27 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +211 -180
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +4 -0
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +293 -0
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +76 -50
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +99 -76
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +60 -38
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +163 -175
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +88 -73
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +54 -24
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +50 -2
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +31 -7
- 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/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +88 -40
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +262 -220
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +69 -46
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +42 -20
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1849 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +318 -52
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +6 -6
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +4 -4
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +57 -75
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +225 -439
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +74 -64
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +27 -16
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- 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 +44 -44
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +125 -282
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +44 -58
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +120 -1
- 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 +27 -3
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +57 -89
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -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 +2 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +118 -62
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +27 -16
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +289 -112
- 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 +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +70 -30
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +65 -83
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +98 -3
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +49 -33
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +145 -176
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +2 -2
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +62 -46
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +4 -4
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +151 -49
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +51 -25
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +129 -129
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +23 -23
- 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 +3 -3
- 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 +2 -2
- 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 +3 -3
- 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 +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- 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 +62 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- 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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +3 -3
- 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 +47 -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 +18 -2
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +262 -0
- package/contracts/accounting/AccountingServiceManager.sol +38 -0
- package/contracts/accounting/IAccountingService.sol +45 -0
- package/contracts/authorization/AccessAdmin.sol +177 -84
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +277 -229
- package/contracts/authorization/IAccessAdmin.sol +13 -7
- package/contracts/authorization/IAuthorization.sol +15 -1
- package/contracts/distribution/BasicDistribution.sol +6 -6
- package/contracts/distribution/BasicDistributionAuthorization.sol +22 -9
- package/contracts/distribution/Distribution.sol +32 -30
- package/contracts/distribution/DistributionService.sol +36 -34
- package/contracts/distribution/DistributionServiceManager.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/FirePool.sol +22 -5
- package/contracts/examples/fire/FirePoolAuthorization.sol +2 -1
- package/contracts/examples/fire/FireProduct.sol +31 -8
- package/contracts/examples/fire/FireProductAuthorization.sol +2 -1
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +7 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +33 -3
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +47 -21
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +13 -9
- package/contracts/instance/IInstanceService.sol +9 -9
- package/contracts/instance/Instance.sol +33 -18
- package/contracts/instance/InstanceAdmin.sol +247 -84
- package/contracts/instance/InstanceAuthorizationV3.sol +50 -31
- package/contracts/instance/InstanceReader.sol +162 -32
- package/contracts/instance/InstanceService.sol +73 -82
- package/contracts/instance/InstanceServiceManager.sol +1 -1
- package/contracts/instance/InstanceStore.sol +13 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +4 -2
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IComponents.sol +4 -4
- package/contracts/instance/module/IPolicy.sol +2 -1
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/Oracle.sol +1 -1
- package/contracts/oracle/OracleService.sol +92 -73
- package/contracts/oracle/OracleServiceManager.sol +1 -1
- package/contracts/pool/BasicPool.sol +24 -3
- package/contracts/pool/BasicPoolAuthorization.sol +27 -8
- package/contracts/pool/BundleService.sol +47 -145
- package/contracts/pool/BundleServiceManager.sol +1 -1
- package/contracts/pool/IBundleService.sol +15 -43
- package/contracts/pool/IPoolComponent.sol +1 -7
- package/contracts/pool/IPoolService.sol +58 -60
- package/contracts/pool/Pool.sol +106 -96
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +427 -214
- package/contracts/pool/PoolServiceManager.sol +1 -1
- package/contracts/product/ApplicationService.sol +15 -15
- package/contracts/product/ApplicationServiceManager.sol +1 -1
- package/contracts/product/BasicProduct.sol +9 -11
- package/contracts/product/BasicProductAuthorization.sol +24 -10
- package/contracts/product/ClaimService.sol +157 -137
- package/contracts/product/ClaimServiceManager.sol +1 -1
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +14 -2
- package/contracts/product/IPolicyService.sol +26 -11
- package/contracts/product/IProductComponent.sol +4 -1
- package/contracts/product/PolicyService.sol +277 -261
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +1 -1
- package/contracts/product/PricingService.sol +23 -19
- package/contracts/product/PricingServiceManager.sol +3 -3
- package/contracts/product/Product.sol +62 -39
- package/contracts/product/RiskService.sol +74 -25
- package/contracts/product/RiskServiceManager.sol +1 -1
- package/contracts/registry/ChainNft.sol +4 -2
- package/contracts/registry/IRegistry.sol +10 -15
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/Registry.sol +16 -3
- package/contracts/registry/RegistryAdmin.sol +132 -226
- package/contracts/registry/RegistryService.sol +3 -3
- package/contracts/registry/RegistryServiceManager.sol +1 -1
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +2 -0
- package/contracts/registry/ReleaseRegistry.sol +129 -119
- package/contracts/registry/ServiceAuthorizationV3.sol +93 -40
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +61 -105
- package/contracts/shared/ComponentService.sol +301 -295
- package/contracts/shared/ComponentServiceManager.sol +1 -1
- package/contracts/shared/ComponentVerifyingService.sol +16 -14
- package/contracts/shared/ContractLib.sol +224 -9
- package/contracts/shared/IComponent.sol +4 -17
- package/contracts/shared/IComponentService.sol +16 -25
- package/contracts/shared/IInstanceLinkedComponent.sol +0 -11
- package/contracts/shared/IRegisterable.sol +15 -4
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +4 -20
- package/contracts/shared/NftOwnable.sol +4 -4
- package/contracts/shared/PolicyHolder.sol +1 -1
- package/contracts/shared/Registerable.sol +44 -20
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +8 -27
- package/contracts/shared/TokenHandler.sol +263 -105
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +6 -9
- package/contracts/staking/IStakingService.sol +11 -1
- package/contracts/staking/StakeManagerLib.sol +63 -7
- package/contracts/staking/Staking.sol +72 -39
- package/contracts/staking/StakingReader.sol +1 -1
- package/contracts/staking/StakingService.sol +56 -14
- package/contracts/staking/StakingServiceManager.sol +5 -4
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +6 -0
- package/contracts/type/ObjectType.sol +48 -21
- package/contracts/type/RiskId.sol +23 -6
- package/contracts/type/RoleId.sol +24 -4
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +9 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +1 -1
- package/package.json +3 -3
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +0 -4
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +0 -1196
- 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/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.dbg.json +0 -4
- package/artifacts/contracts/shared/ComponentServiceHelperLib.sol/ComponentServiceHelperLib.json +0 -206
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -16
- package/contracts/authorization/ReleaseAccessManager.sol +0 -38
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/shared/ComponentServiceHelperLib.sol +0 -118
@@ -1,32 +1,37 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
|
+
|
6
|
+
import {IBundle} from "../instance/module/IBundle.sol";
|
7
|
+
import {IComponents} from "../instance/module/IComponents.sol";
|
8
|
+
import {IDistribution} from "../instance/module/IDistribution.sol";
|
9
|
+
import {IInstance} from "./IInstance.sol";
|
10
|
+
import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
|
11
|
+
import {IOracle} from "../oracle/IOracle.sol";
|
12
|
+
import {IPolicy} from "../instance/module/IPolicy.sol";
|
13
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
14
|
+
import {IRisk} from "../instance/module/IRisk.sol";
|
15
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
16
|
+
|
4
17
|
import {Amount} from "../type/Amount.sol";
|
18
|
+
import {BundleSet} from "./BundleSet.sol";
|
19
|
+
import {BUNDLE, COMPONENT, DISTRIBUTOR, DISTRIBUTION, FEE, PREMIUM, POLICY, POOL, PRODUCT} from "../type/ObjectType.sol";
|
5
20
|
import {ClaimId, ClaimIdLib} from "../type/ClaimId.sol";
|
6
21
|
import {DistributorType} from "../type/DistributorType.sol";
|
22
|
+
import {InstanceStore} from "./InstanceStore.sol";
|
7
23
|
import {Key32} from "../type/Key32.sol";
|
8
24
|
import {NftId} from "../type/NftId.sol";
|
9
|
-
import {COMPONENT, DISTRIBUTOR, DISTRIBUTION, PREMIUM, PRODUCT, POLICY, POOL, BUNDLE} from "../type/ObjectType.sol";
|
10
25
|
import {PayoutId, PayoutIdLib} from "../type/PayoutId.sol";
|
11
26
|
import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
|
12
27
|
import {RequestId} from "../type/RequestId.sol";
|
13
28
|
import {RiskId} from "../type/RiskId.sol";
|
29
|
+
import {RiskSet} from "./RiskSet.sol";
|
14
30
|
import {RoleId} from "../type/RoleId.sol";
|
15
31
|
import {StateId} from "../type/StateId.sol";
|
32
|
+
import {TokenHandler} from "../shared/TokenHandler.sol";
|
16
33
|
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
17
34
|
|
18
|
-
import {IBundle} from "../instance/module/IBundle.sol";
|
19
|
-
import {IComponents} from "../instance/module/IComponents.sol";
|
20
|
-
import {IDistribution} from "../instance/module/IDistribution.sol";
|
21
|
-
import {IInstance} from "./IInstance.sol";
|
22
|
-
import {IKeyValueStore} from "../shared/IKeyValueStore.sol";
|
23
|
-
import {IOracle} from "../oracle/IOracle.sol";
|
24
|
-
import {IPolicy} from "../instance/module/IPolicy.sol";
|
25
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
26
|
-
import {TimestampLib} from "../type/Timestamp.sol";
|
27
|
-
|
28
|
-
import {InstanceStore} from "./InstanceStore.sol";
|
29
|
-
import {BundleSet} from "./BundleSet.sol";
|
30
35
|
|
31
36
|
|
32
37
|
contract InstanceReader {
|
@@ -36,9 +41,12 @@ contract InstanceReader {
|
|
36
41
|
|
37
42
|
bool private _initialized = false;
|
38
43
|
|
44
|
+
IRegistry internal _registry;
|
39
45
|
IInstance internal _instance;
|
46
|
+
|
40
47
|
InstanceStore internal _store;
|
41
48
|
BundleSet internal _bundleSet;
|
49
|
+
RiskSet internal _riskSet;
|
42
50
|
|
43
51
|
/// @dev This initializer needs to be called from the instance itself.
|
44
52
|
function initialize() public {
|
@@ -49,18 +57,36 @@ contract InstanceReader {
|
|
49
57
|
initializeWithInstance(msg.sender);
|
50
58
|
}
|
51
59
|
|
52
|
-
|
53
|
-
|
60
|
+
function initializeWithInstance(address instanceAddress)
|
61
|
+
public
|
62
|
+
{
|
54
63
|
if(_initialized) {
|
55
64
|
revert ErrorInstanceReaderAlreadyInitialized();
|
56
65
|
}
|
57
66
|
|
58
67
|
_initialized = true;
|
59
68
|
_instance = IInstance(instanceAddress);
|
69
|
+
_registry = _instance.getRegistry();
|
70
|
+
|
60
71
|
_store = _instance.getInstanceStore();
|
61
72
|
_bundleSet = _instance.getBundleSet();
|
73
|
+
_riskSet = _instance.getRiskSet();
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
// instance level functions
|
78
|
+
|
79
|
+
function getRegistry() public view returns (IRegistry registry) {
|
80
|
+
return _registry;
|
81
|
+
}
|
82
|
+
|
83
|
+
function getInstanceNftId() public view returns (NftId instanceNftid) {
|
84
|
+
return _registry.getNftIdForAddress(address(_instance));
|
62
85
|
}
|
63
86
|
|
87
|
+
function getInstance() public view returns (IInstance instance) {
|
88
|
+
return _instance;
|
89
|
+
}
|
64
90
|
|
65
91
|
// module specific functions
|
66
92
|
|
@@ -102,10 +128,18 @@ contract InstanceReader {
|
|
102
128
|
return _store.getState(toPremiumKey(policyNftId));
|
103
129
|
}
|
104
130
|
|
131
|
+
function bundles(NftId poolNftId)
|
132
|
+
public
|
133
|
+
view
|
134
|
+
returns (uint256 bundleCount)
|
135
|
+
{
|
136
|
+
return _bundleSet.bundles(poolNftId);
|
137
|
+
}
|
138
|
+
|
105
139
|
function activeBundles(NftId poolNftId)
|
106
140
|
public
|
107
141
|
view
|
108
|
-
returns (uint256
|
142
|
+
returns (uint256 bundleCount)
|
109
143
|
{
|
110
144
|
return _bundleSet.activeBundles(poolNftId);
|
111
145
|
}
|
@@ -118,6 +152,14 @@ contract InstanceReader {
|
|
118
152
|
return _bundleSet.getActiveBundleNftId(poolNftId, idx);
|
119
153
|
}
|
120
154
|
|
155
|
+
function getBundleNftId(NftId poolNftId, uint256 idx)
|
156
|
+
public
|
157
|
+
view
|
158
|
+
returns (NftId bundleNftId)
|
159
|
+
{
|
160
|
+
return _bundleSet.getBundleNftId(poolNftId, idx);
|
161
|
+
}
|
162
|
+
|
121
163
|
function getBundleState(NftId bundleNftId)
|
122
164
|
public
|
123
165
|
view
|
@@ -145,7 +187,7 @@ contract InstanceReader {
|
|
145
187
|
function claims(NftId policyNftId)
|
146
188
|
public
|
147
189
|
view
|
148
|
-
returns (uint16
|
190
|
+
returns (uint16 claimCount)
|
149
191
|
{
|
150
192
|
return getPolicyInfo(policyNftId).claimsCount;
|
151
193
|
}
|
@@ -183,7 +225,7 @@ contract InstanceReader {
|
|
183
225
|
function payouts(NftId policyNftId, ClaimId claimId)
|
184
226
|
public
|
185
227
|
view
|
186
|
-
returns (uint24
|
228
|
+
returns (uint24 payoutCount)
|
187
229
|
{
|
188
230
|
return getClaimInfo(policyNftId, claimId).payoutsCount;
|
189
231
|
}
|
@@ -226,6 +268,38 @@ contract InstanceReader {
|
|
226
268
|
return _store.getState(payoutId.toKey32(policyNftId));
|
227
269
|
}
|
228
270
|
|
271
|
+
function risks(NftId productNftId)
|
272
|
+
public
|
273
|
+
view
|
274
|
+
returns (uint256 riskCount)
|
275
|
+
{
|
276
|
+
return _riskSet.risks(productNftId);
|
277
|
+
}
|
278
|
+
|
279
|
+
function getRiskId(NftId productNftId, uint256 idx)
|
280
|
+
public
|
281
|
+
view
|
282
|
+
returns (RiskId riskId)
|
283
|
+
{
|
284
|
+
return _riskSet.getRiskId(productNftId, idx);
|
285
|
+
}
|
286
|
+
|
287
|
+
function activeRisks(NftId productNftId)
|
288
|
+
public
|
289
|
+
view
|
290
|
+
returns (uint256 activeRiskCount)
|
291
|
+
{
|
292
|
+
return _riskSet.activeRisks(productNftId);
|
293
|
+
}
|
294
|
+
|
295
|
+
function getActiveRiskId(NftId productNftId, uint256 idx)
|
296
|
+
public
|
297
|
+
view
|
298
|
+
returns (RiskId riskId)
|
299
|
+
{
|
300
|
+
return _riskSet.getActiveRiskId(productNftId, idx);
|
301
|
+
}
|
302
|
+
|
229
303
|
function getRiskInfo(RiskId riskId)
|
230
304
|
public
|
231
305
|
view
|
@@ -237,32 +311,68 @@ contract InstanceReader {
|
|
237
311
|
}
|
238
312
|
}
|
239
313
|
|
240
|
-
function
|
314
|
+
function getRiskState(RiskId riskId)
|
315
|
+
public
|
316
|
+
view
|
317
|
+
returns (StateId stateId)
|
318
|
+
{
|
319
|
+
bytes memory data = _store.getData(riskId.toKey32());
|
320
|
+
return _store.getState(riskId.toKey32());
|
321
|
+
}
|
322
|
+
|
323
|
+
function policiesForRisk(RiskId riskId)
|
241
324
|
public
|
242
325
|
view
|
243
|
-
returns (
|
326
|
+
returns (uint256 linkedPolicies)
|
244
327
|
{
|
245
|
-
|
328
|
+
return _riskSet.linkedPolicies(riskId);
|
329
|
+
}
|
246
330
|
|
247
|
-
|
248
|
-
|
249
|
-
|
331
|
+
function getPolicyNftIdForRisk(RiskId riskId, uint256 idx)
|
332
|
+
public
|
333
|
+
view
|
334
|
+
returns (NftId linkedPolicyNftId)
|
335
|
+
{
|
336
|
+
return _riskSet.getLinkedPolicyNftId(riskId, idx);
|
337
|
+
}
|
338
|
+
|
339
|
+
|
340
|
+
function getToken(NftId componentNftId)
|
341
|
+
public
|
342
|
+
view
|
343
|
+
returns (IERC20Metadata token)
|
344
|
+
{
|
345
|
+
TokenHandler tokenHandler = getTokenHandler(componentNftId);
|
346
|
+
if (address(tokenHandler) != address(0)) {
|
347
|
+
return tokenHandler.TOKEN();
|
348
|
+
}
|
349
|
+
}
|
350
|
+
|
351
|
+
|
352
|
+
function getWallet(NftId componentNftId)
|
353
|
+
public
|
354
|
+
view
|
355
|
+
returns (address wallet)
|
356
|
+
{
|
357
|
+
TokenHandler tokenHandler = getTokenHandler(componentNftId);
|
358
|
+
if (address(tokenHandler) != address(0)) {
|
359
|
+
return tokenHandler.getWallet();
|
250
360
|
}
|
251
361
|
}
|
252
362
|
|
363
|
+
|
253
364
|
function getTokenHandler(NftId componentNftId)
|
254
365
|
public
|
255
366
|
view
|
256
|
-
returns (
|
367
|
+
returns (TokenHandler tokenHandler)
|
257
368
|
{
|
258
369
|
bytes memory data = _store.getData(toComponentKey(componentNftId));
|
259
|
-
|
260
370
|
if (data.length > 0) {
|
261
|
-
|
262
|
-
return address(info.tokenHandler);
|
371
|
+
return abi.decode(data, (IComponents.ComponentInfo)).tokenHandler;
|
263
372
|
}
|
264
373
|
}
|
265
374
|
|
375
|
+
|
266
376
|
function getBundleInfo(NftId bundleNftId)
|
267
377
|
public
|
268
378
|
view
|
@@ -330,6 +440,17 @@ contract InstanceReader {
|
|
330
440
|
}
|
331
441
|
}
|
332
442
|
|
443
|
+
function getFeeInfo(NftId productNftId)
|
444
|
+
public
|
445
|
+
view
|
446
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
447
|
+
{
|
448
|
+
bytes memory data = _store.getData(toFeeKey(productNftId));
|
449
|
+
if (data.length > 0) {
|
450
|
+
return abi.decode(data, (IComponents.FeeInfo));
|
451
|
+
}
|
452
|
+
}
|
453
|
+
|
333
454
|
function getPoolInfo(NftId poolNftId)
|
334
455
|
public
|
335
456
|
view
|
@@ -440,7 +561,7 @@ contract InstanceReader {
|
|
440
561
|
}
|
441
562
|
|
442
563
|
|
443
|
-
function
|
564
|
+
function isLocked(address target) public view returns (bool) {
|
444
565
|
return _instance.getInstanceAdmin().isTargetLocked(target);
|
445
566
|
}
|
446
567
|
|
@@ -476,15 +597,24 @@ contract InstanceReader {
|
|
476
597
|
return productNftId.toKey32(PRODUCT());
|
477
598
|
}
|
478
599
|
|
479
|
-
|
480
|
-
|
481
|
-
return _instance;
|
600
|
+
function toFeeKey(NftId productNftId) public pure returns (Key32) {
|
601
|
+
return productNftId.toKey32(FEE());
|
482
602
|
}
|
483
603
|
|
604
|
+
// low level function
|
605
|
+
|
484
606
|
function getInstanceStore() external view returns (IKeyValueStore store) {
|
485
607
|
return _store;
|
486
608
|
}
|
487
609
|
|
610
|
+
function getBundleSet() external view returns (BundleSet bundleSet) {
|
611
|
+
return _bundleSet;
|
612
|
+
}
|
613
|
+
|
614
|
+
function getRiskSet() external view returns (RiskSet riskSet) {
|
615
|
+
return _riskSet;
|
616
|
+
}
|
617
|
+
|
488
618
|
function toUFixed(uint256 value, int8 exp) public pure returns (UFixed) {
|
489
619
|
return UFixedLib.toUFixed(value, exp);
|
490
620
|
}
|
@@ -2,32 +2,26 @@
|
|
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
|
|
6
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
7
7
|
import {AccessManagerCloneable} from "../authorization/AccessManagerCloneable.sol";
|
8
8
|
import {Amount} from "../type/Amount.sol";
|
9
9
|
import {BundleSet} from "./BundleSet.sol";
|
10
|
+
import {RiskSet} from "./RiskSet.sol";
|
10
11
|
import {ChainNft} from "../registry/ChainNft.sol";
|
11
12
|
import {NftId} from "../type/NftId.sol";
|
12
13
|
import {RoleId} from "../type/RoleId.sol";
|
13
|
-
import {
|
14
|
-
import {
|
15
|
-
import {ADMIN_ROLE} from "../type/RoleId.sol";
|
16
|
-
import {ObjectType, INSTANCE, BUNDLE, APPLICATION, CLAIM, DISTRIBUTION, INSTANCE, POLICY, POOL, PRODUCT, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
14
|
+
import {UFixed} from "../type/UFixed.sol";
|
15
|
+
import {ObjectType, INSTANCE, COMPONENT, INSTANCE, REGISTRY, STAKING} from "../type/ObjectType.sol";
|
17
16
|
|
18
17
|
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
18
|
|
26
19
|
import {IRegistry} from "../registry/IRegistry.sol";
|
27
20
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
28
21
|
import {IStakingService} from "../staking/IStakingService.sol";
|
29
22
|
import {TargetManagerLib} from "../staking/TargetManagerLib.sol";
|
30
23
|
|
24
|
+
import {IComponentService} from "../shared/IComponentService.sol";
|
31
25
|
import {Instance} from "./Instance.sol";
|
32
26
|
import {IInstance} from "./IInstance.sol";
|
33
27
|
import {InstanceAdmin} from "./InstanceAdmin.sol";
|
@@ -35,7 +29,7 @@ import {IInstanceService} from "./IInstanceService.sol";
|
|
35
29
|
import {InstanceReader} from "./InstanceReader.sol";
|
36
30
|
import {InstanceStore} from "./InstanceStore.sol";
|
37
31
|
import {Seconds} from "../type/Seconds.sol";
|
38
|
-
import {VersionPart
|
32
|
+
import {VersionPart} from "../type/Version.sol";
|
39
33
|
|
40
34
|
|
41
35
|
contract InstanceService is
|
@@ -48,12 +42,14 @@ contract InstanceService is
|
|
48
42
|
|
49
43
|
IRegistryService internal _registryService;
|
50
44
|
IStakingService internal _stakingService;
|
45
|
+
IComponentService internal _componentService;
|
51
46
|
|
52
47
|
address internal _masterAccessManager;
|
53
48
|
address internal _masterInstanceAdmin;
|
54
49
|
address internal _masterInstance;
|
55
50
|
address internal _masterInstanceReader;
|
56
51
|
address internal _masterInstanceBundleSet;
|
52
|
+
address internal _masterInstanceRiskSet;
|
57
53
|
address internal _masterInstanceStore;
|
58
54
|
|
59
55
|
|
@@ -85,6 +81,7 @@ contract InstanceService is
|
|
85
81
|
_;
|
86
82
|
}
|
87
83
|
|
84
|
+
|
88
85
|
// TODO check component - service - instance version match
|
89
86
|
modifier onlyComponent() {
|
90
87
|
if (! getRegistry().isRegisteredComponent(msg.sender)) {
|
@@ -95,9 +92,10 @@ contract InstanceService is
|
|
95
92
|
|
96
93
|
function createInstance()
|
97
94
|
external
|
95
|
+
restricted()
|
98
96
|
returns (
|
99
|
-
|
100
|
-
NftId
|
97
|
+
IInstance instance,
|
98
|
+
NftId instanceNftId
|
101
99
|
)
|
102
100
|
{
|
103
101
|
// tx sender will become instance owner
|
@@ -105,30 +103,35 @@ contract InstanceService is
|
|
105
103
|
|
106
104
|
// create instance admin and instance
|
107
105
|
InstanceAdmin instanceAdmin = _createInstanceAdmin();
|
108
|
-
|
106
|
+
instance = _createInstance(instanceAdmin, instanceOwner);
|
109
107
|
|
110
108
|
// register cloned instance with registry
|
111
|
-
|
112
|
-
|
109
|
+
instanceNftId = _registryService.registerInstance(
|
110
|
+
instance, instanceOwner).nftId;
|
113
111
|
|
114
112
|
// register cloned instance as staking target
|
115
113
|
_stakingService.createInstanceTarget(
|
116
|
-
|
114
|
+
instanceNftId,
|
117
115
|
TargetManagerLib.getDefaultLockingPeriod(),
|
118
116
|
TargetManagerLib.getDefaultRewardRate());
|
119
117
|
|
120
118
|
// MUST be set after instance is set up and registered
|
121
|
-
|
119
|
+
IAuthorization instanceAuthorization = InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization();
|
120
|
+
VersionPart release = AccessManagerCloneable(authority()).getRelease();
|
121
|
+
instanceAdmin.completeSetup(
|
122
|
+
address(instance),
|
123
|
+
address(instanceAuthorization));
|
122
124
|
|
123
125
|
emit LogInstanceCloned(
|
124
|
-
|
125
|
-
address(
|
126
|
+
instanceNftId,
|
127
|
+
address(instance));
|
126
128
|
}
|
127
129
|
|
128
130
|
|
129
131
|
function setStakingLockingPeriod(Seconds stakeLockingPeriod)
|
130
132
|
external
|
131
133
|
virtual
|
134
|
+
restricted()
|
132
135
|
onlyInstance()
|
133
136
|
{
|
134
137
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
@@ -141,6 +144,7 @@ contract InstanceService is
|
|
141
144
|
function setStakingRewardRate(UFixed rewardRate)
|
142
145
|
external
|
143
146
|
virtual
|
147
|
+
restricted()
|
144
148
|
onlyInstance()
|
145
149
|
{
|
146
150
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
@@ -153,6 +157,7 @@ contract InstanceService is
|
|
153
157
|
function refillStakingRewardReserves(address rewardProvider, Amount dipAmount)
|
154
158
|
external
|
155
159
|
virtual
|
160
|
+
restricted()
|
156
161
|
onlyInstance()
|
157
162
|
{
|
158
163
|
NftId instanceNftId = getRegistry().getNftIdForAddress(msg.sender);
|
@@ -166,6 +171,7 @@ contract InstanceService is
|
|
166
171
|
function withdrawStakingRewardReserves(Amount dipAmount)
|
167
172
|
external
|
168
173
|
virtual
|
174
|
+
restricted()
|
169
175
|
onlyInstance()
|
170
176
|
returns (Amount newBalance)
|
171
177
|
{
|
@@ -175,46 +181,31 @@ contract InstanceService is
|
|
175
181
|
dipAmount);
|
176
182
|
}
|
177
183
|
|
178
|
-
|
179
|
-
|
180
|
-
|
181
|
-
|
182
|
-
|
184
|
+
function upgradeInstanceReader(NftId instanceNftId)
|
185
|
+
external
|
186
|
+
nonReentrant()
|
187
|
+
restricted()
|
188
|
+
onlyInstanceOwner(instanceNftId)
|
189
|
+
onlyNftOfType(instanceNftId, INSTANCE())
|
183
190
|
{
|
184
|
-
// checks
|
185
|
-
address componentAddress = msg.sender;
|
186
|
-
|
187
|
-
if (!IInstanceLinkedComponent(componentAddress).supportsInterface(type(IInstanceLinkedComponent).interfaceId)) {
|
188
|
-
revert ErrorInstanceServiceComponentNotInstanceLinked(componentAddress);
|
189
|
-
}
|
190
|
-
|
191
191
|
IRegistry registry = getRegistry();
|
192
|
-
|
193
|
-
|
194
|
-
|
195
|
-
|
196
|
-
|
197
|
-
|
198
|
-
// TODO refactor/implement
|
199
|
-
// instance.getInstanceAdmin().setTargetLockedByService(
|
200
|
-
// componentAddress,
|
201
|
-
// locked);
|
202
|
-
}
|
203
|
-
|
204
|
-
|
205
|
-
function getMasterInstanceReader() external view returns (address) {
|
206
|
-
return _masterInstanceReader;
|
192
|
+
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
193
|
+
Instance instance = Instance(instanceInfo.objectAddress);
|
194
|
+
|
195
|
+
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
196
|
+
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
197
|
+
instance.setInstanceReader(upgradedInstanceReaderClone);
|
207
198
|
}
|
208
199
|
|
209
200
|
function setAndRegisterMasterInstance(address instanceAddress)
|
210
|
-
|
211
|
-
|
212
|
-
|
201
|
+
external
|
202
|
+
onlyOwner()
|
203
|
+
returns(NftId masterInstanceNftId)
|
213
204
|
{
|
214
205
|
if(_masterInstance != address(0)) { revert ErrorInstanceServiceMasterInstanceAlreadySet(); }
|
215
206
|
if(_masterInstanceAdmin != address(0)) { revert ErrorInstanceServiceMasterInstanceAdminAlreadySet(); }
|
216
207
|
if(_masterInstanceBundleSet != address(0)) { revert ErrorInstanceServiceMasterBundleSetAlreadySet(); }
|
217
|
-
|
208
|
+
if(_masterInstanceRiskSet != address(0)) { revert ErrorInstanceServiceMasterRiskSetAlreadySet(); }
|
218
209
|
if(instanceAddress == address(0)) { revert ErrorInstanceServiceInstanceAddressZero(); }
|
219
210
|
|
220
211
|
IInstance instance = IInstance(instanceAddress);
|
@@ -223,28 +214,34 @@ contract InstanceService is
|
|
223
214
|
address instanceAdminAddress = address(instanceAdmin);
|
224
215
|
InstanceReader instanceReader = instance.getInstanceReader();
|
225
216
|
address instanceReaderAddress = address(instanceReader);
|
226
|
-
BundleSet
|
227
|
-
address
|
217
|
+
BundleSet bundleSet = instance.getBundleSet();
|
218
|
+
address bundleSetAddress = address(bundleSet);
|
219
|
+
RiskSet riskSet = instance.getRiskSet();
|
220
|
+
address riskSetAddress = address(riskSet);
|
228
221
|
InstanceStore instanceStore = instance.getInstanceStore();
|
229
222
|
address instanceStoreAddress = address(instanceStore);
|
230
223
|
|
231
224
|
if(accessManagerAddress == address(0)) { revert ErrorInstanceServiceAccessManagerZero(); }
|
232
225
|
if(instanceAdminAddress == address(0)) { revert ErrorInstanceServiceInstanceAdminZero(); }
|
233
226
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderZero(); }
|
234
|
-
if(
|
227
|
+
if(bundleSetAddress == address(0)) { revert ErrorInstanceServiceBundleSetZero(); }
|
228
|
+
if(riskSetAddress == address(0)) { revert ErrorInstanceServiceRiskSetZero(); }
|
235
229
|
if(instanceStoreAddress == address(0)) { revert ErrorInstanceServiceInstanceStoreZero(); }
|
236
230
|
|
237
231
|
if(instance.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceAuthorityMismatch(); }
|
238
|
-
if(
|
232
|
+
if(bundleSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceBundleSetAuthorityMismatch(); }
|
233
|
+
if(riskSet.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceRiskSetAuthorityMismatch(); }
|
239
234
|
if(instanceStore.authority() != instanceAdmin.authority()) { revert ErrorInstanceServiceInstanceStoreAuthorityMismatch(); }
|
240
|
-
if(
|
235
|
+
if(bundleSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceBundleSetInstanceMismatch(); }
|
236
|
+
if(riskSet.getInstanceAddress() != address(instance)) { revert ErrorInstanceServiceRiskSetInstanceMismatch(); }
|
241
237
|
if(instanceReader.getInstance() != instance) { revert ErrorInstanceServiceInstanceReaderInstanceMismatch2(); }
|
242
238
|
|
243
239
|
_masterAccessManager = accessManagerAddress;
|
244
240
|
_masterInstanceAdmin = instanceAdminAddress;
|
245
241
|
_masterInstance = instanceAddress;
|
246
242
|
_masterInstanceReader = instanceReaderAddress;
|
247
|
-
_masterInstanceBundleSet =
|
243
|
+
_masterInstanceBundleSet = bundleSetAddress;
|
244
|
+
_masterInstanceRiskSet = riskSetAddress;
|
248
245
|
_masterInstanceStore = instanceStoreAddress;
|
249
246
|
|
250
247
|
IInstance masterInstance = IInstance(_masterInstance);
|
@@ -252,7 +249,10 @@ contract InstanceService is
|
|
252
249
|
masterInstanceNftId = info.nftId;
|
253
250
|
}
|
254
251
|
|
255
|
-
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
252
|
+
function upgradeMasterInstanceReader(address instanceReaderAddress)
|
253
|
+
external
|
254
|
+
onlyOwner
|
255
|
+
{
|
256
256
|
if(_masterInstanceReader == address(0)) { revert ErrorInstanceServiceMasterInstanceReaderNotSet(); }
|
257
257
|
if(instanceReaderAddress == address(0)) { revert ErrorInstanceServiceInstanceReaderAddressZero(); }
|
258
258
|
if(instanceReaderAddress == _masterInstanceReader) { revert ErrorInstanceServiceInstanceReaderSameAsMasterInstanceReader(); }
|
@@ -263,18 +263,8 @@ contract InstanceService is
|
|
263
263
|
_masterInstanceReader = instanceReaderAddress;
|
264
264
|
}
|
265
265
|
|
266
|
-
function
|
267
|
-
|
268
|
-
onlyInstanceOwner(instanceNftId)
|
269
|
-
onlyNftOfType(instanceNftId, INSTANCE())
|
270
|
-
{
|
271
|
-
IRegistry registry = getRegistry();
|
272
|
-
IRegistry.ObjectInfo memory instanceInfo = registry.getObjectInfo(instanceNftId);
|
273
|
-
Instance instance = Instance(instanceInfo.objectAddress);
|
274
|
-
|
275
|
-
InstanceReader upgradedInstanceReaderClone = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
276
|
-
upgradedInstanceReaderClone.initializeWithInstance(address(instance));
|
277
|
-
instance.setInstanceReader(upgradedInstanceReaderClone);
|
266
|
+
function getMasterInstanceReader() external view returns (address) {
|
267
|
+
return _masterInstanceReader;
|
278
268
|
}
|
279
269
|
|
280
270
|
/// @dev create new cloned instance admin
|
@@ -285,19 +275,16 @@ contract InstanceService is
|
|
285
275
|
returns (InstanceAdmin clonedInstanceAdmin)
|
286
276
|
{
|
287
277
|
// start with setting up a new OZ access manager
|
278
|
+
// TODO consider _masterInstanceAdmin.authority() instead of _masterAccessManager
|
288
279
|
AccessManagerCloneable clonedAccessManager = AccessManagerCloneable(
|
289
280
|
Clones.clone(_masterAccessManager));
|
290
281
|
|
291
282
|
// set up the instance admin
|
292
283
|
clonedInstanceAdmin = InstanceAdmin(Clones.clone(_masterInstanceAdmin));
|
293
|
-
clonedAccessManager.initialize(
|
294
|
-
address(clonedInstanceAdmin)); // grant ADMIN_ROLE to instance admin
|
295
|
-
|
296
|
-
address authorization = address(
|
297
|
-
InstanceAdmin(_masterInstanceAdmin).getInstanceAuthorization());
|
298
284
|
clonedInstanceAdmin.initialize(
|
299
285
|
clonedAccessManager,
|
300
|
-
|
286
|
+
getRegistry(),
|
287
|
+
getRelease());
|
301
288
|
}
|
302
289
|
|
303
290
|
|
@@ -309,21 +296,24 @@ contract InstanceService is
|
|
309
296
|
)
|
310
297
|
internal
|
311
298
|
virtual
|
312
|
-
returns (
|
299
|
+
returns (IInstance)
|
313
300
|
{
|
314
301
|
InstanceStore clonedInstanceStore = InstanceStore(Clones.clone(address(_masterInstanceStore)));
|
315
302
|
BundleSet clonedBundleSet = BundleSet(Clones.clone(_masterInstanceBundleSet));
|
303
|
+
RiskSet clonedRiskSet = RiskSet(Clones.clone(_masterInstanceRiskSet));
|
316
304
|
InstanceReader clonedInstanceReader = InstanceReader(Clones.clone(address(_masterInstanceReader)));
|
317
305
|
|
318
306
|
// clone instance
|
319
|
-
clonedInstance = Instance(Clones.clone(_masterInstance));
|
307
|
+
Instance clonedInstance = Instance(Clones.clone(_masterInstance));
|
320
308
|
clonedInstance.initialize(
|
321
309
|
instanceAdmin,
|
322
310
|
clonedInstanceStore,
|
323
311
|
clonedBundleSet,
|
312
|
+
clonedRiskSet,
|
324
313
|
clonedInstanceReader,
|
325
314
|
getRegistry(),
|
326
315
|
instanceOwner);
|
316
|
+
return clonedInstance;
|
327
317
|
}
|
328
318
|
|
329
319
|
|
@@ -366,14 +356,15 @@ contract InstanceService is
|
|
366
356
|
initializer()
|
367
357
|
{
|
368
358
|
(
|
369
|
-
address
|
370
|
-
address
|
359
|
+
address authority,
|
360
|
+
address registry
|
371
361
|
) = abi.decode(data, (address, address));
|
372
362
|
|
373
|
-
|
363
|
+
__Service_init(authority, registry, owner);
|
374
364
|
|
375
365
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
376
366
|
_stakingService = IStakingService(_getServiceAddress(STAKING()));
|
367
|
+
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
377
368
|
|
378
369
|
_registerInterface(type(IInstanceService).interfaceId);
|
379
370
|
}
|
@@ -17,7 +17,7 @@ contract InstanceServiceManager is ProxyManager {
|
|
17
17
|
)
|
18
18
|
{
|
19
19
|
InstanceService svc = new InstanceService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
21
|
IVersionable versionable = initialize(
|
22
22
|
registry,
|
23
23
|
address(svc),
|