@etherisc/gif-next 0.0.2-85e7957-019 → 0.0.2-860e68d-106
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 +89 -9
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1075 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +790 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +843 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +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 +183 -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 +102 -387
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +644 -392
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +208 -132
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +96 -191
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +476 -137
- 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 +1472 -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 +2045 -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 +1423 -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 +1171 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1639 -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 +2538 -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 +560 -66
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +377 -58
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +568 -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 -736
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +390 -228
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +142 -104
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +957 -642
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +866 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +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 +127 -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 +103 -133
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +98 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +103 -323
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +198 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +176 -96
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +156 -384
- 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 +374 -446
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +169 -133
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +259 -153
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +142 -183
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +524 -288
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +132 -363
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +4 -0
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +522 -0
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +730 -549
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +205 -113
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +353 -180
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +158 -98
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +272 -431
- 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 +472 -235
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +194 -122
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +301 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +348 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +358 -127
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +183 -80
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +257 -226
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/{shared/ComponentVerifyingService.sol/ComponentVerifyingService.json → product/IRiskService.sol/IRiskService.json} +283 -157
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +477 -373
- 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 +195 -123
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +247 -332
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +164 -136
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +264 -423
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +873 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +774 -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 +356 -45
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +169 -37
- 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 +562 -106
- 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 +136 -290
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +140 -88
- 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 +86 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +482 -643
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +176 -134
- 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 +92 -93
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +432 -290
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +103 -133
- 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 +35 -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 +167 -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 +84 -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 +102 -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 +41 -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 +141 -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 +86 -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 +341 -133
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +184 -23
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +466 -417
- 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 +180 -99
- 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 +253 -171
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +157 -93
- 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 +45 -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 +2 -2
- 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/IVersionable.sol/IVersionable.json +10 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +117 -78
- 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/artifacts/contracts/upgradeability/Versionable.sol/Versionable.json +10 -0
- 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 -208
- 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 +416 -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 +56 -32
- 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 +476 -257
- package/contracts/instance/InstanceService.sol +289 -233
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +23 -2
- package/contracts/instance/RiskSet.sol +126 -0
- package/contracts/instance/base/BalanceStore.sol +3 -5
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +12 -10
- 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 -15
- 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 +35 -39
- package/contracts/pool/BasicPoolAuthorization.sol +36 -13
- package/contracts/pool/BundleService.sol +126 -182
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +32 -49
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +97 -76
- package/contracts/pool/Pool.sol +140 -135
- package/contracts/pool/PoolLib.sol +341 -0
- package/contracts/pool/PoolService.sol +388 -302
- 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 -43
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +27 -5
- package/contracts/product/IRiskService.sol +48 -0
- package/contracts/product/PolicyService.sol +423 -307
- 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 +174 -102
- package/contracts/product/RiskService.sol +190 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +70 -29
- 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 +364 -204
- package/contracts/registry/RegistryAdmin.sol +110 -287
- package/contracts/registry/RegistryAuthorization.sol +284 -0
- package/contracts/registry/RegistryService.sol +38 -49
- 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 +412 -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 +43 -40
- package/contracts/shared/IInstanceLinkedComponent.sol +6 -32
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +4 -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 +31 -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 +12 -0
- 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 +0 -5
- package/contracts/type/UFixed.sol +37 -126
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/IVersionable.sol +3 -0
- package/contracts/upgradeability/ProxyManager.sol +93 -45
- package/contracts/upgradeability/UpgradableProxyWithAdmin.sol +7 -1
- package/contracts/upgradeability/Versionable.sol +8 -5
- 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/IProductService.sol/IProductService.json +0 -400
- 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/IProductService.sol +0 -33
- 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
@@ -1,37 +1,30 @@
|
|
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
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
8
|
-
import {
|
9
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
|
-
import {IRisk} from "../instance/module/IRisk.sol";
|
6
|
+
import {Fee} from "../type/Fee.sol";
|
11
7
|
import {IApplicationService} from "./IApplicationService.sol";
|
12
8
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
13
9
|
import {IComponentService} from "../shared/IComponentService.sol";
|
10
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
14
11
|
import {IPolicyService} from "./IPolicyService.sol";
|
15
|
-
import {
|
12
|
+
import {IRiskService} from "./IRiskService.sol";
|
16
13
|
import {IClaimService} from "./IClaimService.sol";
|
17
14
|
import {IPricingService} from "./IPricingService.sol";
|
18
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
19
|
-
import {NftId
|
16
|
+
import {NftId} from "../type/NftId.sol";
|
17
|
+
import {COMPONENT, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
20
18
|
import {PayoutId} from "../type/PayoutId.sol";
|
21
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
19
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
|
22
20
|
import {ReferralId} from "../type/Referral.sol";
|
23
|
-
import {RiskId
|
21
|
+
import {RiskId} from "../type/RiskId.sol";
|
24
22
|
import {Seconds} from "../type/Seconds.sol";
|
25
23
|
import {StateId} from "../type/StateId.sol";
|
26
24
|
import {Timestamp} from "../type/Timestamp.sol";
|
27
25
|
|
28
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
29
|
-
|
30
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
31
26
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
32
27
|
import {IComponents} from "../instance/module/IComponents.sol";
|
33
|
-
import {Pool} from "../pool/Pool.sol";
|
34
|
-
import {Distribution} from "../distribution/Distribution.sol";
|
35
28
|
|
36
29
|
abstract contract Product is
|
37
30
|
InstanceLinkedComponent,
|
@@ -41,16 +34,39 @@ abstract contract Product is
|
|
41
34
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
42
35
|
|
43
36
|
struct ProductStorage {
|
44
|
-
|
37
|
+
IComponents.ProductInfo _productInfo;
|
38
|
+
IComponents.FeeInfo _feeInfo;
|
39
|
+
IComponentService _componentService;
|
40
|
+
IRiskService _riskService;
|
45
41
|
IApplicationService _applicationService;
|
46
42
|
IPolicyService _policyService;
|
47
43
|
IClaimService _claimService;
|
48
44
|
IPricingService _pricingService;
|
49
|
-
|
50
|
-
|
51
|
-
|
52
|
-
|
53
|
-
|
45
|
+
}
|
46
|
+
|
47
|
+
|
48
|
+
function registerComponent(address component)
|
49
|
+
external
|
50
|
+
virtual
|
51
|
+
restricted()
|
52
|
+
onlyOwner()
|
53
|
+
returns (NftId componentNftId)
|
54
|
+
{
|
55
|
+
return _getProductStorage()._componentService.registerComponent(component);
|
56
|
+
}
|
57
|
+
|
58
|
+
|
59
|
+
function processFundedClaim(
|
60
|
+
NftId policyNftId,
|
61
|
+
ClaimId claimId,
|
62
|
+
Amount availableAmount
|
63
|
+
)
|
64
|
+
external
|
65
|
+
virtual
|
66
|
+
restricted() // pool service role
|
67
|
+
onlyNftOfType(policyNftId, POLICY())
|
68
|
+
{
|
69
|
+
// default implementation does nothing
|
54
70
|
}
|
55
71
|
|
56
72
|
|
@@ -62,12 +78,14 @@ abstract contract Product is
|
|
62
78
|
NftId bundleNftId,
|
63
79
|
ReferralId referralId
|
64
80
|
)
|
65
|
-
|
81
|
+
public
|
66
82
|
view
|
83
|
+
virtual
|
67
84
|
override
|
85
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
68
86
|
returns (Amount premiumAmount)
|
69
87
|
{
|
70
|
-
IPolicy.
|
88
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
71
89
|
getNftId(),
|
72
90
|
riskId,
|
73
91
|
sumInsuredAmount,
|
@@ -77,14 +95,14 @@ abstract contract Product is
|
|
77
95
|
referralId
|
78
96
|
);
|
79
97
|
|
80
|
-
return
|
98
|
+
return premium.premiumAmount;
|
81
99
|
}
|
82
100
|
|
83
101
|
function calculateNetPremium(
|
84
102
|
Amount sumInsuredAmount,
|
85
|
-
RiskId
|
86
|
-
Seconds
|
87
|
-
bytes memory
|
103
|
+
RiskId,
|
104
|
+
Seconds,
|
105
|
+
bytes memory
|
88
106
|
)
|
89
107
|
external
|
90
108
|
view
|
@@ -96,56 +114,33 @@ abstract contract Product is
|
|
96
114
|
}
|
97
115
|
|
98
116
|
|
99
|
-
function register()
|
100
|
-
external
|
101
|
-
virtual
|
102
|
-
onlyOwner()
|
103
|
-
{
|
104
|
-
_getProductStorage()._componentService.registerProduct();
|
105
|
-
_approveTokenHandler(type(uint256).max);
|
106
|
-
}
|
107
|
-
|
108
|
-
|
109
117
|
function getInitialProductInfo()
|
110
118
|
public
|
111
119
|
virtual
|
112
120
|
view
|
113
121
|
returns (IComponents.ProductInfo memory poolInfo)
|
114
122
|
{
|
115
|
-
|
116
|
-
|
117
|
-
return IComponents.ProductInfo({
|
118
|
-
distributionNftId: $._distributionNftId,
|
119
|
-
poolNftId: $._poolNftId,
|
120
|
-
productFee: FeeLib.zero(),
|
121
|
-
processingFee: FeeLib.zero(),
|
122
|
-
distributionFee: FeeLib.zero(),
|
123
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
124
|
-
poolFee: FeeLib.zero(),
|
125
|
-
stakingFee: FeeLib.zero(),
|
126
|
-
performanceFee: FeeLib.zero()
|
127
|
-
});
|
123
|
+
return _getProductStorage()._productInfo;
|
128
124
|
}
|
129
125
|
|
130
|
-
function
|
131
|
-
|
126
|
+
function getInitialFeeInfo()
|
127
|
+
public
|
128
|
+
virtual
|
129
|
+
view
|
130
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
131
|
+
{
|
132
|
+
return _getProductStorage()._feeInfo;
|
132
133
|
}
|
133
134
|
|
134
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
135
|
-
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
136
|
-
}
|
137
135
|
|
138
136
|
function _initializeProduct(
|
139
137
|
address registry,
|
140
138
|
NftId instanceNftId,
|
139
|
+
string memory name,
|
140
|
+
IComponents.ProductInfo memory productInfo,
|
141
|
+
IComponents.FeeInfo memory feeInfo,
|
141
142
|
IAuthorization authorization,
|
142
143
|
address initialOwner,
|
143
|
-
string memory name,
|
144
|
-
address token,
|
145
|
-
bool isInterceptor,
|
146
|
-
address pool,
|
147
|
-
address distribution,
|
148
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
149
144
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
150
145
|
)
|
151
146
|
internal
|
@@ -156,29 +151,23 @@ abstract contract Product is
|
|
156
151
|
registry,
|
157
152
|
instanceNftId,
|
158
153
|
name,
|
159
|
-
token,
|
160
154
|
PRODUCT(),
|
161
155
|
authorization,
|
162
|
-
|
156
|
+
productInfo.isInterceptingPolicyTransfers,
|
163
157
|
initialOwner,
|
164
|
-
registryData,
|
165
158
|
componentData);
|
166
159
|
|
167
160
|
ProductStorage storage $ = _getProductStorage();
|
168
|
-
|
169
|
-
|
170
|
-
$.
|
161
|
+
$._productInfo = productInfo;
|
162
|
+
$._feeInfo = feeInfo;
|
163
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
171
164
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
172
165
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
173
166
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
174
167
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
175
168
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
176
|
-
$._pool = Pool(pool);
|
177
|
-
$._distribution = Distribution(distribution);
|
178
|
-
$._poolNftId = getRegistry().getNftId(pool);
|
179
|
-
$._distributionNftId = getRegistry().getNftId(distribution);
|
180
169
|
|
181
|
-
|
170
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
182
171
|
}
|
183
172
|
|
184
173
|
|
@@ -194,10 +183,14 @@ abstract contract Product is
|
|
194
183
|
|
195
184
|
|
196
185
|
function _createRisk(
|
197
|
-
|
186
|
+
bytes32 id,
|
198
187
|
bytes memory data
|
199
|
-
)
|
200
|
-
|
188
|
+
)
|
189
|
+
internal
|
190
|
+
virtual
|
191
|
+
returns (RiskId riskId)
|
192
|
+
{
|
193
|
+
return _getProductStorage()._riskService.createRisk(
|
201
194
|
id,
|
202
195
|
data
|
203
196
|
);
|
@@ -206,26 +199,38 @@ abstract contract Product is
|
|
206
199
|
function _updateRisk(
|
207
200
|
RiskId id,
|
208
201
|
bytes memory data
|
209
|
-
)
|
210
|
-
|
202
|
+
)
|
203
|
+
internal
|
204
|
+
virtual
|
205
|
+
{
|
206
|
+
_getProductStorage()._riskService.updateRisk(
|
211
207
|
id,
|
212
208
|
data
|
213
209
|
);
|
214
210
|
}
|
215
211
|
|
216
|
-
function
|
212
|
+
function _setRiskLocked(
|
217
213
|
RiskId id,
|
218
|
-
|
219
|
-
)
|
220
|
-
|
214
|
+
bool locked
|
215
|
+
)
|
216
|
+
internal
|
217
|
+
virtual
|
218
|
+
{
|
219
|
+
_getProductStorage()._riskService.setRiskLocked(
|
221
220
|
id,
|
222
|
-
|
221
|
+
locked
|
223
222
|
);
|
224
223
|
}
|
225
224
|
|
226
|
-
|
227
|
-
|
228
|
-
|
225
|
+
function _closeRisk(
|
226
|
+
RiskId id
|
227
|
+
)
|
228
|
+
internal
|
229
|
+
virtual
|
230
|
+
{
|
231
|
+
_getProductStorage()._riskService.closeRisk(
|
232
|
+
id
|
233
|
+
);
|
229
234
|
}
|
230
235
|
|
231
236
|
|
@@ -233,18 +238,21 @@ abstract contract Product is
|
|
233
238
|
address applicationOwner,
|
234
239
|
RiskId riskId,
|
235
240
|
Amount sumInsuredAmount,
|
241
|
+
Amount premiumAmount,
|
236
242
|
Seconds lifetime,
|
237
243
|
NftId bundleNftId,
|
238
244
|
ReferralId referralId,
|
239
245
|
bytes memory applicationData
|
240
246
|
)
|
241
247
|
internal
|
248
|
+
virtual
|
242
249
|
returns (NftId applicationNftId)
|
243
250
|
{
|
244
251
|
return _getProductStorage()._applicationService.create(
|
245
252
|
applicationOwner,
|
246
253
|
riskId,
|
247
254
|
sumInsuredAmount,
|
255
|
+
premiumAmount,
|
248
256
|
lifetime,
|
249
257
|
bundleNftId,
|
250
258
|
referralId,
|
@@ -252,23 +260,26 @@ abstract contract Product is
|
|
252
260
|
);
|
253
261
|
}
|
254
262
|
|
255
|
-
function
|
256
|
-
NftId
|
257
|
-
|
258
|
-
|
263
|
+
function _createPolicy(
|
264
|
+
NftId applicationNftId,
|
265
|
+
Timestamp activateAt,
|
266
|
+
Amount maxPremiumAmount
|
259
267
|
)
|
260
268
|
internal
|
269
|
+
virtual
|
270
|
+
returns (Amount premiumAmount)
|
261
271
|
{
|
262
|
-
_getProductStorage()._policyService.
|
263
|
-
|
264
|
-
|
265
|
-
|
272
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
273
|
+
applicationNftId,
|
274
|
+
activateAt,
|
275
|
+
maxPremiumAmount);
|
266
276
|
}
|
267
277
|
|
268
278
|
function _decline(
|
269
279
|
NftId policyNftId
|
270
280
|
)
|
271
281
|
internal
|
282
|
+
virtual
|
272
283
|
{
|
273
284
|
_getProductStorage()._policyService.decline(
|
274
285
|
policyNftId);
|
@@ -279,9 +290,25 @@ abstract contract Product is
|
|
279
290
|
Timestamp expireAt
|
280
291
|
)
|
281
292
|
internal
|
282
|
-
|
293
|
+
virtual
|
294
|
+
returns (Timestamp expiredAt)
|
283
295
|
{
|
284
|
-
|
296
|
+
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
297
|
+
}
|
298
|
+
|
299
|
+
/// @dev adjust the activation date of the policy.
|
300
|
+
/// The policy must already have an activation date set.
|
301
|
+
/// Allowed values are from the current blocktime to the expiration date of the policy.
|
302
|
+
function _adjustActivation(
|
303
|
+
NftId policyNftId,
|
304
|
+
Timestamp activateAt
|
305
|
+
)
|
306
|
+
internal
|
307
|
+
virtual
|
308
|
+
{
|
309
|
+
_getProductStorage()._policyService.adjustActivation(
|
310
|
+
policyNftId,
|
311
|
+
activateAt);
|
285
312
|
}
|
286
313
|
|
287
314
|
function _collectPremium(
|
@@ -289,6 +316,7 @@ abstract contract Product is
|
|
289
316
|
Timestamp activateAt
|
290
317
|
)
|
291
318
|
internal
|
319
|
+
virtual
|
292
320
|
{
|
293
321
|
_getProductStorage()._policyService.collectPremium(
|
294
322
|
policyNftId,
|
@@ -300,6 +328,7 @@ abstract contract Product is
|
|
300
328
|
Timestamp activateAt
|
301
329
|
)
|
302
330
|
internal
|
331
|
+
virtual
|
303
332
|
{
|
304
333
|
_getProductStorage()._policyService.activate(
|
305
334
|
policyNftId,
|
@@ -310,6 +339,7 @@ abstract contract Product is
|
|
310
339
|
NftId policyNftId
|
311
340
|
)
|
312
341
|
internal
|
342
|
+
virtual
|
313
343
|
{
|
314
344
|
_getProductStorage()._policyService.close(
|
315
345
|
policyNftId);
|
@@ -321,6 +351,7 @@ abstract contract Product is
|
|
321
351
|
bytes memory claimData
|
322
352
|
)
|
323
353
|
internal
|
354
|
+
virtual
|
324
355
|
returns(ClaimId)
|
325
356
|
{
|
326
357
|
return _getProductStorage()._claimService.submit(
|
@@ -329,6 +360,18 @@ abstract contract Product is
|
|
329
360
|
claimData);
|
330
361
|
}
|
331
362
|
|
363
|
+
function _revokeClaim(
|
364
|
+
NftId policyNftId,
|
365
|
+
ClaimId claimId
|
366
|
+
)
|
367
|
+
internal
|
368
|
+
virtual
|
369
|
+
{
|
370
|
+
_getProductStorage()._claimService.revoke(
|
371
|
+
policyNftId,
|
372
|
+
claimId);
|
373
|
+
}
|
374
|
+
|
332
375
|
function _confirmClaim(
|
333
376
|
NftId policyNftId,
|
334
377
|
ClaimId claimId,
|
@@ -336,6 +379,7 @@ abstract contract Product is
|
|
336
379
|
bytes memory data
|
337
380
|
)
|
338
381
|
internal
|
382
|
+
virtual
|
339
383
|
{
|
340
384
|
_getProductStorage()._claimService.confirm(
|
341
385
|
policyNftId,
|
@@ -350,6 +394,7 @@ abstract contract Product is
|
|
350
394
|
bytes memory data
|
351
395
|
)
|
352
396
|
internal
|
397
|
+
virtual
|
353
398
|
{
|
354
399
|
_getProductStorage()._claimService.decline(
|
355
400
|
policyNftId,
|
@@ -362,6 +407,7 @@ abstract contract Product is
|
|
362
407
|
ClaimId claimId
|
363
408
|
)
|
364
409
|
internal
|
410
|
+
virtual
|
365
411
|
{
|
366
412
|
_getProductStorage()._claimService.close(
|
367
413
|
policyNftId,
|
@@ -375,6 +421,7 @@ abstract contract Product is
|
|
375
421
|
bytes memory data
|
376
422
|
)
|
377
423
|
internal
|
424
|
+
virtual
|
378
425
|
returns (PayoutId)
|
379
426
|
{
|
380
427
|
return _getProductStorage()._claimService.createPayout(
|
@@ -384,28 +431,53 @@ abstract contract Product is
|
|
384
431
|
data);
|
385
432
|
}
|
386
433
|
|
434
|
+
function _createPayoutForBeneficiary(
|
435
|
+
NftId policyNftId,
|
436
|
+
ClaimId claimId,
|
437
|
+
Amount amount,
|
438
|
+
address beneficiary,
|
439
|
+
bytes memory data
|
440
|
+
)
|
441
|
+
internal
|
442
|
+
virtual
|
443
|
+
returns (PayoutId)
|
444
|
+
{
|
445
|
+
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
446
|
+
policyNftId,
|
447
|
+
claimId,
|
448
|
+
amount,
|
449
|
+
beneficiary,
|
450
|
+
data);
|
451
|
+
}
|
452
|
+
|
387
453
|
function _processPayout(
|
388
454
|
NftId policyNftId,
|
389
455
|
PayoutId payoutId
|
390
456
|
)
|
391
457
|
internal
|
458
|
+
virtual
|
459
|
+
returns (Amount netPayoutAmount, Amount processingFeeAmount)
|
392
460
|
{
|
393
|
-
_getProductStorage()._claimService.processPayout(
|
461
|
+
(netPayoutAmount, processingFeeAmount) = _getProductStorage()._claimService.processPayout(
|
394
462
|
policyNftId,
|
395
463
|
payoutId);
|
396
464
|
}
|
397
465
|
|
398
|
-
function
|
399
|
-
|
466
|
+
function _cancelPayout(
|
467
|
+
NftId policyNftId,
|
468
|
+
PayoutId payoutId
|
469
|
+
)
|
470
|
+
internal
|
471
|
+
virtual
|
472
|
+
{
|
473
|
+
_getProductStorage()._claimService.cancelPayout(
|
474
|
+
policyNftId,
|
475
|
+
payoutId);
|
400
476
|
}
|
401
477
|
|
402
|
-
function _getProductStorage()
|
478
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
403
479
|
assembly {
|
404
480
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
405
481
|
}
|
406
482
|
}
|
407
|
-
|
408
|
-
function _getProductService() internal view returns (IProductService) {
|
409
|
-
return _getProductStorage()._productService;
|
410
|
-
}
|
411
483
|
}
|
@@ -0,0 +1,190 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IInstance} from "../instance/IInstance.sol";
|
5
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
6
|
+
import {IRisk} from "../instance/module/IRisk.sol";
|
7
|
+
import {IRiskService} from "./IRiskService.sol";
|
8
|
+
|
9
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
10
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
11
|
+
import {ObjectType, COMPONENT, PRODUCT, RISK} from "../type/ObjectType.sol";
|
12
|
+
import {ACTIVE, KEEP_STATE, CLOSED} from "../type/StateId.sol";
|
13
|
+
import {NftId} from "../type/NftId.sol";
|
14
|
+
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
15
|
+
import {StateId} from "../type/StateId.sol";
|
16
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
17
|
+
import {Service} from "../shared/Service.sol";
|
18
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
19
|
+
|
20
|
+
contract RiskService is
|
21
|
+
Service,
|
22
|
+
IRiskService
|
23
|
+
{
|
24
|
+
|
25
|
+
function _initialize(
|
26
|
+
address owner,
|
27
|
+
bytes memory data
|
28
|
+
)
|
29
|
+
internal
|
30
|
+
initializer
|
31
|
+
virtual override
|
32
|
+
{
|
33
|
+
(
|
34
|
+
address authority,
|
35
|
+
address registry
|
36
|
+
) = abi.decode(data, (address, address));
|
37
|
+
|
38
|
+
__Service_init(authority, registry, owner);
|
39
|
+
_registerInterface(type(IRiskService).interfaceId);
|
40
|
+
}
|
41
|
+
|
42
|
+
/// @inheritdoc IRiskService
|
43
|
+
function createRisk(
|
44
|
+
bytes32 id,
|
45
|
+
bytes memory data
|
46
|
+
)
|
47
|
+
external
|
48
|
+
virtual
|
49
|
+
restricted()
|
50
|
+
returns (RiskId riskId)
|
51
|
+
{
|
52
|
+
// checks
|
53
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
54
|
+
|
55
|
+
// effects
|
56
|
+
riskId = RiskIdLib.toRiskId(productNftId, id);
|
57
|
+
IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
|
58
|
+
productNftId: productNftId,
|
59
|
+
createdAt: TimestampLib.blockTimestamp(),
|
60
|
+
data: data});
|
61
|
+
|
62
|
+
instance.getInstanceStore().createRisk(
|
63
|
+
riskId,
|
64
|
+
riskInfo
|
65
|
+
);
|
66
|
+
|
67
|
+
// add risk to RiskSet
|
68
|
+
RiskSet riskSet = instance.getRiskSet();
|
69
|
+
riskSet.add(riskId);
|
70
|
+
|
71
|
+
emit LogRiskServiceRiskCreated(productNftId, riskId);
|
72
|
+
}
|
73
|
+
|
74
|
+
|
75
|
+
function updateRisk(
|
76
|
+
RiskId riskId,
|
77
|
+
bytes memory data
|
78
|
+
)
|
79
|
+
external
|
80
|
+
virtual
|
81
|
+
restricted()
|
82
|
+
{
|
83
|
+
// checks
|
84
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
85
|
+
|
86
|
+
// effects
|
87
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
88
|
+
IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
|
89
|
+
|
90
|
+
if (riskInfo.productNftId != productNftId) {
|
91
|
+
revert ErrorRiskServiceRiskProductMismatch(riskId, riskInfo.productNftId, productNftId);
|
92
|
+
}
|
93
|
+
|
94
|
+
riskInfo.data = data;
|
95
|
+
instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
|
96
|
+
|
97
|
+
emit LogRiskServiceRiskUpdated(productNftId, riskId);
|
98
|
+
}
|
99
|
+
|
100
|
+
|
101
|
+
/// @inheritdoc IRiskService
|
102
|
+
function setRiskLocked(
|
103
|
+
RiskId riskId,
|
104
|
+
bool locked
|
105
|
+
)
|
106
|
+
external
|
107
|
+
virtual
|
108
|
+
restricted()
|
109
|
+
{
|
110
|
+
// checks
|
111
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
112
|
+
|
113
|
+
if (!instance.getRiskSet().hasRisk(productNftId, riskId)) {
|
114
|
+
revert ErrorRiskServiceUnknownRisk(productNftId, riskId);
|
115
|
+
}
|
116
|
+
|
117
|
+
if (instance.getInstanceReader().getRiskState(riskId) != ACTIVE()) {
|
118
|
+
revert ErrorRiskServiceRiskNotActive(productNftId, riskId);
|
119
|
+
}
|
120
|
+
|
121
|
+
if (locked) {
|
122
|
+
instance.getRiskSet().deactivate(riskId);
|
123
|
+
emit LogRiskServiceRiskLocked(productNftId, riskId);
|
124
|
+
} else {
|
125
|
+
instance.getRiskSet().activate(riskId);
|
126
|
+
emit LogRiskServiceRiskUnlocked(productNftId, riskId);
|
127
|
+
}
|
128
|
+
}
|
129
|
+
|
130
|
+
/// @inheritdoc IRiskService
|
131
|
+
function closeRisk(
|
132
|
+
RiskId riskId
|
133
|
+
)
|
134
|
+
external
|
135
|
+
virtual
|
136
|
+
restricted()
|
137
|
+
{
|
138
|
+
// checks
|
139
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
140
|
+
(bool exists, bool active) = instance.getRiskSet().checkRisk(productNftId, riskId);
|
141
|
+
|
142
|
+
if (!exists) {
|
143
|
+
revert ErrorRiskServiceUnknownRisk(productNftId, riskId);
|
144
|
+
}
|
145
|
+
|
146
|
+
if (active) {
|
147
|
+
revert ErrorRiskServiceRiskNotLocked(productNftId, riskId);
|
148
|
+
}
|
149
|
+
|
150
|
+
// effects
|
151
|
+
instance.getInstanceStore().updateRiskState(riskId, CLOSED());
|
152
|
+
|
153
|
+
emit LogRiskServiceRiskClosed(productNftId, riskId);
|
154
|
+
}
|
155
|
+
|
156
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
157
|
+
internal
|
158
|
+
view
|
159
|
+
returns (
|
160
|
+
NftId componentNftId,
|
161
|
+
IInstance instance
|
162
|
+
)
|
163
|
+
{
|
164
|
+
IRegistry.ObjectInfo memory info;
|
165
|
+
address instanceAddress;
|
166
|
+
bool isActive = true;
|
167
|
+
|
168
|
+
if (expectedType != COMPONENT()) {
|
169
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
170
|
+
getRegistry(),
|
171
|
+
msg.sender, // caller
|
172
|
+
expectedType,
|
173
|
+
isActive);
|
174
|
+
} else {
|
175
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
176
|
+
getRegistry(),
|
177
|
+
msg.sender,
|
178
|
+
isActive);
|
179
|
+
}
|
180
|
+
|
181
|
+
// get component nft id and instance
|
182
|
+
componentNftId = info.nftId;
|
183
|
+
instance = IInstance(instanceAddress);
|
184
|
+
}
|
185
|
+
|
186
|
+
|
187
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
188
|
+
return RISK();
|
189
|
+
}
|
190
|
+
}
|