@etherisc/gif-next 0.0.2-d437d8d-974 → 0.0.2-d43ca2d-657
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +27 -6
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +1007 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +4 -0
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +744 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +4 -0
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +791 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +166 -59
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/IAccessManagedChecker.json +24 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +233 -5
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +67 -11
- 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 +97 -18
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +40 -3
- 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 +192 -212
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +82 -22
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +132 -128
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +196 -95
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +142 -69
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +119 -110
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +78 -2
- 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 +1475 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +2025 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +470 -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 +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +232 -164
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +470 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +175 -151
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +321 -183
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +502 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +632 -231
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +470 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +147 -42
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +130 -61
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +105 -103
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +182 -85
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +312 -135
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +58 -85
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +525 -84
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +134 -157
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +110 -49
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +207 -116
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +4 -0
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +810 -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 +2 -2
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- 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 +151 -171
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +84 -24
- 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 +113 -104
- 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 +127 -123
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +156 -81
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +130 -45
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +146 -142
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +114 -22
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +161 -156
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +124 -75
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +74 -35
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +133 -135
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +298 -187
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +146 -153
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +421 -264
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +146 -49
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +135 -54
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +106 -45
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +186 -136
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +82 -22
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +328 -131
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +146 -69
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +89 -9
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +206 -10
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +154 -21
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +105 -52
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +172 -117
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +55 -2
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +264 -130
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +140 -63
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +185 -115
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +123 -54
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +182 -132
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +117 -63
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +115 -42
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +98 -17
- 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 +142 -53
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +257 -254
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +112 -183
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +102 -37
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +1795 -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 +406 -250
- 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 +3 -3
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +105 -83
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +493 -480
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +139 -76
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +60 -2
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +454 -5
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +24 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.json +30 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +40 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +92 -65
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +448 -260
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +113 -104
- 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 +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +148 -0
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +55 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +126 -122
- 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 +18 -2
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -3
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +152 -38
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +60 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +388 -35
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +4 -0
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +395 -0
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +88 -24
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +110 -101
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +55 -23
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +3 -3
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +192 -171
- 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 +127 -53
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +7 -12
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +103 -62
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +106 -41
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +145 -104
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +3 -3
- 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 +33 -9
- 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 +3 -3
- package/artifacts/contracts/type/Key32.sol/Key32Lib.dbg.json +1 -1
- package/artifacts/contracts/type/Key32.sol/Key32Lib.json +2 -2
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.dbg.json +4 -0
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +33 -0
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +23 -4
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/NftIdSet.sol/LibNftIdSet.json +2 -2
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/ObjectType.sol/ObjectTypeLib.json +2 -2
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +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 +118 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +3 -3
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- 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 +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +16 -3
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -21
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +47 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +79 -27
- 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 +195 -128
- package/contracts/authorization/AccessManagerCloneable.sol +136 -3
- package/contracts/authorization/Authorization.sol +111 -39
- package/contracts/authorization/IAccess.sol +1 -0
- package/contracts/authorization/IAccessAdmin.sol +10 -5
- package/contracts/authorization/IAuthorization.sol +13 -7
- package/contracts/authorization/IServiceAuthorization.sol +3 -1
- package/contracts/authorization/ServiceAuthorization.sol +26 -10
- package/contracts/distribution/BasicDistribution.sol +8 -7
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +32 -40
- package/contracts/distribution/DistributionService.sol +86 -65
- package/contracts/distribution/DistributionServiceManager.sol +6 -6
- package/contracts/distribution/IDistributionComponent.sol +1 -1
- package/contracts/distribution/IDistributionService.sol +5 -6
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +90 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +35 -0
- package/contracts/examples/fire/FireProduct.sol +436 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +45 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +11 -4
- package/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +4 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +37 -6
- package/contracts/examples/unpermissioned/SimplePoolAuthorization.sol +28 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +38 -23
- package/contracts/examples/unpermissioned/SimpleProductAuthorization.sol +28 -0
- package/contracts/instance/BundleSet.sol +38 -34
- package/contracts/instance/IInstance.sol +12 -9
- package/contracts/instance/IInstanceService.sol +9 -29
- package/contracts/instance/Instance.sol +40 -34
- package/contracts/instance/InstanceAdmin.sol +114 -73
- package/contracts/instance/InstanceAuthorizationV3.sol +51 -32
- package/contracts/instance/InstanceReader.sol +171 -20
- package/contracts/instance/InstanceService.sol +86 -149
- package/contracts/instance/InstanceServiceManager.sol +6 -7
- package/contracts/instance/RiskSet.sol +117 -0
- package/contracts/instance/base/ObjectCounter.sol +1 -2
- package/contracts/instance/base/ObjectLifecycle.sol +2 -1
- package/contracts/instance/base/ObjectSet.sol +24 -25
- package/contracts/instance/module/IComponents.sol +10 -6
- package/contracts/instance/module/IPolicy.sol +4 -3
- package/contracts/instance/module/IRisk.sol +3 -0
- package/contracts/oracle/BasicOracle.sol +0 -1
- package/contracts/oracle/IOracleService.sol +2 -1
- package/contracts/oracle/Oracle.sol +5 -16
- package/contracts/oracle/OracleService.sol +110 -80
- package/contracts/oracle/OracleServiceManager.sol +6 -6
- package/contracts/pool/BasicPool.sol +33 -24
- package/contracts/pool/BasicPoolAuthorization.sol +12 -2
- package/contracts/pool/BundleService.sol +74 -87
- package/contracts/pool/BundleServiceManager.sol +6 -6
- package/contracts/pool/IBundleService.sol +2 -15
- package/contracts/pool/IPoolComponent.sol +19 -15
- package/contracts/pool/IPoolService.sol +30 -37
- package/contracts/pool/Pool.sol +141 -122
- package/contracts/pool/PoolService.sol +265 -159
- package/contracts/pool/PoolServiceManager.sol +4 -4
- package/contracts/product/ApplicationService.sol +32 -21
- package/contracts/product/ApplicationServiceManager.sol +4 -4
- package/contracts/product/BasicProduct.sol +8 -12
- package/contracts/product/BasicProductAuthorization.sol +1 -3
- package/contracts/product/ClaimService.sol +298 -127
- package/contracts/product/ClaimServiceManager.sol +4 -4
- package/contracts/product/IApplicationService.sol +5 -2
- package/contracts/product/IClaimService.sol +16 -2
- package/contracts/product/IPolicyService.sol +25 -10
- package/contracts/product/IPricingService.sol +9 -9
- package/contracts/product/IProductComponent.sol +23 -3
- package/contracts/product/PolicyService.sol +296 -198
- package/contracts/product/PolicyServiceManager.sol +4 -4
- package/contracts/product/PricingService.sol +14 -14
- package/contracts/product/PricingServiceManager.sol +4 -4
- package/contracts/product/Product.sol +100 -74
- package/contracts/product/RiskService.sol +79 -25
- package/contracts/product/RiskServiceManager.sol +4 -4
- package/contracts/registry/ChainNft.sol +10 -11
- package/contracts/registry/IRegistry.sol +14 -18
- 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 +32 -8
- package/contracts/registry/RegistryAdmin.sol +121 -241
- package/contracts/registry/RegistryService.sol +36 -47
- package/contracts/registry/RegistryServiceManager.sol +3 -3
- package/contracts/registry/ReleaseAdmin.sol +245 -0
- package/contracts/registry/ReleaseLifecycle.sol +8 -3
- package/contracts/registry/ReleaseRegistry.sol +257 -237
- package/contracts/registry/ServiceAuthorizationV3.sol +93 -50
- package/contracts/registry/TokenRegistry.sol +5 -7
- package/contracts/shared/Component.sol +67 -109
- package/contracts/shared/ComponentService.sol +381 -332
- package/contracts/shared/ComponentServiceManager.sol +8 -5
- package/contracts/shared/ComponentVerifyingService.sol +27 -16
- package/contracts/shared/ContractLib.sol +223 -9
- package/contracts/shared/IComponent.sol +8 -17
- package/contracts/shared/IComponentService.sol +45 -37
- package/contracts/shared/IInstanceLinkedComponent.sol +3 -22
- package/contracts/shared/ILifecycle.sol +3 -1
- package/contracts/shared/INftOwnable.sol +2 -0
- package/contracts/shared/IRegisterable.sol +23 -1
- package/contracts/shared/IService.sol +3 -5
- package/contracts/shared/InstanceLinkedComponent.sol +68 -43
- package/contracts/shared/KeyValueStore.sol +1 -1
- package/contracts/shared/Lifecycle.sol +15 -4
- package/contracts/shared/NftOwnable.sol +26 -6
- package/contracts/shared/PolicyHolder.sol +5 -1
- package/contracts/shared/Registerable.sol +53 -19
- package/contracts/shared/RegistryLinked.sol +7 -13
- package/contracts/shared/Service.sol +13 -30
- package/contracts/shared/TokenHandler.sol +316 -66
- package/contracts/shared/TokenHandlerDeployerLib.sol +10 -2
- package/contracts/staking/IStaking.sol +9 -4
- package/contracts/staking/IStakingService.sol +0 -3
- package/contracts/staking/Staking.sol +64 -36
- package/contracts/staking/StakingManager.sol +8 -6
- package/contracts/staking/StakingReader.sol +12 -5
- package/contracts/staking/StakingService.sol +56 -24
- package/contracts/staking/StakingServiceManager.sol +2 -2
- package/contracts/type/Amount.sol +15 -0
- package/contracts/type/ClaimId.sol +6 -1
- 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 +11 -0
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/RiskId.sol +35 -4
- package/contracts/type/RoleId.sol +4 -13
- package/contracts/type/StateId.sol +14 -1
- package/contracts/type/Timestamp.sol +0 -5
- package/contracts/type/UFixed.sol +13 -119
- package/contracts/type/Version.sol +15 -5
- package/contracts/upgradeability/ProxyManager.sol +68 -34
- package/contracts/upgradeability/Versionable.sol +2 -2
- package/package.json +4 -3
- 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/shared/InitializableCustom.sol/InitializableCustom.dbg.json +0 -4
- package/artifacts/contracts/shared/InitializableCustom.sol/InitializableCustom.json +0 -39
- 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/shared/InitializableCustom.sol +0 -177
@@ -12,14 +12,14 @@ contract PolicyServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with product service implementation
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
PolicyService svc = new PolicyService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(svc),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -9,7 +9,7 @@ import {NftId} from "../type/NftId.sol";
|
|
9
9
|
import {Fee} from "../type/Fee.sol";
|
10
10
|
import {ReferralId} from "../type/Referral.sol";
|
11
11
|
import {RiskId} from "../type/RiskId.sol";
|
12
|
-
import {PRODUCT, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
12
|
+
import {PRODUCT, BUNDLE, DISTRIBUTION, PRICE} from "../type/ObjectType.sol";
|
13
13
|
import {IRegistry} from "../registry/IRegistry.sol";
|
14
14
|
|
15
15
|
import {IProductComponent} from "./IProductComponent.sol";
|
@@ -31,11 +31,8 @@ contract PricingService is
|
|
31
31
|
ComponentVerifyingService,
|
32
32
|
IPricingService
|
33
33
|
{
|
34
|
-
using UFixedLib for UFixed;
|
35
|
-
|
36
34
|
IDistributionService internal _distributionService;
|
37
35
|
|
38
|
-
|
39
36
|
function _initialize(
|
40
37
|
address owner,
|
41
38
|
bytes memory data
|
@@ -45,15 +42,15 @@ contract PricingService is
|
|
45
42
|
initializer()
|
46
43
|
{
|
47
44
|
(
|
48
|
-
address
|
49
|
-
|
50
|
-
|
51
|
-
) = abi.decode(data, (address, address, address));
|
45
|
+
address authority,
|
46
|
+
address registry
|
47
|
+
) = abi.decode(data, (address, address));
|
52
48
|
|
53
|
-
|
54
|
-
_registerInterface(type(IPricingService).interfaceId);
|
49
|
+
__Service_init(authority, registry, owner);
|
55
50
|
|
56
51
|
_distributionService = IDistributionService(_getServiceAddress(DISTRIBUTION()));
|
52
|
+
|
53
|
+
_registerInterface(type(IPricingService).interfaceId);
|
57
54
|
}
|
58
55
|
|
59
56
|
/// @dev calculates the premium amount for the specified attributes
|
@@ -74,6 +71,9 @@ contract PricingService is
|
|
74
71
|
IPolicy.PremiumInfo memory premium
|
75
72
|
)
|
76
73
|
{
|
74
|
+
_checkNftType(productNftId, PRODUCT());
|
75
|
+
_checkNftType(bundleNftId, BUNDLE());
|
76
|
+
|
77
77
|
InstanceReader reader;
|
78
78
|
Amount netPremiumAmount;
|
79
79
|
|
@@ -102,7 +102,7 @@ contract PricingService is
|
|
102
102
|
|
103
103
|
IBundle.BundleInfo memory bundleInfo = reader.getBundleInfo(bundleNftId);
|
104
104
|
if(bundleInfo.poolNftId != productInfo.poolNftId) {
|
105
|
-
revert
|
105
|
+
revert ErrorPricingServiceBundlePoolMismatch(bundleNftId, bundleInfo.poolNftId, productInfo.poolNftId);
|
106
106
|
}
|
107
107
|
|
108
108
|
// calculate fixed fees for product, pool, bundle
|
@@ -139,7 +139,7 @@ contract PricingService is
|
|
139
139
|
}
|
140
140
|
|
141
141
|
if (premium.distributionOwnerFeeFixAmount.toInt() < productInfo.minDistributionOwnerFee.fixedFee) {
|
142
|
-
revert
|
142
|
+
revert ErrorPricingServiceFeeCalculationMismatch(
|
143
143
|
premium.distributionFeeFixAmount,
|
144
144
|
premium.distributionFeeVarAmount,
|
145
145
|
premium.distributionOwnerFeeFixAmount,
|
@@ -150,7 +150,7 @@ contract PricingService is
|
|
150
150
|
}
|
151
151
|
|
152
152
|
if ((premium.distributionFeeVarAmount) != (premium.discountAmount + premium.distributionOwnerFeeVarAmount + premium.commissionAmount)) {
|
153
|
-
revert
|
153
|
+
revert ErrorPricingServiceFeeCalculationMismatch(
|
154
154
|
premium.distributionFeeFixAmount,
|
155
155
|
premium.distributionFeeVarAmount,
|
156
156
|
premium.distributionOwnerFeeFixAmount,
|
@@ -240,7 +240,7 @@ contract PricingService is
|
|
240
240
|
{
|
241
241
|
|
242
242
|
// if the referral is not valid, then the distribution owner gets everything
|
243
|
-
if (! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
243
|
+
if (productInfo.distributionNftId.eqz() || ! _distributionService.referralIsValid(productInfo.distributionNftId, referralId)) {
|
244
244
|
premium.distributionOwnerFeeFixAmount = premium.distributionFeeFixAmount;
|
245
245
|
premium.distributionOwnerFeeVarAmount = premium.distributionFeeVarAmount;
|
246
246
|
premium.premiumAmount = premium.fullPremiumAmount;
|
@@ -12,14 +12,14 @@ contract PricingServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with pricing service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address
|
15
|
+
address registry,
|
16
16
|
bytes32 salt
|
17
17
|
)
|
18
|
-
ProxyManager(registryAddress)
|
19
18
|
{
|
20
19
|
PricingService pricingSrv = new PricingService{salt: salt}();
|
21
|
-
bytes memory data = abi.encode(
|
22
|
-
IVersionable versionable =
|
20
|
+
bytes memory data = abi.encode(authority, registry);
|
21
|
+
IVersionable versionable = initialize(
|
22
|
+
registry,
|
23
23
|
address(pricingSrv),
|
24
24
|
data,
|
25
25
|
salt);
|
@@ -3,20 +3,23 @@ pragma solidity ^0.8.20;
|
|
3
3
|
|
4
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
5
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
6
|
-
import {
|
6
|
+
import {IComponent} from "../shared/IComponent.sol";
|
7
7
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
8
8
|
import {IRisk} from "../instance/module/IRisk.sol";
|
9
9
|
import {IApplicationService} from "./IApplicationService.sol";
|
10
10
|
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
11
11
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
12
14
|
import {IPolicyService} from "./IPolicyService.sol";
|
13
15
|
import {IRiskService} from "./IRiskService.sol";
|
14
16
|
import {IClaimService} from "./IClaimService.sol";
|
15
17
|
import {IPricingService} from "./IPricingService.sol";
|
16
18
|
import {IProductComponent} from "./IProductComponent.sol";
|
17
|
-
import {NftId} from "../type/NftId.sol";
|
19
|
+
import {NftId, NftIdLib} from "../type/NftId.sol";
|
20
|
+
import {ObjectType, COMPONENT, DISTRIBUTION, ORACLE, POOL, PRODUCT, BUNDLE, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
18
21
|
import {PayoutId} from "../type/PayoutId.sol";
|
19
|
-
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE } from "../type/ObjectType.sol";
|
22
|
+
import {COMPONENT, PRODUCT, APPLICATION, POLICY, CLAIM, PRICE, BUNDLE, RISK } from "../type/ObjectType.sol";
|
20
23
|
import {ReferralId} from "../type/Referral.sol";
|
21
24
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
22
25
|
import {Seconds} from "../type/Seconds.sol";
|
@@ -25,8 +28,9 @@ import {Timestamp} from "../type/Timestamp.sol";
|
|
25
28
|
|
26
29
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
27
30
|
import {IComponents} from "../instance/module/IComponents.sol";
|
28
|
-
import {
|
29
|
-
import {
|
31
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
+
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
30
34
|
|
31
35
|
abstract contract Product is
|
32
36
|
InstanceLinkedComponent,
|
@@ -36,16 +40,37 @@ abstract contract Product is
|
|
36
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
37
41
|
|
38
42
|
struct ProductStorage {
|
43
|
+
IComponents.ProductInfo _productInfo;
|
44
|
+
IComponentService _componentService;
|
39
45
|
IRiskService _riskService;
|
40
46
|
IApplicationService _applicationService;
|
41
47
|
IPolicyService _policyService;
|
42
48
|
IClaimService _claimService;
|
43
49
|
IPricingService _pricingService;
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
50
|
+
}
|
51
|
+
|
52
|
+
|
53
|
+
function registerComponent(address component)
|
54
|
+
external
|
55
|
+
virtual
|
56
|
+
onlyOwner()
|
57
|
+
returns (NftId componentNftId)
|
58
|
+
{
|
59
|
+
return _getProductStorage()._componentService.registerComponent(component);
|
60
|
+
}
|
61
|
+
|
62
|
+
|
63
|
+
function processFundedClaim(
|
64
|
+
NftId policyNftId,
|
65
|
+
ClaimId claimId,
|
66
|
+
Amount availableAmount
|
67
|
+
)
|
68
|
+
external
|
69
|
+
virtual
|
70
|
+
restricted() // pool service role
|
71
|
+
onlyNftOfType(policyNftId, POLICY())
|
72
|
+
{
|
73
|
+
// default implementation does nothing
|
49
74
|
}
|
50
75
|
|
51
76
|
|
@@ -60,6 +85,7 @@ abstract contract Product is
|
|
60
85
|
public
|
61
86
|
view
|
62
87
|
override
|
88
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
63
89
|
returns (Amount premiumAmount)
|
64
90
|
{
|
65
91
|
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
@@ -91,57 +117,24 @@ abstract contract Product is
|
|
91
117
|
}
|
92
118
|
|
93
119
|
|
94
|
-
function register()
|
95
|
-
external
|
96
|
-
virtual
|
97
|
-
onlyOwner()
|
98
|
-
{
|
99
|
-
_getProductStorage()._componentService.registerProduct();
|
100
|
-
_approveTokenHandler(type(uint256).max);
|
101
|
-
}
|
102
|
-
|
103
|
-
|
104
120
|
function getInitialProductInfo()
|
105
121
|
public
|
106
122
|
virtual
|
107
123
|
view
|
108
124
|
returns (IComponents.ProductInfo memory poolInfo)
|
109
125
|
{
|
110
|
-
|
111
|
-
|
112
|
-
return IComponents.ProductInfo({
|
113
|
-
distributionNftId: $._distributionNftId,
|
114
|
-
poolNftId: $._poolNftId,
|
115
|
-
productFee: FeeLib.zero(),
|
116
|
-
processingFee: FeeLib.zero(),
|
117
|
-
distributionFee: FeeLib.zero(),
|
118
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
119
|
-
poolFee: FeeLib.zero(),
|
120
|
-
stakingFee: FeeLib.zero(),
|
121
|
-
performanceFee: FeeLib.zero()
|
122
|
-
});
|
126
|
+
return _getProductStorage()._productInfo;
|
123
127
|
}
|
124
128
|
|
125
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
126
|
-
return getRegistry().getNftIdForAddress(address(_getProductStorage()._pool));
|
127
|
-
}
|
128
|
-
|
129
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
130
|
-
return getRegistry().getNftIdForAddress(address(_getProductStorage()._distribution));
|
131
|
-
}
|
132
129
|
|
133
130
|
function _initializeProduct(
|
134
131
|
address registry,
|
135
132
|
NftId instanceNftId,
|
136
|
-
IAuthorization authorization,
|
137
|
-
address initialOwner,
|
138
133
|
string memory name,
|
139
134
|
address token,
|
140
|
-
|
141
|
-
|
142
|
-
address
|
143
|
-
// add NftId [] oracleNftIds (#527)
|
144
|
-
bytes memory registryData, // writeonly data that will saved in the object info record of the registry
|
135
|
+
IComponents.ProductInfo memory productInfo,
|
136
|
+
IAuthorization authorization,
|
137
|
+
address initialOwner,
|
145
138
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
146
139
|
)
|
147
140
|
internal
|
@@ -155,24 +148,18 @@ abstract contract Product is
|
|
155
148
|
token,
|
156
149
|
PRODUCT(),
|
157
150
|
authorization,
|
158
|
-
|
151
|
+
productInfo.isInterceptingPolicyTransfers,
|
159
152
|
initialOwner,
|
160
|
-
registryData,
|
161
153
|
componentData);
|
162
154
|
|
163
155
|
ProductStorage storage $ = _getProductStorage();
|
164
|
-
|
165
|
-
|
166
|
-
$._riskService = IRiskService(_getServiceAddress(PRODUCT()));
|
156
|
+
$._productInfo = productInfo;
|
157
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
167
158
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
168
159
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
169
160
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
170
161
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
171
162
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
172
|
-
$._pool = Pool(pool);
|
173
|
-
$._distribution = Distribution(distribution);
|
174
|
-
$._poolNftId = getRegistry().getNftIdForAddress(pool);
|
175
|
-
$._distributionNftId = getRegistry().getNftIdForAddress(distribution);
|
176
163
|
|
177
164
|
_registerInterface(type(IProductComponent).interfaceId);
|
178
165
|
}
|
@@ -192,8 +179,11 @@ abstract contract Product is
|
|
192
179
|
function _createRisk(
|
193
180
|
RiskId id,
|
194
181
|
bytes memory data
|
195
|
-
)
|
196
|
-
|
182
|
+
)
|
183
|
+
internal
|
184
|
+
virtual
|
185
|
+
{
|
186
|
+
_getProductStorage()._riskService.createRisk(
|
197
187
|
id,
|
198
188
|
data
|
199
189
|
);
|
@@ -202,8 +192,11 @@ abstract contract Product is
|
|
202
192
|
function _updateRisk(
|
203
193
|
RiskId id,
|
204
194
|
bytes memory data
|
205
|
-
)
|
206
|
-
|
195
|
+
)
|
196
|
+
internal
|
197
|
+
virtual
|
198
|
+
{
|
199
|
+
_getProductStorage()._riskService.updateRisk(
|
207
200
|
id,
|
208
201
|
data
|
209
202
|
);
|
@@ -212,19 +205,17 @@ abstract contract Product is
|
|
212
205
|
function _updateRiskState(
|
213
206
|
RiskId id,
|
214
207
|
StateId state
|
215
|
-
)
|
216
|
-
|
208
|
+
)
|
209
|
+
internal
|
210
|
+
virtual
|
211
|
+
{
|
212
|
+
_getProductStorage()._riskService.updateRiskState(
|
217
213
|
id,
|
218
214
|
state
|
219
215
|
);
|
220
216
|
}
|
221
217
|
|
222
218
|
|
223
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
224
|
-
return getInstance().getInstanceReader().getRiskInfo(id);
|
225
|
-
}
|
226
|
-
|
227
|
-
|
228
219
|
function _createApplication(
|
229
220
|
address applicationOwner,
|
230
221
|
RiskId riskId,
|
@@ -236,6 +227,7 @@ abstract contract Product is
|
|
236
227
|
bytes memory applicationData
|
237
228
|
)
|
238
229
|
internal
|
230
|
+
virtual
|
239
231
|
returns (NftId applicationNftId)
|
240
232
|
{
|
241
233
|
return _getProductStorage()._applicationService.create(
|
@@ -255,8 +247,10 @@ abstract contract Product is
|
|
255
247
|
Timestamp activateAt
|
256
248
|
)
|
257
249
|
internal
|
250
|
+
virtual
|
251
|
+
returns (Amount premiumAmount)
|
258
252
|
{
|
259
|
-
_getProductStorage()._policyService.createPolicy(
|
253
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
260
254
|
applicationNftId,
|
261
255
|
activateAt);
|
262
256
|
}
|
@@ -265,6 +259,7 @@ abstract contract Product is
|
|
265
259
|
NftId policyNftId
|
266
260
|
)
|
267
261
|
internal
|
262
|
+
virtual
|
268
263
|
{
|
269
264
|
_getProductStorage()._policyService.decline(
|
270
265
|
policyNftId);
|
@@ -275,6 +270,7 @@ abstract contract Product is
|
|
275
270
|
Timestamp expireAt
|
276
271
|
)
|
277
272
|
internal
|
273
|
+
virtual
|
278
274
|
returns (Timestamp expiredAt)
|
279
275
|
{
|
280
276
|
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
@@ -285,6 +281,7 @@ abstract contract Product is
|
|
285
281
|
Timestamp activateAt
|
286
282
|
)
|
287
283
|
internal
|
284
|
+
virtual
|
288
285
|
{
|
289
286
|
_getProductStorage()._policyService.collectPremium(
|
290
287
|
policyNftId,
|
@@ -296,6 +293,7 @@ abstract contract Product is
|
|
296
293
|
Timestamp activateAt
|
297
294
|
)
|
298
295
|
internal
|
296
|
+
virtual
|
299
297
|
{
|
300
298
|
_getProductStorage()._policyService.activate(
|
301
299
|
policyNftId,
|
@@ -306,6 +304,7 @@ abstract contract Product is
|
|
306
304
|
NftId policyNftId
|
307
305
|
)
|
308
306
|
internal
|
307
|
+
virtual
|
309
308
|
{
|
310
309
|
_getProductStorage()._policyService.close(
|
311
310
|
policyNftId);
|
@@ -317,6 +316,7 @@ abstract contract Product is
|
|
317
316
|
bytes memory claimData
|
318
317
|
)
|
319
318
|
internal
|
319
|
+
virtual
|
320
320
|
returns(ClaimId)
|
321
321
|
{
|
322
322
|
return _getProductStorage()._claimService.submit(
|
@@ -325,6 +325,18 @@ abstract contract Product is
|
|
325
325
|
claimData);
|
326
326
|
}
|
327
327
|
|
328
|
+
function _revokeClaim(
|
329
|
+
NftId policyNftId,
|
330
|
+
ClaimId claimId
|
331
|
+
)
|
332
|
+
internal
|
333
|
+
virtual
|
334
|
+
{
|
335
|
+
_getProductStorage()._claimService.revoke(
|
336
|
+
policyNftId,
|
337
|
+
claimId);
|
338
|
+
}
|
339
|
+
|
328
340
|
function _confirmClaim(
|
329
341
|
NftId policyNftId,
|
330
342
|
ClaimId claimId,
|
@@ -332,6 +344,7 @@ abstract contract Product is
|
|
332
344
|
bytes memory data
|
333
345
|
)
|
334
346
|
internal
|
347
|
+
virtual
|
335
348
|
{
|
336
349
|
_getProductStorage()._claimService.confirm(
|
337
350
|
policyNftId,
|
@@ -346,6 +359,7 @@ abstract contract Product is
|
|
346
359
|
bytes memory data
|
347
360
|
)
|
348
361
|
internal
|
362
|
+
virtual
|
349
363
|
{
|
350
364
|
_getProductStorage()._claimService.decline(
|
351
365
|
policyNftId,
|
@@ -358,6 +372,7 @@ abstract contract Product is
|
|
358
372
|
ClaimId claimId
|
359
373
|
)
|
360
374
|
internal
|
375
|
+
virtual
|
361
376
|
{
|
362
377
|
_getProductStorage()._claimService.close(
|
363
378
|
policyNftId,
|
@@ -371,6 +386,7 @@ abstract contract Product is
|
|
371
386
|
bytes memory data
|
372
387
|
)
|
373
388
|
internal
|
389
|
+
virtual
|
374
390
|
returns (PayoutId)
|
375
391
|
{
|
376
392
|
return _getProductStorage()._claimService.createPayout(
|
@@ -388,6 +404,7 @@ abstract contract Product is
|
|
388
404
|
bytes memory data
|
389
405
|
)
|
390
406
|
internal
|
407
|
+
virtual
|
391
408
|
returns (PayoutId)
|
392
409
|
{
|
393
410
|
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
@@ -403,23 +420,32 @@ abstract contract Product is
|
|
403
420
|
PayoutId payoutId
|
404
421
|
)
|
405
422
|
internal
|
423
|
+
virtual
|
406
424
|
{
|
407
425
|
_getProductStorage()._claimService.processPayout(
|
408
426
|
policyNftId,
|
409
427
|
payoutId);
|
410
428
|
}
|
411
429
|
|
412
|
-
function
|
430
|
+
function _cancelPayout(
|
431
|
+
NftId policyNftId,
|
432
|
+
PayoutId payoutId
|
433
|
+
)
|
434
|
+
internal
|
435
|
+
virtual
|
436
|
+
{
|
437
|
+
_getProductStorage()._claimService.cancelPayout(
|
438
|
+
policyNftId,
|
439
|
+
payoutId);
|
440
|
+
}
|
441
|
+
|
442
|
+
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
413
443
|
return RiskIdLib.toRiskId(riskName);
|
414
444
|
}
|
415
445
|
|
416
|
-
function _getProductStorage()
|
446
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
417
447
|
assembly {
|
418
448
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
419
449
|
}
|
420
450
|
}
|
421
|
-
|
422
|
-
function _getRiskService() internal view returns (IRiskService) {
|
423
|
-
return _getProductStorage()._riskService;
|
424
|
-
}
|
425
451
|
}
|
@@ -4,25 +4,26 @@ pragma solidity ^0.8.20;
|
|
4
4
|
import {IInstance} from "../instance/IInstance.sol";
|
5
5
|
import {IInstanceService} from "../instance/IInstanceService.sol";
|
6
6
|
import {IPoolService} from "../pool/PoolService.sol";
|
7
|
-
import {
|
7
|
+
import {IRegistry} from "../registry/IRegistry.sol";
|
8
8
|
import {IRegistryService} from "../registry/IRegistryService.sol";
|
9
9
|
import {IRisk} from "../instance/module/IRisk.sol";
|
10
|
+
import {IRiskService} from "./IRiskService.sol";
|
10
11
|
|
12
|
+
import {ContractLib} from "../shared/ContractLib.sol";
|
11
13
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
12
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
13
|
-
import {KEEP_STATE} from "../type/StateId.sol";
|
14
|
+
import {ObjectType, COMPONENT, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY, RISK} from "../type/ObjectType.sol";
|
15
|
+
import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
|
14
16
|
import {NftId} from "../type/NftId.sol";
|
15
17
|
import {RiskId} from "../type/RiskId.sol";
|
16
18
|
import {StateId} from "../type/StateId.sol";
|
17
|
-
import {
|
19
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
20
|
+
import {Service} from "../shared/Service.sol";
|
21
|
+
import {TimestampLib} from "../type/Timestamp.sol";
|
18
22
|
|
19
23
|
contract RiskService is
|
20
|
-
|
24
|
+
Service,
|
21
25
|
IRiskService
|
22
26
|
{
|
23
|
-
IInstanceService private _instanceService;
|
24
|
-
IPoolService internal _poolService;
|
25
|
-
IRegistryService private _registryService;
|
26
27
|
|
27
28
|
function _initialize(
|
28
29
|
address owner,
|
@@ -33,16 +34,16 @@ contract RiskService is
|
|
33
34
|
virtual override
|
34
35
|
{
|
35
36
|
(
|
36
|
-
address
|
37
|
-
|
38
|
-
|
39
|
-
) = abi.decode(data, (address, address, address));
|
37
|
+
address authority,
|
38
|
+
address registry
|
39
|
+
) = abi.decode(data, (address, address));
|
40
40
|
|
41
|
-
|
41
|
+
__Service_init(authority, registry, owner);
|
42
42
|
|
43
|
-
|
44
|
-
|
45
|
-
|
43
|
+
// TODO cleanup
|
44
|
+
// _instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
45
|
+
// _poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
46
|
+
// _registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
46
47
|
|
47
48
|
_registerInterface(type(IRiskService).interfaceId);
|
48
49
|
}
|
@@ -53,15 +54,25 @@ contract RiskService is
|
|
53
54
|
bytes memory data
|
54
55
|
)
|
55
56
|
external
|
56
|
-
|
57
|
+
restricted()
|
57
58
|
{
|
58
|
-
|
59
|
-
|
59
|
+
// checks
|
60
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
61
|
+
|
62
|
+
// effects
|
63
|
+
IRisk.RiskInfo memory riskInfo = IRisk.RiskInfo({
|
64
|
+
productNftId: productNftId,
|
65
|
+
createdAt: TimestampLib.blockTimestamp(),
|
66
|
+
data: data});
|
60
67
|
|
61
68
|
instance.getInstanceStore().createRisk(
|
62
69
|
riskId,
|
63
70
|
riskInfo
|
64
71
|
);
|
72
|
+
|
73
|
+
// add risk to RiskSet
|
74
|
+
RiskSet riskSet = instance.getRiskSet();
|
75
|
+
riskSet.add(riskId);
|
65
76
|
}
|
66
77
|
|
67
78
|
|
@@ -69,11 +80,14 @@ contract RiskService is
|
|
69
80
|
RiskId riskId,
|
70
81
|
bytes memory data
|
71
82
|
)
|
72
|
-
external
|
83
|
+
external
|
84
|
+
restricted()
|
73
85
|
{
|
74
|
-
|
75
|
-
|
86
|
+
// checks
|
87
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
76
88
|
|
89
|
+
// effects
|
90
|
+
InstanceReader instanceReader = instance.getInstanceReader();
|
77
91
|
IRisk.RiskInfo memory riskInfo = instanceReader.getRiskInfo(riskId);
|
78
92
|
riskInfo.data = data;
|
79
93
|
instance.getInstanceStore().updateRisk(riskId, riskInfo, KEEP_STATE());
|
@@ -84,14 +98,54 @@ contract RiskService is
|
|
84
98
|
RiskId riskId,
|
85
99
|
StateId state
|
86
100
|
)
|
87
|
-
external
|
101
|
+
external
|
102
|
+
restricted()
|
88
103
|
{
|
89
|
-
|
104
|
+
// checks
|
105
|
+
(NftId productNftId, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
106
|
+
|
107
|
+
// effects
|
90
108
|
instance.getInstanceStore().updateRiskState(riskId, state);
|
109
|
+
|
110
|
+
if (state == ACTIVE()) {
|
111
|
+
instance.getRiskSet().activate(riskId);
|
112
|
+
} else if (state == PAUSED()) {
|
113
|
+
instance.getRiskSet().pause(riskId);
|
114
|
+
}
|
115
|
+
}
|
116
|
+
|
117
|
+
function _getAndVerifyActiveComponent(ObjectType expectedType)
|
118
|
+
internal
|
119
|
+
view
|
120
|
+
returns (
|
121
|
+
NftId componentNftId,
|
122
|
+
IInstance instance
|
123
|
+
)
|
124
|
+
{
|
125
|
+
IRegistry.ObjectInfo memory info;
|
126
|
+
address instanceAddress;
|
127
|
+
bool isActive = true;
|
128
|
+
|
129
|
+
if (expectedType != COMPONENT()) {
|
130
|
+
(info, instanceAddress) = ContractLib.getAndVerifyComponent(
|
131
|
+
getRegistry(),
|
132
|
+
msg.sender, // caller
|
133
|
+
expectedType,
|
134
|
+
isActive);
|
135
|
+
} else {
|
136
|
+
(info, instanceAddress) = ContractLib.getAndVerifyAnyComponent(
|
137
|
+
getRegistry(),
|
138
|
+
msg.sender,
|
139
|
+
isActive);
|
140
|
+
}
|
141
|
+
|
142
|
+
// get component nft id and instance
|
143
|
+
componentNftId = info.nftId;
|
144
|
+
instance = IInstance(instanceAddress);
|
91
145
|
}
|
92
146
|
|
93
147
|
|
94
148
|
function _getDomain() internal pure override returns(ObjectType) {
|
95
|
-
return
|
149
|
+
return RISK();
|
96
150
|
}
|
97
151
|
}
|