@etherisc/gif-next 0.0.2-e769e2e-077 → 0.0.2-e79d227-681
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 +77 -10
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +1293 -0
- 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 +4 -0
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +1206 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +414 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccess.sol/IAccess.json +10 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAccessAdmin.sol/IAccessAdmin.json +1060 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.json +295 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.json +167 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.dbg.json +4 -0
- package/artifacts/contracts/authorization/ReleaseAccessManager.sol/ReleaseAccessManager.json +1196 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +4 -0
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +253 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +1324 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +4 -0
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +470 -0
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +154 -546
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +380 -229
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +198 -96
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +186 -238
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +223 -47
- 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 +1429 -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 +1979 -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 +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +1430 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +1177 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +1606 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +2281 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +4 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +808 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +153 -86
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +181 -119
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +174 -215
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +1666 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +574 -0
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +876 -160
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +260 -268
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +163 -81
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +506 -338
- 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/Cloneable.sol/Cloneable.json +0 -53
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +10 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +223 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +4 -0
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +181 -0
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.dbg.json +1 -1
- package/artifacts/contracts/instance/module/IAccess.sol/IAccess.json +8 -116
- 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 +4 -0
- package/artifacts/contracts/mock/Dip.sol/Dip.json +376 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +961 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +478 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracle.sol/IOracle.json +52 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleComponent.sol/IOracleComponent.json +776 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +709 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +4 -0
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +877 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +990 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +4 -0
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +766 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +1254 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +502 -0
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +456 -187
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +218 -80
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +264 -26
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +115 -354
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +464 -223
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +152 -682
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +590 -382
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +190 -76
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +147 -161
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +147 -77
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +1148 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +470 -0
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +343 -168
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +200 -90
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +88 -8
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +196 -7
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +364 -121
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +134 -86
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +176 -160
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +4 -0
- package/artifacts/contracts/product/{IProductService.sol/IProductService.json → IRiskService.sol/IRiskService.json} +51 -3
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +475 -294
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +199 -81
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +229 -275
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +172 -102
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +201 -486
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +4 -0
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +638 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +4 -0
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +718 -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 +412 -35
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +225 -196
- 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 +761 -87
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +4 -0
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +1899 -0
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +278 -306
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +154 -78
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +205 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +4 -0
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +1067 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +4 -0
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +272 -0
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +185 -135
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +79 -274
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +626 -252
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +209 -99
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentVerifyingService.sol/ComponentVerifyingService.json +55 -101
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +4 -0
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +488 -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/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +74 -79
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +561 -13
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +120 -108
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/IKeyValueStore.sol/IKeyValueStore.json +45 -13
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.json +34 -3
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +23 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +16 -30
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +36 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +49 -1
- 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 +129 -360
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.dbg.json +1 -1
- package/artifacts/contracts/shared/KeyValueStore.sol/KeyValueStore.json +55 -98
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.json +42 -62
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +4 -0
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +306 -0
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +26 -55
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +20 -124
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +62 -87
- 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 +55 -101
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +697 -25
- 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 +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 +462 -634
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +546 -48
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/StakeManagerLib.sol/StakeManagerLib.json +440 -0
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +613 -871
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingLifecycle.sol/StakingLifecycle.json +205 -0
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +185 -81
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +587 -0
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +633 -173
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +166 -68
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +4 -0
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2283 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +4 -0
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +607 -0
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.dbg.json +1 -1
- package/artifacts/contracts/type/AddressSet.sol/LibAddressSet.json +2 -2
- package/artifacts/contracts/type/Amount.sol/AmountLib.dbg.json +1 -1
- package/artifacts/contracts/type/Amount.sol/AmountLib.json +121 -4
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +40 -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 +4 -4
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/Fee.sol/FeeLib.json +17 -12
- 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 +47 -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 +149 -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 +4 -4
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +4 -0
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +204 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +99 -5
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +219 -6
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +124 -2
- package/artifacts/contracts/type/Selector.sol/SelectorLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorLib.json +129 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +4 -0
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +10 -0
- 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 +4 -0
- package/artifacts/contracts/type/String.sol/StrLib.json +132 -0
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +36 -4
- package/artifacts/contracts/type/UFixed.sol/MathLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/MathLib.json +9 -3
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +71 -2
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.json +2 -2
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.json +21 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/IVersionable.sol/IVersionable.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +618 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +4 -0
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +129 -0
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +4 -0
- package/artifacts/contracts/{shared → upgradeability}/Versionable.sol/Versionable.json +1 -1
- package/contracts/authorization/AccessAdmin.sol +616 -0
- package/contracts/authorization/AccessManagerCloneable.sol +16 -0
- package/contracts/authorization/Authorization.sol +289 -0
- package/contracts/authorization/IAccess.sol +49 -0
- package/contracts/authorization/IAccessAdmin.sol +137 -0
- package/contracts/authorization/IAuthorization.sol +60 -0
- package/contracts/authorization/IServiceAuthorization.sol +40 -0
- package/contracts/authorization/ReleaseAccessManager.sol +38 -0
- package/contracts/authorization/ServiceAuthorization.sol +106 -0
- package/contracts/distribution/BasicDistribution.sol +139 -0
- package/contracts/distribution/BasicDistributionAuthorization.sol +47 -0
- package/contracts/distribution/Distribution.sol +145 -124
- package/contracts/distribution/DistributionService.sol +156 -99
- package/contracts/distribution/DistributionServiceManager.sol +13 -25
- package/contracts/distribution/IDistributionComponent.sol +27 -41
- package/contracts/distribution/IDistributionService.sol +29 -10
- package/contracts/examples/fire/DamageLevel.sol +59 -0
- package/contracts/examples/fire/FirePool.sol +86 -0
- package/contracts/examples/fire/FirePoolAuthorization.sol +34 -0
- package/contracts/examples/fire/FireProduct.sol +431 -0
- package/contracts/examples/fire/FireProductAuthorization.sol +44 -0
- package/contracts/examples/fire/FireUSD.sol +26 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +58 -0
- package/contracts/examples/unpermissioned/SimpleOracle.sol +137 -0
- package/contracts/examples/unpermissioned/SimplePool.sol +108 -0
- package/contracts/examples/unpermissioned/SimpleProduct.sol +345 -0
- package/contracts/instance/BundleSet.sol +130 -0
- package/contracts/instance/IInstance.sol +39 -44
- package/contracts/instance/IInstanceService.sol +33 -42
- package/contracts/instance/Instance.sol +137 -124
- package/contracts/instance/InstanceAdmin.sol +278 -0
- package/contracts/instance/InstanceAuthorizationV3.sol +217 -0
- package/contracts/instance/InstanceReader.sol +249 -36
- package/contracts/instance/InstanceService.sol +227 -151
- package/contracts/instance/InstanceServiceManager.sol +14 -29
- package/contracts/instance/InstanceStore.sol +85 -57
- package/contracts/instance/RiskSet.sol +119 -0
- package/contracts/instance/base/BalanceStore.sol +12 -7
- package/contracts/instance/base/Cloneable.sol +2 -25
- package/contracts/instance/base/ObjectCounter.sol +21 -0
- package/contracts/instance/base/ObjectLifecycle.sol +111 -0
- package/contracts/instance/base/ObjectSet.sol +78 -0
- package/contracts/instance/module/IAccess.sol +2 -10
- package/contracts/instance/module/IBundle.sol +1 -1
- package/contracts/instance/module/IComponents.sol +11 -13
- package/contracts/instance/module/IDistribution.sol +0 -1
- package/contracts/instance/module/IPolicy.sol +26 -25
- package/contracts/instance/module/IRisk.sol +1 -0
- package/contracts/mock/Dip.sol +26 -0
- package/contracts/oracle/BasicOracle.sol +47 -0
- package/contracts/oracle/BasicOracleAuthorization.sol +46 -0
- package/contracts/oracle/IOracle.sol +36 -0
- package/contracts/oracle/IOracleComponent.sol +33 -0
- package/contracts/oracle/IOracleService.sol +66 -0
- package/contracts/oracle/Oracle.sol +156 -0
- package/contracts/oracle/OracleService.sol +309 -0
- package/contracts/oracle/OracleServiceManager.sol +39 -0
- package/contracts/pool/BasicPool.sol +175 -0
- package/contracts/pool/BasicPoolAuthorization.sol +68 -0
- package/contracts/pool/BundleService.sol +232 -122
- package/contracts/pool/BundleServiceManager.sol +13 -25
- package/contracts/pool/IBundleService.sol +34 -18
- package/contracts/pool/IPoolComponent.sol +20 -70
- package/contracts/pool/IPoolService.sol +57 -51
- package/contracts/pool/Pool.sol +208 -162
- package/contracts/pool/PoolService.sol +372 -181
- package/contracts/pool/PoolServiceManager.sol +12 -24
- package/contracts/product/ApplicationService.sol +90 -84
- package/contracts/product/ApplicationServiceManager.sol +12 -9
- package/contracts/product/BasicProduct.sol +49 -0
- package/contracts/product/BasicProductAuthorization.sol +42 -0
- package/contracts/product/ClaimService.sol +331 -153
- package/contracts/product/ClaimServiceManager.sol +12 -9
- package/contracts/product/IApplicationService.sol +7 -3
- package/contracts/product/IClaimService.sol +35 -5
- package/contracts/product/IPolicyService.sol +47 -35
- package/contracts/product/IPricingService.sol +11 -11
- package/contracts/product/IProductComponent.sol +26 -9
- package/contracts/product/{IProductService.sol → IRiskService.sol} +2 -2
- package/contracts/product/PolicyService.sol +524 -262
- package/contracts/product/PolicyServiceManager.sol +12 -27
- package/contracts/product/PricingService.sol +64 -64
- package/contracts/product/PricingServiceManager.sol +12 -24
- package/contracts/product/Product.sol +189 -139
- package/contracts/product/{ProductService.sol → RiskService.sol} +35 -50
- package/contracts/product/RiskServiceManager.sol +39 -0
- package/contracts/registry/ChainNft.sol +68 -37
- package/contracts/registry/IRegistry.sol +90 -28
- package/contracts/registry/IRegistryService.sol +26 -43
- package/contracts/registry/ITransferInterceptor.sol +1 -2
- package/contracts/registry/Registry.sol +424 -228
- package/contracts/registry/RegistryAdmin.sol +451 -0
- package/contracts/registry/RegistryService.sol +63 -149
- package/contracts/registry/RegistryServiceManager.sol +23 -30
- package/contracts/registry/ReleaseLifecycle.sol +30 -0
- package/contracts/registry/ReleaseRegistry.sol +485 -0
- package/contracts/registry/ServiceAuthorizationV3.sol +175 -0
- package/contracts/registry/TokenRegistry.sol +187 -59
- package/contracts/shared/Component.sol +56 -125
- package/contracts/shared/ComponentService.sol +411 -201
- package/contracts/shared/ComponentServiceManager.sol +10 -7
- package/contracts/shared/ComponentVerifyingService.sol +40 -23
- package/contracts/shared/ContractLib.sol +224 -0
- package/contracts/shared/IComponent.sol +11 -18
- package/contracts/shared/IComponentService.sol +52 -13
- package/contracts/shared/IInstanceLinkedComponent.sol +11 -16
- package/contracts/shared/IKeyValueStore.sol +2 -1
- package/contracts/shared/ILifecycle.sol +3 -2
- package/contracts/shared/INftOwnable.sol +3 -1
- package/contracts/shared/IPolicyHolder.sol +12 -17
- package/contracts/shared/IRegisterable.sol +11 -0
- package/contracts/shared/IService.sol +9 -2
- package/contracts/shared/{ERC165.sol → InitializableERC165.sol} +4 -4
- package/contracts/shared/InstanceLinkedComponent.sol +103 -43
- package/contracts/shared/KeyValueStore.sol +30 -68
- package/contracts/shared/Lifecycle.sol +30 -63
- package/contracts/shared/NftIdSet.sol +65 -0
- package/contracts/shared/NftOwnable.sol +31 -22
- package/contracts/shared/PolicyHolder.sol +18 -50
- package/contracts/shared/Registerable.sol +19 -11
- package/contracts/shared/RegistryLinked.sol +9 -14
- package/contracts/shared/Service.sol +44 -37
- package/contracts/shared/TokenHandler.sol +358 -27
- package/contracts/shared/TokenHandlerDeployerLib.sol +20 -0
- package/contracts/staking/IStaking.sol +133 -37
- package/contracts/staking/IStakingService.sol +93 -41
- package/contracts/staking/StakeManagerLib.sol +224 -0
- package/contracts/staking/Staking.sol +394 -101
- package/contracts/staking/StakingLifecycle.sol +23 -0
- package/contracts/staking/StakingManager.sol +24 -18
- package/contracts/staking/StakingReader.sol +190 -0
- package/contracts/staking/StakingService.sol +282 -42
- package/contracts/staking/StakingServiceManager.sol +10 -7
- package/contracts/staking/StakingStore.sol +605 -0
- package/contracts/staking/TargetManagerLib.sol +211 -0
- package/contracts/type/AddressSet.sol +1 -1
- package/contracts/type/Amount.sol +39 -3
- package/contracts/type/Blocknumber.sol +20 -2
- package/contracts/type/ClaimId.sol +6 -1
- package/contracts/type/Fee.sol +1 -1
- package/contracts/type/Key32.sol +2 -2
- package/contracts/type/Key32Set.sol +62 -0
- package/contracts/type/NftId.sol +16 -4
- package/contracts/type/NftIdSet.sol +1 -1
- package/contracts/type/ObjectType.sol +178 -65
- package/contracts/type/PayoutId.sol +10 -10
- package/contracts/type/Referral.sol +2 -1
- package/contracts/type/RequestId.sol +75 -0
- package/contracts/type/RiskId.sol +31 -5
- package/contracts/type/RoleId.sol +98 -74
- package/contracts/type/Seconds.sol +48 -1
- package/contracts/type/Selector.sol +102 -0
- package/contracts/type/StateId.sol +41 -2
- package/contracts/type/String.sol +53 -0
- package/contracts/type/Timestamp.sol +17 -3
- package/contracts/type/UFixed.sol +38 -9
- package/contracts/type/Version.sol +4 -2
- package/contracts/{shared → upgradeability}/ProxyManager.sol +90 -27
- package/contracts/{shared → upgradeability}/UpgradableProxyWithAdmin.sol +1 -3
- package/contracts/{shared → upgradeability}/Versionable.sol +2 -2
- package/package.json +11 -7
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.dbg.json +0 -4
- package/artifacts/contracts/instance/BundleManager.sol/BundleManager.json +0 -778
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAccessManager.sol/InstanceAccessManager.json +0 -1348
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/instance/InstanceAuthorizationsLib.sol/InstanceAuthorizationsLib.json +0 -132
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.dbg.json +0 -4
- package/artifacts/contracts/instance/base/ObjectManager.sol/ObjectManager.json +0 -256
- 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 -673
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.dbg.json +0 -4
- package/artifacts/contracts/product/ProductServiceManager.sol/ProductServiceManager.json +0 -636
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.dbg.json +0 -4
- package/artifacts/contracts/registry/RegistryAccessManager.sol/RegistryAccessManager.json +0 -308
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.dbg.json +0 -4
- package/artifacts/contracts/registry/ReleaseManager.sol/ReleaseManager.json +0 -688
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.dbg.json +0 -4
- package/artifacts/contracts/registry/ServiceAuthorizationsLib.sol/ServiceAuthorizationsLib.json +0 -137
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.dbg.json +0 -4
- package/artifacts/contracts/shared/AccessManagerUpgradeableInitializeable.sol/AccessManagerUpgradeableInitializeable.json +0 -1206
- 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/IVersionable.sol/IVersionable.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.dbg.json +0 -4
- package/artifacts/contracts/shared/ProxyManager.sol/ProxyManager.json +0 -569
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +0 -4
- package/artifacts/contracts/shared/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +0 -129
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +0 -4
- package/contracts/instance/BundleManager.sol +0 -126
- package/contracts/instance/InstanceAccessManager.sol +0 -543
- package/contracts/instance/InstanceAuthorizationsLib.sol +0 -336
- package/contracts/instance/base/ObjectManager.sol +0 -82
- package/contracts/product/ProductServiceManager.sol +0 -54
- package/contracts/registry/RegistryAccessManager.sol +0 -213
- package/contracts/registry/ReleaseManager.sol +0 -375
- package/contracts/registry/ServiceAuthorizationsLib.sol +0 -173
- package/contracts/shared/AccessManagerUpgradeableInitializeable.sol +0 -13
- /package/contracts/{shared → upgradeability}/IVersionable.sol +0 -0
@@ -1,36 +1,36 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
3
|
-
|
4
|
-
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
2
|
+
pragma solidity ^0.8.20;
|
5
3
|
|
6
4
|
import {Amount, AmountLib} from "../type/Amount.sol";
|
7
5
|
import {ClaimId} from "../type/ClaimId.sol";
|
8
|
-
import {
|
6
|
+
import {IComponent} from "../shared/IComponent.sol";
|
9
7
|
import {Fee, FeeLib} from "../type/Fee.sol";
|
10
8
|
import {IRisk} from "../instance/module/IRisk.sol";
|
11
9
|
import {IApplicationService} from "./IApplicationService.sol";
|
10
|
+
import {IAuthorization} from "../authorization/IAuthorization.sol";
|
12
11
|
import {IComponentService} from "../shared/IComponentService.sol";
|
12
|
+
import {InstanceLinkedComponent} from "../shared/InstanceLinkedComponent.sol";
|
13
|
+
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
13
14
|
import {IPolicyService} from "./IPolicyService.sol";
|
14
|
-
import {
|
15
|
+
import {IRiskService} from "./IRiskService.sol";
|
15
16
|
import {IClaimService} from "./IClaimService.sol";
|
16
17
|
import {IPricingService} from "./IPricingService.sol";
|
17
18
|
import {IProductComponent} from "./IProductComponent.sol";
|
18
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";
|
19
21
|
import {PayoutId} from "../type/PayoutId.sol";
|
20
|
-
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";
|
21
23
|
import {ReferralId} from "../type/Referral.sol";
|
22
24
|
import {RiskId, RiskIdLib} from "../type/RiskId.sol";
|
23
25
|
import {Seconds} from "../type/Seconds.sol";
|
24
26
|
import {StateId} from "../type/StateId.sol";
|
25
27
|
import {Timestamp} from "../type/Timestamp.sol";
|
26
28
|
|
27
|
-
import {TokenHandler} from "../shared/TokenHandler.sol";
|
28
|
-
|
29
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
30
29
|
import {IPolicy} from "../instance/module/IPolicy.sol";
|
31
30
|
import {IComponents} from "../instance/module/IComponents.sol";
|
32
|
-
import {
|
33
|
-
import {
|
31
|
+
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
32
|
+
import {IOracleComponent} from "../oracle/IOracleComponent.sol";
|
33
|
+
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
34
34
|
|
35
35
|
abstract contract Product is
|
36
36
|
InstanceLinkedComponent,
|
@@ -40,80 +40,150 @@ abstract contract Product is
|
|
40
40
|
bytes32 public constant PRODUCT_STORAGE_LOCATION_V1 = 0x0bb7aafdb8e380f81267337bc5b5dfdf76e6d3a380ecadb51ec665246d9d6800;
|
41
41
|
|
42
42
|
struct ProductStorage {
|
43
|
-
|
43
|
+
IComponents.ProductInfo _productInfo;
|
44
|
+
IComponentService _componentService;
|
45
|
+
IRiskService _riskService;
|
44
46
|
IApplicationService _applicationService;
|
45
47
|
IPolicyService _policyService;
|
46
48
|
IClaimService _claimService;
|
47
49
|
IPricingService _pricingService;
|
48
|
-
IComponentService _componentService;
|
49
|
-
NftId _poolNftId;
|
50
|
-
NftId _distributionNftId;
|
51
|
-
Pool _pool;
|
52
|
-
Distribution _distribution;
|
53
50
|
}
|
54
51
|
|
55
|
-
|
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
|
74
|
+
}
|
75
|
+
|
76
|
+
|
77
|
+
function calculatePremium(
|
78
|
+
Amount sumInsuredAmount,
|
79
|
+
RiskId riskId,
|
80
|
+
Seconds lifetime,
|
81
|
+
bytes memory applicationData,
|
82
|
+
NftId bundleNftId,
|
83
|
+
ReferralId referralId
|
84
|
+
)
|
85
|
+
public
|
86
|
+
view
|
87
|
+
override
|
88
|
+
onlyNftOfType(bundleNftId, BUNDLE())
|
89
|
+
returns (Amount premiumAmount)
|
90
|
+
{
|
91
|
+
IPolicy.PremiumInfo memory premium = _getProductStorage()._pricingService.calculatePremium(
|
92
|
+
getNftId(),
|
93
|
+
riskId,
|
94
|
+
sumInsuredAmount,
|
95
|
+
lifetime,
|
96
|
+
applicationData,
|
97
|
+
bundleNftId,
|
98
|
+
referralId
|
99
|
+
);
|
100
|
+
|
101
|
+
return premium.premiumAmount;
|
102
|
+
}
|
103
|
+
|
104
|
+
function calculateNetPremium(
|
105
|
+
Amount sumInsuredAmount,
|
106
|
+
RiskId,
|
107
|
+
Seconds,
|
108
|
+
bytes memory
|
109
|
+
)
|
110
|
+
external
|
111
|
+
view
|
112
|
+
virtual override
|
113
|
+
returns (Amount netPremiumAmount)
|
114
|
+
{
|
115
|
+
// default 10% of sum insured
|
116
|
+
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
117
|
+
}
|
118
|
+
|
119
|
+
|
120
|
+
function getInitialProductInfo()
|
121
|
+
public
|
122
|
+
virtual
|
123
|
+
view
|
124
|
+
returns (IComponents.ProductInfo memory poolInfo)
|
125
|
+
{
|
126
|
+
return _getProductStorage()._productInfo;
|
127
|
+
}
|
128
|
+
|
129
|
+
|
130
|
+
function _initializeProduct(
|
56
131
|
address registry,
|
57
132
|
NftId instanceNftId,
|
58
|
-
address initialOwner,
|
59
133
|
string memory name,
|
60
134
|
address token,
|
61
|
-
|
62
|
-
|
63
|
-
address
|
64
|
-
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,
|
65
138
|
bytes memory componentData // writeonly data that will saved in the object info record of the registry
|
66
139
|
)
|
67
|
-
|
140
|
+
internal
|
68
141
|
virtual
|
69
142
|
onlyInitializing()
|
70
143
|
{
|
71
|
-
|
144
|
+
_initializeInstanceLinkedComponent(
|
145
|
+
registry,
|
146
|
+
instanceNftId,
|
147
|
+
name,
|
148
|
+
token,
|
149
|
+
PRODUCT(),
|
150
|
+
authorization,
|
151
|
+
productInfo.isInterceptingPolicyTransfers,
|
152
|
+
initialOwner,
|
153
|
+
componentData);
|
72
154
|
|
73
155
|
ProductStorage storage $ = _getProductStorage();
|
74
|
-
|
75
|
-
|
76
|
-
$._productService = IProductService(_getServiceAddress(PRODUCT()));
|
156
|
+
$._productInfo = productInfo;
|
157
|
+
$._riskService = IRiskService(_getServiceAddress(RISK()));
|
77
158
|
$._applicationService = IApplicationService(_getServiceAddress(APPLICATION()));
|
78
159
|
$._policyService = IPolicyService(_getServiceAddress(POLICY()));
|
79
160
|
$._claimService = IClaimService(_getServiceAddress(CLAIM()));
|
80
161
|
$._pricingService = IPricingService(_getServiceAddress(PRICE()));
|
81
162
|
$._componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
82
|
-
$._pool = Pool(pool);
|
83
|
-
$._distribution = Distribution(distribution);
|
84
|
-
$._poolNftId = getRegistry().getNftId(pool);
|
85
|
-
$._distributionNftId = getRegistry().getNftId(distribution);
|
86
|
-
|
87
|
-
registerInterface(type(IProductComponent).interfaceId);
|
88
|
-
}
|
89
|
-
|
90
163
|
|
91
|
-
|
92
|
-
external
|
93
|
-
virtual
|
94
|
-
onlyOwner()
|
95
|
-
{
|
96
|
-
_getProductStorage()._componentService.registerProduct();
|
164
|
+
_registerInterface(type(IProductComponent).interfaceId);
|
97
165
|
}
|
98
166
|
|
99
167
|
|
100
|
-
function
|
168
|
+
function _setFees(
|
101
169
|
Fee memory productFee,
|
102
170
|
Fee memory processingFee
|
103
171
|
)
|
104
|
-
|
105
|
-
|
106
|
-
restricted()
|
107
|
-
override
|
172
|
+
internal
|
173
|
+
virtual
|
108
174
|
{
|
109
175
|
_getProductStorage()._componentService.setProductFees(productFee, processingFee);
|
110
176
|
}
|
111
177
|
|
178
|
+
|
112
179
|
function _createRisk(
|
113
180
|
RiskId id,
|
114
181
|
bytes memory data
|
115
|
-
)
|
116
|
-
|
182
|
+
)
|
183
|
+
internal
|
184
|
+
virtual
|
185
|
+
{
|
186
|
+
_getProductStorage()._riskService.createRisk(
|
117
187
|
id,
|
118
188
|
data
|
119
189
|
);
|
@@ -122,8 +192,11 @@ abstract contract Product is
|
|
122
192
|
function _updateRisk(
|
123
193
|
RiskId id,
|
124
194
|
bytes memory data
|
125
|
-
)
|
126
|
-
|
195
|
+
)
|
196
|
+
internal
|
197
|
+
virtual
|
198
|
+
{
|
199
|
+
_getProductStorage()._riskService.updateRisk(
|
127
200
|
id,
|
128
201
|
data
|
129
202
|
);
|
@@ -132,33 +205,36 @@ abstract contract Product is
|
|
132
205
|
function _updateRiskState(
|
133
206
|
RiskId id,
|
134
207
|
StateId state
|
135
|
-
)
|
136
|
-
|
208
|
+
)
|
209
|
+
internal
|
210
|
+
virtual
|
211
|
+
{
|
212
|
+
_getProductStorage()._riskService.updateRiskState(
|
137
213
|
id,
|
138
214
|
state
|
139
215
|
);
|
140
216
|
}
|
141
217
|
|
142
|
-
function _getRiskInfo(RiskId id) internal view returns (IRisk.RiskInfo memory info) {
|
143
|
-
return getInstance().getInstanceReader().getRiskInfo(id);
|
144
|
-
}
|
145
218
|
|
146
219
|
function _createApplication(
|
147
220
|
address applicationOwner,
|
148
221
|
RiskId riskId,
|
149
222
|
Amount sumInsuredAmount,
|
223
|
+
Amount premiumAmount,
|
150
224
|
Seconds lifetime,
|
151
225
|
NftId bundleNftId,
|
152
226
|
ReferralId referralId,
|
153
227
|
bytes memory applicationData
|
154
228
|
)
|
155
229
|
internal
|
230
|
+
virtual
|
156
231
|
returns (NftId applicationNftId)
|
157
232
|
{
|
158
233
|
return _getProductStorage()._applicationService.create(
|
159
234
|
applicationOwner,
|
160
235
|
riskId,
|
161
236
|
sumInsuredAmount,
|
237
|
+
premiumAmount,
|
162
238
|
lifetime,
|
163
239
|
bundleNftId,
|
164
240
|
referralId,
|
@@ -166,24 +242,46 @@ abstract contract Product is
|
|
166
242
|
);
|
167
243
|
}
|
168
244
|
|
169
|
-
function
|
170
|
-
NftId
|
171
|
-
bool requirePremiumPayment,
|
245
|
+
function _createPolicy(
|
246
|
+
NftId applicationNftId,
|
172
247
|
Timestamp activateAt
|
173
248
|
)
|
174
249
|
internal
|
250
|
+
virtual
|
251
|
+
returns (Amount premiumAmount)
|
175
252
|
{
|
176
|
-
_getProductStorage()._policyService.
|
177
|
-
|
178
|
-
requirePremiumPayment,
|
253
|
+
premiumAmount = _getProductStorage()._policyService.createPolicy(
|
254
|
+
applicationNftId,
|
179
255
|
activateAt);
|
180
256
|
}
|
181
257
|
|
258
|
+
function _decline(
|
259
|
+
NftId policyNftId
|
260
|
+
)
|
261
|
+
internal
|
262
|
+
virtual
|
263
|
+
{
|
264
|
+
_getProductStorage()._policyService.decline(
|
265
|
+
policyNftId);
|
266
|
+
}
|
267
|
+
|
268
|
+
function _expire(
|
269
|
+
NftId policyNftId,
|
270
|
+
Timestamp expireAt
|
271
|
+
)
|
272
|
+
internal
|
273
|
+
virtual
|
274
|
+
returns (Timestamp expiredAt)
|
275
|
+
{
|
276
|
+
expiredAt = _getProductStorage()._policyService.expire(policyNftId, expireAt);
|
277
|
+
}
|
278
|
+
|
182
279
|
function _collectPremium(
|
183
280
|
NftId policyNftId,
|
184
281
|
Timestamp activateAt
|
185
282
|
)
|
186
283
|
internal
|
284
|
+
virtual
|
187
285
|
{
|
188
286
|
_getProductStorage()._policyService.collectPremium(
|
189
287
|
policyNftId,
|
@@ -195,6 +293,7 @@ abstract contract Product is
|
|
195
293
|
Timestamp activateAt
|
196
294
|
)
|
197
295
|
internal
|
296
|
+
virtual
|
198
297
|
{
|
199
298
|
_getProductStorage()._policyService.activate(
|
200
299
|
policyNftId,
|
@@ -205,6 +304,7 @@ abstract contract Product is
|
|
205
304
|
NftId policyNftId
|
206
305
|
)
|
207
306
|
internal
|
307
|
+
virtual
|
208
308
|
{
|
209
309
|
_getProductStorage()._policyService.close(
|
210
310
|
policyNftId);
|
@@ -216,6 +316,7 @@ abstract contract Product is
|
|
216
316
|
bytes memory claimData
|
217
317
|
)
|
218
318
|
internal
|
319
|
+
virtual
|
219
320
|
returns(ClaimId)
|
220
321
|
{
|
221
322
|
return _getProductStorage()._claimService.submit(
|
@@ -231,6 +332,7 @@ abstract contract Product is
|
|
231
332
|
bytes memory data
|
232
333
|
)
|
233
334
|
internal
|
335
|
+
virtual
|
234
336
|
{
|
235
337
|
_getProductStorage()._claimService.confirm(
|
236
338
|
policyNftId,
|
@@ -245,6 +347,7 @@ abstract contract Product is
|
|
245
347
|
bytes memory data
|
246
348
|
)
|
247
349
|
internal
|
350
|
+
virtual
|
248
351
|
{
|
249
352
|
_getProductStorage()._claimService.decline(
|
250
353
|
policyNftId,
|
@@ -257,6 +360,7 @@ abstract contract Product is
|
|
257
360
|
ClaimId claimId
|
258
361
|
)
|
259
362
|
internal
|
363
|
+
virtual
|
260
364
|
{
|
261
365
|
_getProductStorage()._claimService.close(
|
262
366
|
policyNftId,
|
@@ -270,6 +374,7 @@ abstract contract Product is
|
|
270
374
|
bytes memory data
|
271
375
|
)
|
272
376
|
internal
|
377
|
+
virtual
|
273
378
|
returns (PayoutId)
|
274
379
|
{
|
275
380
|
return _getProductStorage()._claimService.createPayout(
|
@@ -279,99 +384,44 @@ abstract contract Product is
|
|
279
384
|
data);
|
280
385
|
}
|
281
386
|
|
387
|
+
function _createPayoutForBeneficiary(
|
388
|
+
NftId policyNftId,
|
389
|
+
ClaimId claimId,
|
390
|
+
Amount amount,
|
391
|
+
address beneficiary,
|
392
|
+
bytes memory data
|
393
|
+
)
|
394
|
+
internal
|
395
|
+
virtual
|
396
|
+
returns (PayoutId)
|
397
|
+
{
|
398
|
+
return _getProductStorage()._claimService.createPayoutForBeneficiary(
|
399
|
+
policyNftId,
|
400
|
+
claimId,
|
401
|
+
amount,
|
402
|
+
beneficiary,
|
403
|
+
data);
|
404
|
+
}
|
405
|
+
|
282
406
|
function _processPayout(
|
283
407
|
NftId policyNftId,
|
284
408
|
PayoutId payoutId
|
285
409
|
)
|
286
410
|
internal
|
411
|
+
virtual
|
287
412
|
{
|
288
413
|
_getProductStorage()._claimService.processPayout(
|
289
414
|
policyNftId,
|
290
415
|
payoutId);
|
291
416
|
}
|
292
417
|
|
293
|
-
function
|
294
|
-
Amount sumInsuredAmount,
|
295
|
-
RiskId riskId,
|
296
|
-
Seconds lifetime,
|
297
|
-
bytes memory applicationData,
|
298
|
-
NftId bundleNftId,
|
299
|
-
ReferralId referralId
|
300
|
-
)
|
301
|
-
external
|
302
|
-
view
|
303
|
-
override
|
304
|
-
returns (Amount premiumAmount)
|
305
|
-
{
|
306
|
-
IPolicy.Premium memory premium = _getProductStorage()._pricingService.calculatePremium(
|
307
|
-
getNftId(),
|
308
|
-
riskId,
|
309
|
-
sumInsuredAmount,
|
310
|
-
lifetime,
|
311
|
-
applicationData,
|
312
|
-
bundleNftId,
|
313
|
-
referralId
|
314
|
-
);
|
315
|
-
|
316
|
-
return AmountLib.toAmount(premium.premiumAmount);
|
317
|
-
}
|
318
|
-
|
319
|
-
function calculateNetPremium(
|
320
|
-
Amount sumInsuredAmount,
|
321
|
-
RiskId riskId,
|
322
|
-
Seconds lifetime,
|
323
|
-
bytes memory applicationData
|
324
|
-
)
|
325
|
-
external
|
326
|
-
view
|
327
|
-
virtual override
|
328
|
-
returns (Amount netPremiumAmount)
|
329
|
-
{
|
330
|
-
// default 10% of sum insured
|
331
|
-
return AmountLib.toAmount(sumInsuredAmount.toInt() / 10);
|
332
|
-
}
|
333
|
-
|
334
|
-
|
335
|
-
function getInitialProductInfo()
|
336
|
-
public
|
337
|
-
virtual
|
338
|
-
view
|
339
|
-
returns (IComponents.ProductInfo memory poolInfo)
|
340
|
-
{
|
341
|
-
ProductStorage storage $ = _getProductStorage();
|
342
|
-
|
343
|
-
return IComponents.ProductInfo({
|
344
|
-
distributionNftId: $._distributionNftId,
|
345
|
-
poolNftId: $._poolNftId,
|
346
|
-
productFee: FeeLib.zero(),
|
347
|
-
processingFee: FeeLib.zero(),
|
348
|
-
distributionFee: FeeLib.zero(),
|
349
|
-
minDistributionOwnerFee: FeeLib.zero(),
|
350
|
-
poolFee: FeeLib.zero(),
|
351
|
-
stakingFee: FeeLib.zero(),
|
352
|
-
performanceFee: FeeLib.zero()
|
353
|
-
});
|
354
|
-
}
|
355
|
-
|
356
|
-
function getPoolNftId() external view override returns (NftId poolNftId) {
|
357
|
-
return getRegistry().getNftId(address(_getProductStorage()._pool));
|
358
|
-
}
|
359
|
-
|
360
|
-
function getDistributionNftId() external view override returns (NftId distributionNftId) {
|
361
|
-
return getRegistry().getNftId(address(_getProductStorage()._distribution));
|
362
|
-
}
|
363
|
-
|
364
|
-
function _toRiskId(string memory riskName) internal pure returns (RiskId riskId) {
|
418
|
+
function _toRiskId(string memory riskName) internal virtual pure returns (RiskId riskId) {
|
365
419
|
return RiskIdLib.toRiskId(riskName);
|
366
420
|
}
|
367
421
|
|
368
|
-
function _getProductStorage()
|
422
|
+
function _getProductStorage() internal virtual pure returns (ProductStorage storage $) {
|
369
423
|
assembly {
|
370
424
|
$.slot := PRODUCT_STORAGE_LOCATION_V1
|
371
425
|
}
|
372
426
|
}
|
373
|
-
|
374
|
-
function _getProductService() internal view returns (IProductService) {
|
375
|
-
return _getProductStorage()._productService;
|
376
|
-
}
|
377
427
|
}
|
@@ -1,56 +1,30 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
|
-
pragma solidity ^0.8.
|
3
|
-
|
4
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
5
|
-
import {IProductComponent} from "./IProductComponent.sol";
|
6
|
-
import {Product} from "./Product.sol";
|
7
|
-
import {IInstanceLinkedComponent} from "../shared/IInstanceLinkedComponent.sol";
|
8
|
-
import {IPoolComponent} from "../pool/IPoolComponent.sol";
|
9
|
-
import {IDistributionComponent} from "../distribution/IDistributionComponent.sol";
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
10
4
|
import {IInstance} from "../instance/IInstance.sol";
|
11
|
-
import {
|
5
|
+
import {IInstanceService} from "../instance/IInstanceService.sol";
|
6
|
+
import {IPoolService} from "../pool/PoolService.sol";
|
7
|
+
import {IRiskService} from "./IRiskService.sol";
|
8
|
+
import {IRegistryService} from "../registry/IRegistryService.sol";
|
12
9
|
import {IRisk} from "../instance/module/IRisk.sol";
|
13
|
-
|
14
|
-
import {
|
15
|
-
import {
|
16
|
-
|
17
|
-
import {
|
18
|
-
|
19
|
-
import {IVersionable} from "../shared/IVersionable.sol";
|
20
|
-
import {Versionable} from "../shared/Versionable.sol";
|
21
|
-
|
22
|
-
import {Timestamp, zeroTimestamp} from "../type/Timestamp.sol";
|
23
|
-
import {UFixed, UFixedLib} from "../type/UFixed.sol";
|
24
|
-
import {Blocknumber, blockNumber} from "../type/Blocknumber.sol";
|
25
|
-
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY} from "../type/ObjectType.sol";
|
26
|
-
import {APPLIED, ACTIVE, KEEP_STATE} from "../type/StateId.sol";
|
27
|
-
import {NftId, NftIdLib} from "../type/NftId.sol";
|
28
|
-
import {Fee, FeeLib} from "../type/Fee.sol";
|
29
|
-
import {ReferralId} from "../type/Referral.sol";
|
10
|
+
|
11
|
+
import {InstanceReader} from "../instance/InstanceReader.sol";
|
12
|
+
import {ObjectType, INSTANCE, PRODUCT, POOL, POLICY, REGISTRY, RISK} from "../type/ObjectType.sol";
|
13
|
+
import {ACTIVE, PAUSED, KEEP_STATE} from "../type/StateId.sol";
|
14
|
+
import {NftId} from "../type/NftId.sol";
|
30
15
|
import {RiskId} from "../type/RiskId.sol";
|
31
16
|
import {StateId} from "../type/StateId.sol";
|
32
|
-
import {
|
33
|
-
import {RoleId, PRODUCT_OWNER_ROLE} from "../type/RoleId.sol";
|
34
|
-
|
35
|
-
import {IService} from "../shared/IService.sol";
|
36
|
-
import {Service} from "../shared/Service.sol";
|
17
|
+
import {RiskSet} from "../instance/RiskSet.sol";
|
37
18
|
import {ComponentVerifyingService} from "../shared/ComponentVerifyingService.sol";
|
38
|
-
import {IInstanceService} from "../instance/IInstanceService.sol";
|
39
|
-
import {IProductService} from "./IProductService.sol";
|
40
|
-
import {IRegistryService} from "../registry/IRegistryService.sol";
|
41
|
-
import {InstanceReader} from "../instance/InstanceReader.sol";
|
42
|
-
import {IPoolService} from "../pool/PoolService.sol";
|
43
19
|
|
44
|
-
contract
|
20
|
+
contract RiskService is
|
45
21
|
ComponentVerifyingService,
|
46
|
-
|
22
|
+
IRiskService
|
47
23
|
{
|
48
24
|
IInstanceService private _instanceService;
|
49
25
|
IPoolService internal _poolService;
|
50
26
|
IRegistryService private _registryService;
|
51
27
|
|
52
|
-
event LogProductServiceSender(address sender);
|
53
|
-
|
54
28
|
function _initialize(
|
55
29
|
address owner,
|
56
30
|
bytes memory data
|
@@ -59,22 +33,18 @@ contract ProductService is
|
|
59
33
|
initializer
|
60
34
|
virtual override
|
61
35
|
{
|
62
|
-
|
63
|
-
|
64
|
-
|
36
|
+
(
|
37
|
+
address registryAddress,
|
38
|
+
address authority
|
39
|
+
) = abi.decode(data, (address, address));
|
65
40
|
|
66
|
-
|
41
|
+
_initializeService(registryAddress, authority, owner);
|
67
42
|
|
68
43
|
_instanceService = IInstanceService(_getServiceAddress(INSTANCE()));
|
69
44
|
_poolService = IPoolService(getRegistry().getServiceAddress(POOL(), getVersion().toMajorPart()));
|
70
45
|
_registryService = IRegistryService(_getServiceAddress(REGISTRY()));
|
71
46
|
|
72
|
-
|
73
|
-
}
|
74
|
-
|
75
|
-
|
76
|
-
function getDomain() public pure override returns(ObjectType) {
|
77
|
-
return PRODUCT();
|
47
|
+
_registerInterface(type(IRiskService).interfaceId);
|
78
48
|
}
|
79
49
|
|
80
50
|
|
@@ -92,6 +62,10 @@ contract ProductService is
|
|
92
62
|
riskId,
|
93
63
|
riskInfo
|
94
64
|
);
|
65
|
+
|
66
|
+
// add risk to RiskSet
|
67
|
+
RiskSet riskSet = instance.getRiskSet();
|
68
|
+
riskSet.add(riskId);
|
95
69
|
}
|
96
70
|
|
97
71
|
|
@@ -118,5 +92,16 @@ contract ProductService is
|
|
118
92
|
{
|
119
93
|
(,, IInstance instance) = _getAndVerifyActiveComponent(PRODUCT());
|
120
94
|
instance.getInstanceStore().updateRiskState(riskId, state);
|
95
|
+
|
96
|
+
if (state == ACTIVE()) {
|
97
|
+
instance.getRiskSet().activate(riskId);
|
98
|
+
} else if (state == PAUSED()) {
|
99
|
+
instance.getRiskSet().pause(riskId);
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
|
104
|
+
function _getDomain() internal pure override returns(ObjectType) {
|
105
|
+
return RISK();
|
121
106
|
}
|
122
107
|
}
|
@@ -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(registry, authority);
|
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
|
+
}
|