@etherisc/gif-next 0.0.2-888aabe-141 → 0.0.2-88fccb3-776
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 -8
- 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 +496 -255
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +673 -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 +277 -20
- 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 +395 -203
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +143 -19
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +19 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +68 -5
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +161 -476
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +265 -31
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +102 -382
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +473 -287
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +151 -109
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +104 -194
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +318 -90
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +22 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +1445 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2002 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +644 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +376 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1388 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1152 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1612 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +644 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2389 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +644 -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 +236 -39
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +144 -93
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +256 -123
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +737 -327
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +209 -94
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +1064 -341
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +172 -278
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +96 -96
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +827 -690
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +853 -0
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +46 -5
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +16 -5
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +168 -0
- package/artifacts/contracts/instance/module/IBundle.sol/IBundle.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IComponents.sol/IComponents.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IDistribution.sol/IDistribution.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IPolicy.sol/IPolicy.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IRisk.sol/IRisk.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.dbg.json +1 -1
- package/artifacts/contracts/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +133 -350
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +247 -33
- 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 +117 -136
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +69 -11
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +109 -318
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +153 -190
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +122 -88
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +156 -421
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +265 -31
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +336 -209
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +143 -97
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +212 -35
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +120 -212
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +460 -308
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +110 -392
- 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 +673 -552
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +163 -97
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +194 -178
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +100 -90
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +261 -439
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +265 -31
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +415 -234
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +140 -114
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +136 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +308 -16
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +365 -104
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +157 -83
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +245 -233
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +88 -8
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +459 -309
- 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 +141 -99
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +232 -333
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +109 -131
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +253 -431
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +688 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +736 -0
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +59 -16
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +334 -34
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +144 -41
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +4 -0
- package/artifacts/contracts/registry/IRelease.sol/IRelease.json +24 -0
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.json +5 -18
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +540 -95
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +640 -368
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +878 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +109 -292
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +94 -80
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1954 -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 +423 -245
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +66 -8
- 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 +67 -277
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +546 -586
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +132 -124
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +57 -111
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +597 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +80 -100
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +513 -258
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +106 -136
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +36 -0
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +36 -0
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +16 -0
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +15 -47
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +4 -0
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +53 -0
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +98 -318
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +42 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +22 -57
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +19 -141
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +122 -97
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -15
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +57 -111
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +585 -12
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +484 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +172 -0
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +196 -143
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +152 -20
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +274 -391
- 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 +126 -95
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +35 -67
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +205 -168
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +103 -85
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +195 -135
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +82 -36
- 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 +63 -10
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- 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 +98 -37
- 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 +79 -15
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +50 -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/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +23 -4
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +109 -35
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +101 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +71 -70
- 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 +338 -225
- package/contracts/authorization/AccessAdminLib.sol +183 -0
- package/contracts/authorization/AccessManagerCloneable.sol +146 -4
- package/contracts/authorization/Authorization.sol +350 -203
- package/contracts/authorization/IAccess.sol +13 -4
- package/contracts/authorization/IAccessAdmin.sol +69 -35
- package/contracts/authorization/IAuthorization.sol +33 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +20 -28
- package/contracts/distribution/BasicDistributionAuthorization.sol +26 -9
- package/contracts/distribution/Distribution.sol +39 -96
- package/contracts/distribution/DistributionService.sol +205 -108
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +6 -12
- package/contracts/distribution/IDistributionService.sol +40 -22
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +433 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +81 -0
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +133 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +102 -0
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +373 -0
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +42 -38
- package/contracts/instance/IInstance.sol +64 -44
- package/contracts/instance/IInstanceService.sol +27 -31
- package/contracts/instance/Instance.sol +120 -70
- package/contracts/instance/InstanceAdmin.sol +287 -103
- package/contracts/instance/InstanceAuthorizationV3.sol +92 -61
- package/contracts/instance/InstanceReader.sol +288 -43
- package/contracts/instance/InstanceService.sol +207 -191
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/InstanceStore.sol +24 -2
- package/contracts/instance/RiskSet.sol +118 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +11 -4
- package/contracts/instance/base/ObjectSet.sol +31 -33
- package/contracts/instance/base/ObjectSetHelperLib.sol +30 -0
- package/contracts/instance/module/IBundle.sol +6 -5
- package/contracts/instance/module/IComponents.sol +30 -19
- package/contracts/instance/module/IDistribution.sol +21 -9
- package/contracts/instance/module/IPolicy.sol +50 -29
- package/contracts/instance/module/IRisk.sol +5 -0
- package/contracts/mock/Dip.sol +1 -1
- package/contracts/oracle/BasicOracle.sol +1 -4
- package/contracts/oracle/BasicOracleAuthorization.sol +3 -12
- package/contracts/oracle/IOracleComponent.sol +2 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +21 -24
- package/contracts/oracle/OracleService.sol +113 -81
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +37 -28
- package/contracts/pool/BasicPoolAuthorization.sol +36 -9
- package/contracts/pool/BundleService.sol +194 -83
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +31 -22
- package/contracts/pool/IPoolComponent.sol +20 -12
- package/contracts/pool/IPoolService.sol +90 -75
- package/contracts/pool/Pool.sol +145 -131
- package/contracts/pool/PoolLib.sol +216 -0
- package/contracts/pool/PoolService.sol +538 -219
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +87 -43
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +12 -45
- package/contracts/product/BasicProductAuthorization.sol +25 -9
- package/contracts/product/ClaimService.sol +367 -151
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +9 -2
- package/contracts/product/IClaimService.sol +44 -8
- package/contracts/product/IPolicyService.sol +53 -36
- package/contracts/product/IPricingService.sol +11 -10
- package/contracts/product/IProductComponent.sol +27 -7
- package/contracts/product/{IProductService.sol → IRiskService.sol} +8 -8
- package/contracts/product/PolicyService.sol +458 -269
- package/contracts/product/PolicyServiceLib.sol +65 -0
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +69 -60
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +165 -107
- package/contracts/product/RiskService.sol +154 -0
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +72 -40
- package/contracts/registry/IRegistry.sol +64 -28
- package/contracts/registry/IRegistryService.sol +5 -12
- package/contracts/registry/IRelease.sol +26 -0
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +357 -203
- package/contracts/registry/RegistryAdmin.sol +162 -269
- package/contracts/registry/RegistryAuthorization.sol +267 -0
- package/contracts/registry/RegistryService.sol +37 -48
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +253 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +272 -242
- package/contracts/registry/ServiceAuthorizationV3.sol +183 -52
- package/contracts/registry/TokenRegistry.sol +6 -8
- package/contracts/shared/Component.sol +65 -129
- package/contracts/shared/ComponentService.sol +448 -357
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +28 -17
- package/contracts/shared/ContractLib.sol +281 -0
- package/contracts/shared/IComponent.sol +5 -17
- package/contracts/shared/IComponentService.sol +46 -42
- package/contracts/shared/IInstanceLinkedComponent.sol +7 -27
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IPolicyHolder.sol +12 -22
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +11 -3
- package/contracts/shared/InstanceLinkedComponent.sol +81 -37
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +31 -11
- package/contracts/shared/PolicyHolder.sol +17 -57
- package/contracts/shared/Registerable.sol +52 -21
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +15 -32
- package/contracts/shared/TokenHandler.sol +310 -26
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +19 -11
- package/contracts/staking/IStakingService.sol +16 -4
- package/contracts/staking/Staking.sol +103 -71
- package/contracts/staking/{StakeManagerLib.sol → StakingLib.sol} +95 -45
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +18 -21
- package/contracts/staking/StakingService.sol +90 -37
- package/contracts/staking/StakingServiceManager.sol +6 -5
- package/contracts/staking/StakingStore.sol +2 -1
- package/contracts/staking/TargetManagerLib.sol +7 -3
- package/contracts/type/Amount.sol +27 -5
- package/contracts/type/Blocknumber.sol +7 -1
- 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 +57 -34
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +1 -0
- package/contracts/type/RiskId.sol +38 -6
- package/contracts/type/RoleId.sol +23 -15
- package/contracts/type/Seconds.sol +21 -1
- package/contracts/type/Selector.sol +5 -0
- package/contracts/type/StateId.sol +15 -1
- package/contracts/type/Timestamp.sol +10 -5
- package/contracts/type/UFixed.sol +56 -126
- package/contracts/type/Version.sol +54 -5
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +5 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/IModuleAuthorization.sol/IModuleAuthorization.json +0 -290
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.dbg.json +0 -4
- package/artifacts/contracts/authorization/ModuleAuthorization.sol/ModuleAuthorization.json +0 -390
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +0 -4
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +0 -129
- package/artifacts/contracts/product/IProductService.sol/IProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.dbg.json +0 -4
- package/artifacts/contracts/product/ProductService.sol/ProductService.json +0 -708
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -702
- package/artifacts/contracts/shared/ERC165.sol/ERC165.dbg.json +0 -4
- package/artifacts/contracts/shared/ERC165.sol/ERC165.json +0 -73
- 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 -460
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +0 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +0 -10
- package/contracts/authorization/IModuleAuthorization.sol +0 -21
- package/contracts/authorization/ModuleAuthorization.sol +0 -78
- package/contracts/instance/module/IAccess.sol +0 -46
- package/contracts/product/ProductService.sol +0 -99
- package/contracts/product/ProductServiceManager.sol +0 -39
- package/contracts/shared/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
21
|
import {RiskId, RiskIdLib} 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,38 @@ 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
|
+
onlyOwner()
|
52
|
+
returns (NftId componentNftId)
|
53
|
+
{
|
54
|
+
return _getProductStorage()._componentService.registerComponent(component);
|
55
|
+
}
|
56
|
+
|
57
|
+
|
58
|
+
function processFundedClaim(
|
59
|
+
NftId policyNftId,
|
60
|
+
ClaimId claimId,
|
61
|
+
Amount availableAmount
|
62
|
+
)
|
63
|
+
external
|
64
|
+
virtual
|
65
|
+
restricted() // pool service role
|
66
|
+
onlyNftOfType(policyNftId, POLICY())
|
67
|
+
{
|
68
|
+
// default implementation does nothing
|
54
69
|
}
|
55
70
|
|
56
71
|
|
@@ -62,12 +77,13 @@ abstract contract Product is
|
|
62
77
|
NftId bundleNftId,
|
63
78
|
ReferralId referralId
|
64
79
|
)
|
65
|
-
|
80
|
+
public
|
66
81
|
view
|
67
82
|
override
|
83
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
68
84
|
returns (Amount premiumAmount)
|
69
85
|
{
|
70
|
-
IPolicy.
|
86
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
71
87
|
getNftId(),
|
72
88
|
riskId,
|
73
89
|
sumInsuredAmount,
|
@@ -77,14 +93,14 @@ abstract contract Product is
|
|
77
93
|
referralId
|
78
94
|
);
|
79
95
|
|
80
|
-
return
|
96
|
+
return premium.premiumAmount;
|
81
97
|
}
|
82
98
|
|
83
99
|
function calculateNetPremium(
|
84
100
|
Amount sumInsuredAmount,
|
85
|
-
RiskId
|
86
|
-
Seconds
|
87
|
-
bytes memory
|
101
|
+
RiskId,
|
102
|
+
Seconds,
|
103
|
+
bytes memory
|
88
104
|
)
|
89
105
|
external
|
90
106
|
view
|
@@ -96,65 +112,33 @@ abstract contract Product is
|
|
96
112
|
}
|
97
113
|
|
98
114
|
|
99
|
-
function register()
|
100
|
-
external
|
101
|
-
virtual
|
102
|
-
onlyOwner()
|
103
|
-
{
|
104
|
-
_getProductStorage()._componentService.registerProduct();
|
105
|
-
_approveTokenHandler(type(uint256).max);
|
106
|
-
}
|
107
|
-
|
108
|
-
|
109
115
|
function getInitialProductInfo()
|
110
116
|
public
|
111
117
|
virtual
|
112
118
|
view
|
113
119
|
returns (IComponents.ProductInfo memory poolInfo)
|
114
120
|
{
|
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
|
-
});
|
121
|
+
return _getProductStorage()._productInfo;
|
128
122
|
}
|
129
123
|
|
130
|
-
function
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
136
|
-
}
|
137
|
-
|
138
|
-
function withdrawFees(Amount amount)
|
139
|
-
external
|
140
|
-
virtual
|
141
|
-
onlyOwner()
|
142
|
-
returns (Amount withdrawnAmount)
|
124
|
+
function getInitialFeeInfo()
|
125
|
+
public
|
126
|
+
virtual
|
127
|
+
view
|
128
|
+
returns (IComponents.FeeInfo memory feeInfo)
|
143
129
|
{
|
144
|
-
return
|
130
|
+
return _getProductStorage()._feeInfo;
|
145
131
|
}
|
146
132
|
|
133
|
+
|
147
134
|
function _initializeProduct(
|
148
135
|
address registry,
|
149
136
|
NftId instanceNftId,
|
137
|
+
string memory name,
|
138
|
+
IComponents.ProductInfo memory productInfo,
|
139
|
+
IComponents.FeeInfo memory feeInfo,
|
150
140
|
IAuthorization authorization,
|
151
141
|
address initialOwner,
|
152
|
-
string memory name,
|
153
|
-
address token,
|
154
|
-
bool isInterceptor,
|
155
|
-
address pool,
|
156
|
-
address distribution,
|
157
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
158
142
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
159
143
|
)
|
160
144
|
internal
|
@@ -165,29 +149,23 @@ abstract contract Product is
|
|
165
149
|
registry,
|
166
150
|
instanceNftId,
|
167
151
|
name,
|
168
|
-
token,
|
169
152
|
PRODUCT(),
|
170
153
|
authorization,
|
171
|
-
|
154
|
+
productInfo.isInterceptingPolicyTransfers,
|
172
155
|
initialOwner,
|
173
|
-
registryData,
|
174
156
|
componentData);
|
175
157
|
|
176
158
|
ProductStorage storage $ = _getProductStorage();
|
177
|
-
|
178
|
-
|
179
|
-
$.
|
159
|
+
$._productInfo = productInfo;
|
160
|
+
$._feeInfo = feeInfo;
|
161
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
180
162
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
181
163
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
182
164
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
183
165
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
184
166
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
185
|
-
$._pool = Pool(pool);
|
186
|
-
$._distribution = Distribution(distribution);
|
187
|
-
$._poolNftId = getRegistry().getNftId(pool);
|
188
|
-
$._distributionNftId = getRegistry().getNftId(distribution);
|
189
167
|
|
190
|
-
|
168
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
191
169
|
}
|
192
170
|
|
193
171
|
|
@@ -203,10 +181,14 @@ abstract contract Product is
|
|
203
181
|
|
204
182
|
|
205
183
|
function _createRisk(
|
206
|
-
|
184
|
+
bytes32 id,
|
207
185
|
bytes memory data
|
208
|
-
)
|
209
|
-
|
186
|
+
)
|
187
|
+
internal
|
188
|
+
virtual
|
189
|
+
returns (RiskId riskId)
|
190
|
+
{
|
191
|
+
return _getProductStorage()._riskService.createRisk(
|
210
192
|
id,
|
211
193
|
data
|
212
194
|
);
|
@@ -215,8 +197,11 @@ abstract contract Product is
|
|
215
197
|
function _updateRisk(
|
216
198
|
RiskId id,
|
217
199
|
bytes memory data
|
218
|
-
)
|
219
|
-
|
200
|
+
)
|
201
|
+
internal
|
202
|
+
virtual
|
203
|
+
{
|
204
|
+
_getProductStorage()._riskService.updateRisk(
|
220
205
|
id,
|
221
206
|
data
|
222
207
|
);
|
@@ -225,35 +210,36 @@ abstract contract Product is
|
|
225
210
|
function _updateRiskState(
|
226
211
|
RiskId id,
|
227
212
|
StateId state
|
228
|
-
)
|
229
|
-
|
213
|
+
)
|
214
|
+
internal
|
215
|
+
virtual
|
216
|
+
{
|
217
|
+
_getProductStorage()._riskService.updateRiskState(
|
230
218
|
id,
|
231
219
|
state
|
232
220
|
);
|
233
221
|
}
|
234
222
|
|
235
223
|
|
236
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
237
|
-
return getInstance().getInstanceReader().getRiskInfo(id);
|
238
|
-
}
|
239
|
-
|
240
|
-
|
241
224
|
function _createApplication(
|
242
225
|
address applicationOwner,
|
243
226
|
RiskId riskId,
|
244
227
|
Amount sumInsuredAmount,
|
228
|
+
Amount premiumAmount,
|
245
229
|
Seconds lifetime,
|
246
230
|
NftId bundleNftId,
|
247
231
|
ReferralId referralId,
|
248
232
|
bytes memory applicationData
|
249
233
|
)
|
250
234
|
internal
|
235
|
+
virtual
|
251
236
|
returns (NftId applicationNftId)
|
252
237
|
{
|
253
238
|
return _getProductStorage()._applicationService.create(
|
254
239
|
applicationOwner,
|
255
240
|
riskId,
|
256
241
|
sumInsuredAmount,
|
242
|
+
premiumAmount,
|
257
243
|
lifetime,
|
258
244
|
bundleNftId,
|
259
245
|
referralId,
|
@@ -261,16 +247,52 @@ abstract contract Product is
|
|
261
247
|
);
|
262
248
|
}
|
263
249
|
|
264
|
-
function
|
250
|
+
function _createPolicy(
|
251
|
+
NftId applicationNftId,
|
252
|
+
Timestamp activateAt
|
253
|
+
)
|
254
|
+
internal
|
255
|
+
virtual
|
256
|
+
returns (Amount premiumAmount)
|
257
|
+
{
|
258
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
259
|
+
applicationNftId,
|
260
|
+
activateAt);
|
261
|
+
}
|
262
|
+
|
263
|
+
function _decline(
|
264
|
+
NftId policyNftId
|
265
|
+
)
|
266
|
+
internal
|
267
|
+
virtual
|
268
|
+
{
|
269
|
+
_getProductStorage()._policyService.decline(
|
270
|
+
policyNftId);
|
271
|
+
}
|
272
|
+
|
273
|
+
function _expire(
|
274
|
+
NftId policyNftId,
|
275
|
+
Timestamp expireAt
|
276
|
+
)
|
277
|
+
internal
|
278
|
+
virtual
|
279
|
+
returns (Timestamp expiredAt)
|
280
|
+
{
|
281
|
+
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
282
|
+
}
|
283
|
+
|
284
|
+
/// @dev adjust the activation date of the policy.
|
285
|
+
/// The policy must already have an activation date set.
|
286
|
+
/// Allowed values are from the current blocktime to the expiration date of the policy.
|
287
|
+
function _adjustActivation(
|
265
288
|
NftId policyNftId,
|
266
|
-
bool requirePremiumPayment,
|
267
289
|
Timestamp activateAt
|
268
290
|
)
|
269
291
|
internal
|
292
|
+
virtual
|
270
293
|
{
|
271
|
-
_getProductStorage()._policyService.
|
294
|
+
_getProductStorage()._policyService.adjustActivation(
|
272
295
|
policyNftId,
|
273
|
-
requirePremiumPayment,
|
274
296
|
activateAt);
|
275
297
|
}
|
276
298
|
|
@@ -279,6 +301,7 @@ abstract contract Product is
|
|
279
301
|
Timestamp activateAt
|
280
302
|
)
|
281
303
|
internal
|
304
|
+
virtual
|
282
305
|
{
|
283
306
|
_getProductStorage()._policyService.collectPremium(
|
284
307
|
policyNftId,
|
@@ -290,6 +313,7 @@ abstract contract Product is
|
|
290
313
|
Timestamp activateAt
|
291
314
|
)
|
292
315
|
internal
|
316
|
+
virtual
|
293
317
|
{
|
294
318
|
_getProductStorage()._policyService.activate(
|
295
319
|
policyNftId,
|
@@ -300,6 +324,7 @@ abstract contract Product is
|
|
300
324
|
NftId policyNftId
|
301
325
|
)
|
302
326
|
internal
|
327
|
+
virtual
|
303
328
|
{
|
304
329
|
_getProductStorage()._policyService.close(
|
305
330
|
policyNftId);
|
@@ -311,6 +336,7 @@ abstract contract Product is
|
|
311
336
|
bytes memory claimData
|
312
337
|
)
|
313
338
|
internal
|
339
|
+
virtual
|
314
340
|
returns(ClaimId)
|
315
341
|
{
|
316
342
|
return _getProductStorage()._claimService.submit(
|
@@ -319,6 +345,18 @@ abstract contract Product is
|
|
319
345
|
claimData);
|
320
346
|
}
|
321
347
|
|
348
|
+
function _revokeClaim(
|
349
|
+
NftId policyNftId,
|
350
|
+
ClaimId claimId
|
351
|
+
)
|
352
|
+
internal
|
353
|
+
virtual
|
354
|
+
{
|
355
|
+
_getProductStorage()._claimService.revoke(
|
356
|
+
policyNftId,
|
357
|
+
claimId);
|
358
|
+
}
|
359
|
+
|
322
360
|
function _confirmClaim(
|
323
361
|
NftId policyNftId,
|
324
362
|
ClaimId claimId,
|
@@ -326,6 +364,7 @@ abstract contract Product is
|
|
326
364
|
bytes memory data
|
327
365
|
)
|
328
366
|
internal
|
367
|
+
virtual
|
329
368
|
{
|
330
369
|
_getProductStorage()._claimService.confirm(
|
331
370
|
policyNftId,
|
@@ -340,6 +379,7 @@ abstract contract Product is
|
|
340
379
|
bytes memory data
|
341
380
|
)
|
342
381
|
internal
|
382
|
+
virtual
|
343
383
|
{
|
344
384
|
_getProductStorage()._claimService.decline(
|
345
385
|
policyNftId,
|
@@ -352,6 +392,7 @@ abstract contract Product is
|
|
352
392
|
ClaimId claimId
|
353
393
|
)
|
354
394
|
internal
|
395
|
+
virtual
|
355
396
|
{
|
356
397
|
_getProductStorage()._claimService.close(
|
357
398
|
policyNftId,
|
@@ -365,6 +406,7 @@ abstract contract Product is
|
|
365
406
|
bytes memory data
|
366
407
|
)
|
367
408
|
internal
|
409
|
+
virtual
|
368
410
|
returns (PayoutId)
|
369
411
|
{
|
370
412
|
return _getProductStorage()._claimService.createPayout(
|
@@ -374,36 +416,52 @@ abstract contract Product is
|
|
374
416
|
data);
|
375
417
|
}
|
376
418
|
|
419
|
+
function _createPayoutForBeneficiary(
|
420
|
+
NftId policyNftId,
|
421
|
+
ClaimId claimId,
|
422
|
+
Amount amount,
|
423
|
+
address beneficiary,
|
424
|
+
bytes memory data
|
425
|
+
)
|
426
|
+
internal
|
427
|
+
virtual
|
428
|
+
returns (PayoutId)
|
429
|
+
{
|
430
|
+
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
431
|
+
policyNftId,
|
432
|
+
claimId,
|
433
|
+
amount,
|
434
|
+
beneficiary,
|
435
|
+
data);
|
436
|
+
}
|
437
|
+
|
377
438
|
function _processPayout(
|
378
439
|
NftId policyNftId,
|
379
440
|
PayoutId payoutId
|
380
441
|
)
|
381
442
|
internal
|
443
|
+
virtual
|
382
444
|
{
|
383
445
|
_getProductStorage()._claimService.processPayout(
|
384
446
|
policyNftId,
|
385
447
|
payoutId);
|
386
448
|
}
|
387
449
|
|
388
|
-
function
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
function _withdrawFees(Amount amount)
|
450
|
+
function _cancelPayout(
|
451
|
+
NftId policyNftId,
|
452
|
+
PayoutId payoutId
|
453
|
+
)
|
393
454
|
internal
|
394
455
|
virtual
|
395
|
-
returns (Amount withdrawnAmount)
|
396
456
|
{
|
397
|
-
|
457
|
+
_getProductStorage()._claimService.cancelPayout(
|
458
|
+
policyNftId,
|
459
|
+
payoutId);
|
398
460
|
}
|
399
461
|
|
400
|
-
function _getProductStorage()
|
462
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
401
463
|
assembly {
|
402
464
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
403
465
|
}
|
404
466
|
}
|
405
|
-
|
406
|
-
function _getProductService() internal view returns (IProductService) {
|
407
|
-
return _getProductStorage()._productService;
|
408
|
-
}
|
409
467
|
}
|
@@ -0,0 +1,154 @@
|
|
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, PAUSED, KEEP_STATE} 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
|
+
restricted()
|
49
|
+
returns (RiskId riskId)
|
50
|
+
{
|
51
|
+
// checks
|
52
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
53
|
+
|
54
|
+
// effects
|
55
|
+
riskId = RiskIdLib.toRiskId(productNftId, id);
|
56
|
+
IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
|
57
|
+
productNftId: productNftId,
|
58
|
+
createdAt: TimestampLib.blockTimestamp(),
|
59
|
+
data: data});
|
60
|
+
|
61
|
+
instance.getInstanceStore().createRisk(
|
62
|
+
riskId,
|
63
|
+
riskInfo
|
64
|
+
);
|
65
|
+
|
66
|
+
// add risk to RiskSet
|
67
|
+
RiskSet riskSet = instance.getRiskSet();
|
68
|
+
riskSet.add(riskId);
|
69
|
+
}
|
70
|
+
|
71
|
+
|
72
|
+
function updateRisk(
|
73
|
+
RiskId riskId,
|
74
|
+
bytes memory data
|
75
|
+
)
|
76
|
+
external
|
77
|
+
restricted()
|
78
|
+
{
|
79
|
+
// checks
|
80
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
81
|
+
|
82
|
+
// effects
|
83
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
84
|
+
IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
|
85
|
+
|
86
|
+
if (riskInfo.productNftId != productNftId) {
|
87
|
+
revert ErrorRiskServiceRiskProductMismatch(riskId, riskInfo.productNftId, productNftId);
|
88
|
+
}
|
89
|
+
|
90
|
+
riskInfo.data = data;
|
91
|
+
instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
|
92
|
+
}
|
93
|
+
|
94
|
+
|
95
|
+
function updateRiskState(
|
96
|
+
RiskId riskId,
|
97
|
+
StateId state
|
98
|
+
)
|
99
|
+
external
|
100
|
+
restricted()
|
101
|
+
{
|
102
|
+
// checks
|
103
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
104
|
+
|
105
|
+
NftId riskProductNftId = instance.getInstanceReader().getRiskInfo(riskId).productNftId;
|
106
|
+
if (riskProductNftId != productNftId) {
|
107
|
+
revert ErrorRiskServiceRiskProductMismatch(riskId, riskProductNftId, productNftId);
|
108
|
+
}
|
109
|
+
|
110
|
+
// effects
|
111
|
+
instance.getInstanceStore().updateRiskState(riskId, state);
|
112
|
+
|
113
|
+
if (state == ACTIVE()) {
|
114
|
+
instance.getRiskSet().activate(riskId);
|
115
|
+
} else if (state == PAUSED()) {
|
116
|
+
instance.getRiskSet().pause(riskId);
|
117
|
+
}
|
118
|
+
}
|
119
|
+
|
120
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
121
|
+
internal
|
122
|
+
view
|
123
|
+
returns (
|
124
|
+
NftId componentNftId,
|
125
|
+
IInstance instance
|
126
|
+
)
|
127
|
+
{
|
128
|
+
IRegistry.ObjectInfo memory info;
|
129
|
+
address instanceAddress;
|
130
|
+
bool isActive = true;
|
131
|
+
|
132
|
+
if (expectedType != COMPONENT()) {
|
133
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
134
|
+
getRegistry(),
|
135
|
+
msg.sender, // caller
|
136
|
+
expectedType,
|
137
|
+
isActive);
|
138
|
+
} else {
|
139
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
140
|
+
getRegistry(),
|
141
|
+
msg.sender,
|
142
|
+
isActive);
|
143
|
+
}
|
144
|
+
|
145
|
+
// get component nft id and instance
|
146
|
+
componentNftId = info.nftId;
|
147
|
+
instance = IInstance(instanceAddress);
|
148
|
+
}
|
149
|
+
|
150
|
+
|
151
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
152
|
+
return RISK();
|
153
|
+
}
|
154
|
+
}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IVersionable} from "../upgradeability/IVersionable.sol";
|
5
|
+
import {ProxyManager} from "../upgradeability/ProxyManager.sol";
|
6
|
+
import {RiskService} from "./RiskService.sol";
|
7
|
+
|
8
|
+
contract RiskServiceManager is ProxyManager {
|
9
|
+
|
10
|
+
RiskService private _riskService;
|
11
|
+
|
12
|
+
/// @dev initializes proxy manager with product service implementation
|
13
|
+
constructor(
|
14
|
+
address authority,
|
15
|
+
address registry,
|
16
|
+
bytes32 salt
|
17
|
+
)
|
18
|
+
{
|
19
|
+
RiskService svc = new RiskService{salt: salt}();
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
|
+
address(svc),
|
24
|
+
data,
|
25
|
+
salt);
|
26
|
+
|
27
|
+
_riskService = RiskService(address(versionable));
|
28
|
+
}
|
29
|
+
|
30
|
+
//--- view functions ----------------------------------------------------//
|
31
|
+
function getRiskService()
|
32
|
+
external
|
33
|
+
view
|
34
|
+
returns (RiskService riskService)
|
35
|
+
{
|
36
|
+
return _riskService;
|
37
|
+
}
|
38
|
+
|
39
|
+
}
|