@etherisc/gif-next 3.0.0-a511887-523 → 3.0.0-ab0fcb2-112
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 +1 -0
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +59 -107
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +59 -156
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +13 -61
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +58 -90
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +80 -59
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +2 -2
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/Authorization.sol/Authorization.json +2 -2
- 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 +14 -46
- package/artifacts/contracts/authorization/IAuthorization.sol/IAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/IServiceAuthorization.sol/IServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.dbg.json +1 -1
- package/artifacts/contracts/authorization/ServiceAuthorization.sol/ServiceAuthorization.json +2 -2
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistribution.sol/BasicDistribution.json +45 -85
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/distribution/BasicDistributionAuthorization.sol/BasicDistributionAuthorization.json +2 -2
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.dbg.json +1 -1
- package/artifacts/contracts/distribution/Distribution.sol/Distribution.json +13 -61
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +119 -175
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +89 -190
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +13 -61
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +13 -61
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +54 -103
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePoolAuthorization.sol/FirePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProduct.sol/FireProduct.json +104 -153
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +18 -18
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +604 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +229 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1255 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +825 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1528 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +820 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2635 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +820 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +586 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +901 -0
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +57 -119
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistributionAuthorization.sol/SimpleDistributionAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleOracle.sol/SimpleOracle.json +51 -113
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +59 -121
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePoolAuthorization.sol/SimplePoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProduct.sol/SimpleProduct.json +63 -125
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +18 -18
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +49 -54
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +14 -62
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +13 -61
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +42 -95
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +158 -182
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAuthorizationV3.sol/InstanceAuthorizationV3.json +2 -2
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceReader.sol/InstanceReader.json +179 -77
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +51 -99
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +55 -152
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +2 -2
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +2 -2
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +53 -58
- 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 +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +3 -8
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSetHelperLib.sol/ObjectSetHelperLib.json +2 -2
- 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 +41 -81
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracleAuthorization.sol/BasicOracleAuthorization.json +2 -2
- 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 +13 -61
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +13 -103
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +13 -61
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +61 -175
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +60 -169
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +13 -61
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPoolAuthorization.sol/BasicPoolAuthorization.json +2 -2
- package/artifacts/contracts/pool/BundleService.sol/BundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleService.sol/BundleService.json +95 -151
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +78 -179
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +13 -61
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +13 -61
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +25 -104
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +13 -61
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +24 -252
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +143 -190
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +89 -170
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +59 -99
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +59 -152
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +13 -61
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +18 -18
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +103 -151
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +81 -178
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +13 -61
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +13 -61
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +13 -82
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +13 -61
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +13 -61
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +13 -61
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +83 -152
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +2 -2
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +71 -168
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +71 -119
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +65 -162
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +13 -61
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +63 -95
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +58 -147
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +13 -61
- package/artifacts/contracts/registry/IRelease.sol/IRelease.dbg.json +1 -1
- package/artifacts/contracts/registry/ITransferInterceptor.sol/ITransferInterceptor.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.dbg.json +1 -1
- package/artifacts/contracts/registry/Registry.sol/Registry.json +2 -2
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +140 -169
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -2
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +51 -99
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +55 -157
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +146 -183
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseLifecycle.sol/ReleaseLifecycle.json +2 -2
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseRegistry.sol/ReleaseRegistry.json +98 -185
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +2 -2
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +13 -71
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +13 -61
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +81 -137
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +70 -171
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +411 -139
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +691 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +13 -61
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +13 -61
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +13 -61
- package/artifacts/contracts/shared/ILifecycle.sol/ILifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/INftOwnable.sol/INftOwnable.json +1 -70
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.json +1 -54
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +13 -61
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.json +1 -54
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.json +13 -61
- package/artifacts/contracts/shared/IVersionable.sol/IVersionable.dbg.json +1 -1
- 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 +13 -61
- package/artifacts/contracts/shared/Lifecycle.sol/Lifecycle.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.dbg.json +1 -1
- package/artifacts/contracts/shared/NftIdSet.sol/NftIdSet.json +2 -2
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.dbg.json +1 -1
- package/artifacts/contracts/shared/NftOwnable.sol/NftOwnable.json +15 -76
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +3 -56
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +13 -61
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +3 -79
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +13 -61
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +2 -2
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +2 -2
- package/artifacts/contracts/shared/Versionable.sol/Versionable.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +13 -61
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +13 -61
- package/artifacts/contracts/staking/ITargetLimitHandler.sol/ITargetLimitHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.dbg.json +1 -1
- package/artifacts/contracts/staking/Staking.sol/Staking.json +73 -121
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +26 -31
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +66 -163
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +5 -64
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +49 -97
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +54 -151
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +200 -266
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +27 -19
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -2
- 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/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ChainId.sol/ChainIdLib.json +2 -2
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/ClaimId.sol/ClaimIdLib.json +2 -2
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.dbg.json +1 -1
- package/artifacts/contracts/type/DistributorType.sol/DistributorTypeLib.json +2 -2
- package/artifacts/contracts/type/Fee.sol/FeeLib.dbg.json +1 -1
- package/artifacts/contracts/type/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 +1 -1
- package/artifacts/contracts/type/Key32Set.sol/LibKey32Set.json +2 -2
- package/artifacts/contracts/type/NftId.sol/NftIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/NftId.sol/NftIdLib.json +2 -2
- 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 +22 -25
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/PayoutId.sol/PayoutIdLib.json +2 -2
- package/artifacts/contracts/type/Referral.sol/ReferralLib.dbg.json +1 -1
- package/artifacts/contracts/type/Referral.sol/ReferralLib.json +23 -4
- 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/RequestIdSet.sol/LibRequestIdSet.dbg.json +4 -0
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +33 -0
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RiskId.sol/RiskIdLib.json +2 -2
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RoleId.sol/RoleIdLib.json +2 -2
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.dbg.json +1 -1
- package/artifacts/contracts/type/Seconds.sol/SecondsLib.json +21 -2
- 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/String.sol/StrLib.dbg.json +1 -1
- package/artifacts/contracts/type/String.sol/StrLib.json +21 -2
- 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/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionLib.dbg.json +1 -1
- package/artifacts/contracts/type/Version.sol/VersionPartLib.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/IUpgradeable.sol/IUpgradeable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +29 -121
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/Upgradeable.sol/Upgradeable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +3 -4
- package/contracts/accounting/AccountingServiceManager.sol +1 -3
- package/contracts/authorization/AccessAdmin.sol +3 -3
- package/contracts/authorization/AccessAdminLib.sol +14 -11
- package/contracts/authorization/IAccessAdmin.sol +1 -0
- package/contracts/distribution/BasicDistribution.sol +0 -2
- package/contracts/distribution/BasicDistributionAuthorization.sol +1 -1
- package/contracts/distribution/Distribution.sol +0 -2
- package/contracts/distribution/DistributionService.sol +14 -13
- package/contracts/distribution/DistributionServiceManager.sol +1 -3
- package/contracts/examples/fire/FirePool.sol +0 -4
- package/contracts/examples/fire/FireProduct.sol +0 -4
- package/contracts/examples/flight/FlightLib.sol +322 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightOracle.sol +163 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +34 -0
- package/contracts/examples/flight/FlightPool.sol +85 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +650 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +45 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/examples/unpermissioned/SimpleDistribution.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleOracle.sol +0 -4
- package/contracts/examples/unpermissioned/SimplePool.sol +0 -4
- package/contracts/examples/unpermissioned/SimpleProduct.sol +0 -4
- package/contracts/instance/IInstance.sol +1 -1
- package/contracts/instance/Instance.sol +6 -7
- package/contracts/instance/InstanceAdmin.sol +6 -8
- package/contracts/instance/InstanceReader.sol +40 -18
- package/contracts/instance/InstanceService.sol +14 -16
- package/contracts/instance/InstanceServiceManager.sol +1 -3
- package/contracts/instance/base/Cloneable.sol +4 -10
- package/contracts/instance/base/ObjectSet.sol +2 -2
- package/contracts/oracle/BasicOracle.sol +0 -2
- package/contracts/oracle/IOracleService.sol +12 -16
- package/contracts/oracle/Oracle.sol +0 -2
- package/contracts/oracle/OracleService.sol +36 -66
- package/contracts/oracle/OracleServiceManager.sol +1 -3
- package/contracts/pool/BasicPool.sol +2 -4
- package/contracts/pool/BasicPoolAuthorization.sol +1 -1
- package/contracts/pool/BundleService.sol +20 -14
- package/contracts/pool/BundleServiceManager.sol +2 -4
- package/contracts/pool/IPoolService.sol +5 -6
- package/contracts/pool/Pool.sol +1 -3
- package/contracts/pool/PoolLib.sol +4 -104
- package/contracts/pool/PoolService.sol +66 -100
- package/contracts/pool/PoolServiceManager.sol +1 -3
- package/contracts/product/ApplicationService.sol +9 -29
- package/contracts/product/ApplicationServiceManager.sol +1 -3
- package/contracts/product/BasicProduct.sol +0 -2
- package/contracts/product/BasicProductAuthorization.sol +4 -3
- package/contracts/product/ClaimService.sol +9 -33
- package/contracts/product/ClaimServiceManager.sol +2 -4
- package/contracts/product/IPolicyService.sol +0 -1
- package/contracts/product/PolicyService.sol +43 -56
- package/contracts/product/PolicyServiceManager.sol +1 -3
- package/contracts/product/PricingService.sol +6 -7
- package/contracts/product/PricingServiceManager.sol +1 -3
- package/contracts/product/Product.sol +0 -2
- package/contracts/product/RiskService.sol +7 -39
- package/contracts/product/RiskServiceManager.sol +1 -3
- package/contracts/registry/RegistryAdmin.sol +6 -11
- package/contracts/registry/RegistryAuthorization.sol +2 -2
- package/contracts/registry/RegistryService.sol +14 -15
- package/contracts/registry/RegistryServiceManager.sol +1 -8
- package/contracts/registry/ReleaseAdmin.sol +2 -11
- package/contracts/registry/ReleaseRegistry.sol +14 -26
- package/contracts/registry/TokenRegistry.sol +6 -15
- package/contracts/shared/Component.sol +3 -5
- package/contracts/shared/ComponentService.sol +18 -30
- package/contracts/shared/ComponentServiceManager.sol +2 -4
- package/contracts/shared/ContractLib.sol +359 -93
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -6
- package/contracts/shared/INftOwnable.sol +0 -2
- package/contracts/shared/IRegisterable.sol +6 -0
- package/contracts/shared/IRegistryLinked.sol +1 -5
- package/contracts/shared/InstanceLinkedComponent.sol +73 -22
- package/contracts/shared/NftOwnable.sol +8 -8
- package/contracts/shared/PolicyHolder.sol +0 -2
- package/contracts/shared/Registerable.sol +5 -6
- package/contracts/shared/RegistryLinked.sol +4 -30
- package/contracts/shared/Service.sol +2 -4
- package/contracts/staking/Staking.sol +22 -17
- package/contracts/staking/StakingLib.sol +3 -1
- package/contracts/staking/StakingManager.sol +0 -3
- package/contracts/staking/StakingReader.sol +9 -17
- package/contracts/staking/StakingService.sol +6 -6
- package/contracts/staking/StakingServiceManager.sol +1 -4
- package/contracts/staking/StakingStore.sol +4 -6
- package/contracts/staking/TargetHandler.sol +4 -5
- package/contracts/type/ObjectType.sol +2 -31
- package/contracts/type/Referral.sol +6 -0
- package/contracts/type/RequestIdSet.sol +62 -0
- package/contracts/type/Seconds.sol +4 -0
- package/contracts/type/String.sol +30 -0
- package/contracts/type/Timestamp.sol +10 -1
- package/contracts/upgradeability/ProxyManager.sol +1 -5
- package/package.json +2 -1
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.json +0 -24
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +0 -4
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.json +0 -40
@@ -7,7 +7,6 @@ import {EnumerableSet} from "@openzeppelin/contracts/utils/structs/EnumerableSet
|
|
7
7
|
import {IAccess} from "./IAccess.sol";
|
8
8
|
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
9
9
|
import {IAuthorization} from "./IAuthorization.sol";
|
10
|
-
import {IRegistry} from "../registry/IRegistry.sol";
|
11
10
|
import {IServiceAuthorization} from "./IServiceAuthorization.sol";
|
12
11
|
|
13
12
|
import {AccessAdminLib} from "./AccessAdminLib.sol";
|
@@ -300,11 +299,12 @@ contract AccessAdmin is
|
|
300
299
|
//--- internal/private functions -------------------------------------------------//
|
301
300
|
|
302
301
|
function _linkToNftOwnable(address registerable) internal {
|
303
|
-
|
302
|
+
NftId nftId = _getRegistry().getNftIdForAddress(registerable);
|
303
|
+
if (nftId.eqz()) {
|
304
304
|
revert ErrorAccessAdminNotRegistered(registerable);
|
305
305
|
}
|
306
306
|
|
307
|
-
_linkedNftId =
|
307
|
+
_linkedNftId = nftId;
|
308
308
|
}
|
309
309
|
|
310
310
|
|
@@ -7,7 +7,7 @@ import {IAccess} from "./IAccess.sol";
|
|
7
7
|
import {IAccessAdmin} from "./IAccessAdmin.sol";
|
8
8
|
import {IAuthorization} from "./IAuthorization.sol";
|
9
9
|
import {IComponent} from "../shared/IComponent.sol";
|
10
|
-
import {
|
10
|
+
import {IAuthorizedComponent} from "../shared/IAuthorizedComponent.sol";
|
11
11
|
import {IRegistry} from "../registry/IRegistry.sol";
|
12
12
|
import {IService} from "../shared/IService.sol";
|
13
13
|
import {IServiceAuthorization} from "./IServiceAuthorization.sol";
|
@@ -335,10 +335,10 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
|
|
335
335
|
view
|
336
336
|
returns (IAuthorization componentAuthorization)
|
337
337
|
{
|
338
|
-
checkIsRegistered(address(accessAdmin.getRegistry()), componentAddress, expectedType);
|
339
|
-
|
340
338
|
VersionPart expecteRelease = accessAdmin.getRelease();
|
341
|
-
|
339
|
+
checkIsRegistered(componentAddress, expectedType, expecteRelease);
|
340
|
+
|
341
|
+
IAuthorizedComponent component = IAuthorizedComponent(componentAddress);
|
342
342
|
componentAuthorization = component.getAuthorization();
|
343
343
|
|
344
344
|
checkAuthorization(
|
@@ -435,22 +435,25 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
|
|
435
435
|
|
436
436
|
|
437
437
|
function checkIsRegistered(
|
438
|
-
address registry,
|
439
438
|
address target,
|
440
|
-
ObjectType expectedType
|
439
|
+
ObjectType expectedType,
|
440
|
+
VersionPart expectedRelease
|
441
441
|
)
|
442
442
|
public
|
443
443
|
view
|
444
444
|
{
|
445
|
-
|
445
|
+
IRegistry.ObjectInfo memory info = ContractLib.getRegistry().getObjectInfo(target);
|
446
446
|
|
447
|
-
|
448
|
-
if (tagetType.eqz()) {
|
447
|
+
if (info.objectType.eqz()) {
|
449
448
|
revert IAccessAdmin.ErrorAccessAdminNotRegistered(target);
|
450
449
|
}
|
451
450
|
|
452
|
-
if (
|
453
|
-
revert IAccessAdmin.ErrorAccessAdminTargetTypeMismatch(target, expectedType,
|
451
|
+
if (info.objectType != expectedType) {
|
452
|
+
revert IAccessAdmin.ErrorAccessAdminTargetTypeMismatch(target, expectedType, info.objectType);
|
453
|
+
}
|
454
|
+
|
455
|
+
if (info.release != expectedRelease) {
|
456
|
+
revert IAccessAdmin.ErrorAccessAdminTargetReleaseMismatch(target, expectedRelease, info.release);
|
454
457
|
}
|
455
458
|
}
|
456
459
|
|
@@ -57,6 +57,7 @@ interface IAccessAdmin is
|
|
57
57
|
error ErrorAccessAdminTargetNotCreated(address target);
|
58
58
|
error ErrorAccessAdminTargetNotRegistered(address target);
|
59
59
|
error ErrorAccessAdminTargetTypeMismatch(address target, ObjectType expectedType, ObjectType actualType);
|
60
|
+
error ErrorAccessAdminTargetReleaseMismatch(address target, VersionPart expectedRelease, VersionPart actualRelease);
|
60
61
|
|
61
62
|
// check authorization
|
62
63
|
error ErrorAccessAdminAlreadyInitialized(address authorization);
|
@@ -119,7 +119,6 @@ contract BasicDistribution is
|
|
119
119
|
}
|
120
120
|
|
121
121
|
function _initializeBasicDistribution(
|
122
|
-
address registry,
|
123
122
|
NftId instanceNftId,
|
124
123
|
IAuthorization authorization,
|
125
124
|
address initialOwner,
|
@@ -130,7 +129,6 @@ contract BasicDistribution is
|
|
130
129
|
onlyInitializing()
|
131
130
|
{
|
132
131
|
__Distribution_init(
|
133
|
-
registry,
|
134
132
|
instanceNftId,
|
135
133
|
authorization,
|
136
134
|
false,
|
@@ -2,7 +2,7 @@
|
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
4
|
import {IAccess} from "../authorization/IAccess.sol";
|
5
|
-
import {IComponent} from "../shared/
|
5
|
+
import {IComponent} from "../shared/IComponent.sol";
|
6
6
|
|
7
7
|
import {Authorization} from "../authorization/Authorization.sol";
|
8
8
|
import {BasicDistribution} from "./BasicDistribution.sol";
|
@@ -104,7 +104,6 @@ abstract contract Distribution is
|
|
104
104
|
|
105
105
|
|
106
106
|
function __Distribution_init(
|
107
|
-
address registry,
|
108
107
|
NftId productNftId,
|
109
108
|
IAuthorization authorization,
|
110
109
|
bool isInterceptor,
|
@@ -116,7 +115,6 @@ abstract contract Distribution is
|
|
116
115
|
onlyInitializing()
|
117
116
|
{
|
118
117
|
__InstanceLinkedComponent_init(
|
119
|
-
registry,
|
120
118
|
productNftId,
|
121
119
|
name,
|
122
120
|
DISTRIBUTION(),
|
@@ -20,8 +20,6 @@ import {KEEP_STATE} from "../type/StateId.sol";
|
|
20
20
|
import {ObjectType, ACCOUNTING, COMPONENT, DISTRIBUTION, INSTANCE, DISTRIBUTION, DISTRIBUTOR, REGISTRY} from "../type/ObjectType.sol";
|
21
21
|
import {InstanceReader} from "../instance/InstanceReader.sol";
|
22
22
|
import {InstanceStore} from "../instance/InstanceStore.sol";
|
23
|
-
// TODO PoolLib feels wrong, should likely go in a component type independent lib
|
24
|
-
import {PoolLib} from "../pool/PoolLib.sol";
|
25
23
|
import {ReferralId, ReferralStatus, ReferralLib, REFERRAL_OK, REFERRAL_ERROR_UNKNOWN, REFERRAL_ERROR_EXPIRED, REFERRAL_ERROR_EXHAUSTED} from "../type/Referral.sol";
|
26
24
|
import {Seconds} from "../type/Seconds.sol";
|
27
25
|
import {Service} from "../shared/Service.sol";
|
@@ -47,11 +45,10 @@ contract DistributionService is
|
|
47
45
|
onlyInitializing()
|
48
46
|
{
|
49
47
|
(
|
50
|
-
address authority
|
51
|
-
|
52
|
-
) = abi.decode(data, (address, address));
|
48
|
+
address authority
|
49
|
+
) = abi.decode(data, (address));
|
53
50
|
|
54
|
-
__Service_init(authority,
|
51
|
+
__Service_init(authority, owner);
|
55
52
|
|
56
53
|
_accountingService = IAccountingService(_getServiceAddress(ACCOUNTING()));
|
57
54
|
_componentService = IComponentService(_getServiceAddress(COMPONENT()));
|
@@ -81,7 +78,7 @@ contract DistributionService is
|
|
81
78
|
(NftId distributionNftId, IInstance instance) = _getAndVerifyActiveDistribution();
|
82
79
|
|
83
80
|
{
|
84
|
-
NftId productNftId =
|
81
|
+
NftId productNftId = _getRegistry().getParentNftId(distributionNftId);
|
85
82
|
IComponents.FeeInfo memory feeInfo = instance.getInstanceReader().getFeeInfo(productNftId);
|
86
83
|
|
87
84
|
UFixed variableDistributionFees = feeInfo.distributionFee.fractionalFee;
|
@@ -199,7 +196,7 @@ contract DistributionService is
|
|
199
196
|
}
|
200
197
|
|
201
198
|
{
|
202
|
-
NftId distributorDistributionNftId =
|
199
|
+
NftId distributorDistributionNftId = _getRegistry().getParentNftId(distributorNftId);
|
203
200
|
if (distributorDistributionNftId != distributionNftId) {
|
204
201
|
revert ErrorDistributionServiceDistributorDistributionMismatch(distributorNftId, distributorDistributionNftId, distributionNftId);
|
205
202
|
}
|
@@ -254,7 +251,7 @@ contract DistributionService is
|
|
254
251
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
255
252
|
{
|
256
253
|
if (referralIsValid(distributionNftId, referralId)) {
|
257
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(
|
254
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
258
255
|
|
259
256
|
// update book keeping for referral info
|
260
257
|
IDistribution.ReferralInfo memory referralInfo = instance.getInstanceReader().getReferralInfo(referralId);
|
@@ -275,7 +272,7 @@ contract DistributionService is
|
|
275
272
|
restricted()
|
276
273
|
onlyNftOfType(distributionNftId, DISTRIBUTION())
|
277
274
|
{
|
278
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(
|
275
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
279
276
|
InstanceReader reader = instance.getInstanceReader();
|
280
277
|
InstanceStore store = instance.getInstanceStore();
|
281
278
|
|
@@ -343,7 +340,7 @@ contract DistributionService is
|
|
343
340
|
|
344
341
|
// transfer amount to distributor
|
345
342
|
{
|
346
|
-
address distributor =
|
343
|
+
address distributor = _getRegistry().ownerOf(distributorNftId);
|
347
344
|
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN()), withdrawnAmount);
|
348
345
|
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
349
346
|
}
|
@@ -360,7 +357,7 @@ contract DistributionService is
|
|
360
357
|
return false;
|
361
358
|
}
|
362
359
|
|
363
|
-
IInstance instance = IInstance(ContractLib.getInstanceForComponent(
|
360
|
+
IInstance instance = IInstance(ContractLib.getInstanceForComponent(distributionNftId));
|
364
361
|
IDistribution.ReferralInfo memory info = instance.getInstanceReader().getReferralInfo(referralId);
|
365
362
|
|
366
363
|
if (info.distributorNftId.eqz()) {
|
@@ -441,7 +438,11 @@ contract DistributionService is
|
|
441
438
|
IInstance instance
|
442
439
|
)
|
443
440
|
{
|
444
|
-
|
441
|
+
(poolNftId, instance) = ContractLib.getAndVerifyComponent(
|
442
|
+
msg.sender,
|
443
|
+
DISTRIBUTION(),
|
444
|
+
getRelease(),
|
445
|
+
true);
|
445
446
|
}
|
446
447
|
|
447
448
|
|
@@ -12,14 +12,12 @@ contract DistributionServiceManager is ProxyManager {
|
|
12
12
|
/// @dev initializes proxy manager with distribution service implementation and deploys instance
|
13
13
|
constructor(
|
14
14
|
address authority,
|
15
|
-
address registry,
|
16
15
|
bytes32 salt
|
17
16
|
)
|
18
17
|
{
|
19
18
|
DistributionService svc = new DistributionService{salt: salt}();
|
20
|
-
bytes memory data = abi.encode(authority
|
19
|
+
bytes memory data = abi.encode(authority);
|
21
20
|
IUpgradeable upgradeable = initialize(
|
22
|
-
registry,
|
23
21
|
address(svc),
|
24
22
|
data,
|
25
23
|
salt);
|
@@ -16,7 +16,6 @@ contract FirePool is
|
|
16
16
|
BasicPool
|
17
17
|
{
|
18
18
|
constructor(
|
19
|
-
address registry,
|
20
19
|
NftId fireProductNftId,
|
21
20
|
string memory componentName,
|
22
21
|
IAuthorization authorization
|
@@ -24,7 +23,6 @@ contract FirePool is
|
|
24
23
|
{
|
25
24
|
address initialOwner = msg.sender;
|
26
25
|
_intialize(
|
27
|
-
registry,
|
28
26
|
fireProductNftId,
|
29
27
|
componentName,
|
30
28
|
IComponents.PoolInfo({
|
@@ -41,7 +39,6 @@ contract FirePool is
|
|
41
39
|
}
|
42
40
|
|
43
41
|
function _intialize(
|
44
|
-
address registry,
|
45
42
|
NftId fireProductNftId,
|
46
43
|
string memory componentName,
|
47
44
|
IComponents.PoolInfo memory poolInfo,
|
@@ -52,7 +49,6 @@ contract FirePool is
|
|
52
49
|
initializer
|
53
50
|
{
|
54
51
|
_initializeBasicPool(
|
55
|
-
registry,
|
56
52
|
fireProductNftId,
|
57
53
|
componentName,
|
58
54
|
poolInfo,
|
@@ -65,7 +65,6 @@ contract FireProduct is
|
|
65
65
|
mapping(uint256 fireId => mapping (NftId policyId => bool claimed)) private _claimed;
|
66
66
|
|
67
67
|
constructor(
|
68
|
-
address registry,
|
69
68
|
NftId instanceNftid,
|
70
69
|
string memory componentName,
|
71
70
|
IAuthorization authorization
|
@@ -74,7 +73,6 @@ contract FireProduct is
|
|
74
73
|
address initialOwner = msg.sender;
|
75
74
|
|
76
75
|
_initialize(
|
77
|
-
registry,
|
78
76
|
instanceNftid,
|
79
77
|
componentName,
|
80
78
|
authorization,
|
@@ -82,7 +80,6 @@ contract FireProduct is
|
|
82
80
|
}
|
83
81
|
|
84
82
|
function _initialize(
|
85
|
-
address registry,
|
86
83
|
NftId instanceNftId,
|
87
84
|
string memory componentName,
|
88
85
|
IAuthorization authorization,
|
@@ -92,7 +89,6 @@ contract FireProduct is
|
|
92
89
|
initializer
|
93
90
|
{
|
94
91
|
_initializeBasicProduct(
|
95
|
-
registry,
|
96
92
|
instanceNftId,
|
97
93
|
componentName,
|
98
94
|
IComponents.ProductInfo({
|
@@ -0,0 +1,322 @@
|
|
1
|
+
// SPDX-License-Identifier: Apache-2.0
|
2
|
+
pragma solidity ^0.8.20;
|
3
|
+
|
4
|
+
import {IPolicy} from "../../instance/module/IPolicy.sol";
|
5
|
+
import {IPolicyService} from "../../product/IPolicyService.sol";
|
6
|
+
|
7
|
+
import {Amount, AmountLib} from "../../type/Amount.sol";
|
8
|
+
import {FlightMessageVerifier} from "./FlightMessageVerifier.sol";
|
9
|
+
import {FlightProduct} from "./FlightProduct.sol";
|
10
|
+
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
11
|
+
import {NftId} from "../../type/NftId.sol";
|
12
|
+
import {RequestId} from "../../type/RequestId.sol";
|
13
|
+
import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
|
14
|
+
import {StateId} from "../../type/StateId.sol";
|
15
|
+
import {Str} from "../../type/String.sol";
|
16
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
17
|
+
|
18
|
+
|
19
|
+
library FlightLib {
|
20
|
+
|
21
|
+
function checkApplicationDataAndSignature(
|
22
|
+
FlightProduct flightProduct,
|
23
|
+
Str flightData,
|
24
|
+
Timestamp departureTime,
|
25
|
+
Timestamp arrivalTime,
|
26
|
+
Amount premiumAmount,
|
27
|
+
uint256[6] memory statistics
|
28
|
+
// signature fields
|
29
|
+
// uint8 v,
|
30
|
+
// bytes32 r,
|
31
|
+
// bytes32 s
|
32
|
+
)
|
33
|
+
public
|
34
|
+
view
|
35
|
+
{
|
36
|
+
_checkApplicationData(flightProduct, premiumAmount, arrivalTime, departureTime);
|
37
|
+
|
38
|
+
// (
|
39
|
+
// address actualSigner,,
|
40
|
+
// bool success
|
41
|
+
// ) = flightProduct.getFlightMessageVerifier().verifyRatingsHash(
|
42
|
+
// flightData,
|
43
|
+
// departureTime,
|
44
|
+
// arrivalTime,
|
45
|
+
// premiumAmount,
|
46
|
+
// statistics,
|
47
|
+
// v, r, s);
|
48
|
+
|
49
|
+
// if (!success) {
|
50
|
+
// revert FlightProduct.ErrorApplicationDataSignatureMismatch(
|
51
|
+
// flightProduct.getFlightMessageVerifier().getExpectedSigner(),
|
52
|
+
// actualSigner);
|
53
|
+
// }
|
54
|
+
}
|
55
|
+
|
56
|
+
|
57
|
+
function _checkApplicationData(
|
58
|
+
FlightProduct flightProduct,
|
59
|
+
Amount premiumAmount,
|
60
|
+
Timestamp arrivalTime,
|
61
|
+
Timestamp departureTime
|
62
|
+
)
|
63
|
+
internal
|
64
|
+
view
|
65
|
+
{
|
66
|
+
// solhint-disable
|
67
|
+
if (premiumAmount < flightProduct.MIN_PREMIUM()) {
|
68
|
+
revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
|
69
|
+
}
|
70
|
+
if (premiumAmount > flightProduct.MAX_PREMIUM()) {
|
71
|
+
revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
|
72
|
+
}
|
73
|
+
if (arrivalTime <= departureTime) {
|
74
|
+
revert FlightProduct.ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
|
75
|
+
}
|
76
|
+
|
77
|
+
if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
|
78
|
+
revert FlightProduct.ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
|
79
|
+
}
|
80
|
+
if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
|
81
|
+
revert FlightProduct.ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
|
82
|
+
}
|
83
|
+
if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
|
84
|
+
revert FlightProduct.ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
|
85
|
+
}
|
86
|
+
// solhint-enable
|
87
|
+
}
|
88
|
+
|
89
|
+
|
90
|
+
// TODO fix or cleanup
|
91
|
+
// function checkApplication(
|
92
|
+
// FlightProduct flightProduct,
|
93
|
+
// Str carrierFlightNumber,
|
94
|
+
// Timestamp departureTime,
|
95
|
+
// Timestamp arrivalTime,
|
96
|
+
// Amount premium
|
97
|
+
// )
|
98
|
+
// external
|
99
|
+
// view
|
100
|
+
// returns (uint256 errors)
|
101
|
+
// {
|
102
|
+
// // Validate input parameters
|
103
|
+
// if (premium < flightProduct.MIN_PREMIUM()) { errors = errors | (uint256(1) << 0); }
|
104
|
+
// if (premium > flightProduct.MAX_PREMIUM()) { errors = errors | (uint256(1) << 1); }
|
105
|
+
// if (arrivalTime < departureTime) { errors = errors | (uint256(1) << 2); }
|
106
|
+
// if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) { errors = errors | (uint256(1) << 3); }
|
107
|
+
// if (departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 4); }
|
108
|
+
// if (departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) { errors = errors | (uint256(1) << 5); }
|
109
|
+
|
110
|
+
// (, bool exists, FlightProduct.FlightRisk memory flightRisk) = getFlightRisk(
|
111
|
+
// flightProduct.getInstanceReader(), flightProduct.getNftId(), carrierFlightNumber, departureTime, arrivalTime);
|
112
|
+
|
113
|
+
// if (exists) {
|
114
|
+
// Amount sumInsured = AmountLib.toAmount(premium.toInt() * flightRisk.premiumMultiplier);
|
115
|
+
// if (flightRisk.sumOfSumInsuredAmounts + sumInsured > flightProduct.MAX_TOTAL_PAYOUT()) {
|
116
|
+
// errors = errors | (uint256(1) << 6);
|
117
|
+
// }
|
118
|
+
// }
|
119
|
+
|
120
|
+
// return errors;
|
121
|
+
// }
|
122
|
+
|
123
|
+
|
124
|
+
/// @dev calculates payout option based on flight status and delay minutes.
|
125
|
+
/// Is not a view function as it emits log evens in case of unexpected status.
|
126
|
+
// TODO decide if reverts instead of log events could work too (and convert the function into a view function)
|
127
|
+
function checkAndGetPayoutOption(
|
128
|
+
RequestId requestId,
|
129
|
+
RiskId riskId,
|
130
|
+
bytes1 status,
|
131
|
+
int256 delayMinutes
|
132
|
+
)
|
133
|
+
public
|
134
|
+
returns (uint8 payoutOption)
|
135
|
+
{
|
136
|
+
// default: no payout
|
137
|
+
payoutOption = type(uint8).max;
|
138
|
+
|
139
|
+
// check status
|
140
|
+
if (status != "L" && status != "A" && status != "C" && status != "D") {
|
141
|
+
emit FlightProduct.LogErrorUnprocessableStatus(requestId, riskId, status);
|
142
|
+
return payoutOption;
|
143
|
+
}
|
144
|
+
|
145
|
+
if (status == "A") {
|
146
|
+
// todo: active, reschedule oracle call + 45 min
|
147
|
+
emit FlightProduct.LogErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
|
148
|
+
return payoutOption;
|
149
|
+
}
|
150
|
+
|
151
|
+
// trigger payout if applicable
|
152
|
+
if (status == "C") { payoutOption = 3; }
|
153
|
+
else if (status == "D") { payoutOption = 4; }
|
154
|
+
else if (delayMinutes >= 15 && delayMinutes < 30) { payoutOption = 0; }
|
155
|
+
else if (delayMinutes >= 30 && delayMinutes < 45) { payoutOption = 1; }
|
156
|
+
else if (delayMinutes >= 45) { payoutOption = 2; }
|
157
|
+
}
|
158
|
+
|
159
|
+
|
160
|
+
function calculateWeight(
|
161
|
+
FlightProduct flightProduct,
|
162
|
+
uint256[6] memory statistics
|
163
|
+
)
|
164
|
+
public
|
165
|
+
view
|
166
|
+
returns (uint256 weight)
|
167
|
+
{
|
168
|
+
// check we have enough observations
|
169
|
+
if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
|
170
|
+
revert FlightProduct.ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
|
171
|
+
}
|
172
|
+
|
173
|
+
weight = 0;
|
174
|
+
for (uint256 i = 1; i < 6; i++) {
|
175
|
+
weight += flightProduct.WEIGHT_PATTERN(i) * statistics[i] * 10000 / statistics[0];
|
176
|
+
}
|
177
|
+
|
178
|
+
// To avoid div0 in the payout section, we have to make a minimal assumption on weight
|
179
|
+
if (weight == 0) {
|
180
|
+
weight = 100000 / statistics[0];
|
181
|
+
}
|
182
|
+
|
183
|
+
// TODO comment on intended effect
|
184
|
+
weight = (weight * (100 + flightProduct.MARGIN_PERCENT())) / 100;
|
185
|
+
}
|
186
|
+
|
187
|
+
|
188
|
+
// REMARK: each flight may get different payouts depending on the latest statics
|
189
|
+
function calculatePayoutAmounts(
|
190
|
+
FlightProduct flightProduct,
|
191
|
+
Amount premium,
|
192
|
+
uint256[6] memory statistics
|
193
|
+
)
|
194
|
+
public
|
195
|
+
view
|
196
|
+
returns (
|
197
|
+
uint256 weight,
|
198
|
+
Amount[5] memory payoutAmounts,
|
199
|
+
Amount sumInsuredAmount // simply the max of payoutAmounts
|
200
|
+
)
|
201
|
+
{
|
202
|
+
if (premium < flightProduct.MIN_PREMIUM()) {
|
203
|
+
revert FlightProduct.ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
|
204
|
+
}
|
205
|
+
if (premium > flightProduct.MAX_PREMIUM()) {
|
206
|
+
revert FlightProduct.ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
|
207
|
+
}
|
208
|
+
|
209
|
+
sumInsuredAmount = AmountLib.zero();
|
210
|
+
weight = calculateWeight(flightProduct, statistics);
|
211
|
+
|
212
|
+
for (uint256 i = 0; i < 5; i++) {
|
213
|
+
Amount payoutAmount = AmountLib.toAmount(
|
214
|
+
premium.toInt() * flightProduct.WEIGHT_PATTERN(i + 1) * 10000 / weight);
|
215
|
+
|
216
|
+
// cap payout and update sum insured if applicable
|
217
|
+
if (payoutAmount > flightProduct.MAX_PAYOUT()) { payoutAmount = flightProduct.MAX_PAYOUT(); }
|
218
|
+
if (payoutAmount > sumInsuredAmount) { sumInsuredAmount = payoutAmount; }
|
219
|
+
|
220
|
+
payoutAmounts[i] = payoutAmount;
|
221
|
+
}
|
222
|
+
}
|
223
|
+
|
224
|
+
|
225
|
+
function getPayoutAmount(
|
226
|
+
bytes memory applicationData,
|
227
|
+
uint8 payoutOption
|
228
|
+
)
|
229
|
+
public
|
230
|
+
returns (Amount payoutAmount)
|
231
|
+
{
|
232
|
+
// retrieve payout amounts from application data
|
233
|
+
(, Amount[5] memory payoutAmounts) = abi.decode(
|
234
|
+
applicationData, (Amount, Amount[5]));
|
235
|
+
|
236
|
+
// get payout amount for selected option
|
237
|
+
payoutAmount = payoutAmounts[payoutOption];
|
238
|
+
}
|
239
|
+
|
240
|
+
|
241
|
+
function getFlightRisk(
|
242
|
+
InstanceReader reader,
|
243
|
+
NftId productNftId,
|
244
|
+
Str flightData,
|
245
|
+
Timestamp departureTime,
|
246
|
+
Timestamp arrivalTime
|
247
|
+
)
|
248
|
+
public
|
249
|
+
view
|
250
|
+
returns (
|
251
|
+
RiskId riskId,
|
252
|
+
bool exists,
|
253
|
+
FlightProduct.FlightRisk memory flightRisk
|
254
|
+
)
|
255
|
+
{
|
256
|
+
riskId = getRiskId(productNftId, flightData);
|
257
|
+
(exists, flightRisk) = getFlightRisk(reader, productNftId, riskId);
|
258
|
+
|
259
|
+
// create new risk if not existing
|
260
|
+
if (!exists) {
|
261
|
+
flightRisk = FlightProduct.FlightRisk({
|
262
|
+
flightData: flightData,
|
263
|
+
departureTime: departureTime,
|
264
|
+
arrivalTime: arrivalTime,
|
265
|
+
sumOfSumInsuredAmounts: AmountLib.toAmount(0),
|
266
|
+
status: bytes1(0),
|
267
|
+
delayMinutes: 0});
|
268
|
+
}
|
269
|
+
}
|
270
|
+
|
271
|
+
|
272
|
+
function getFlightRisk(
|
273
|
+
InstanceReader reader,
|
274
|
+
NftId productNftId,
|
275
|
+
RiskId riskId
|
276
|
+
)
|
277
|
+
public
|
278
|
+
view
|
279
|
+
returns (
|
280
|
+
bool exists,
|
281
|
+
FlightProduct.FlightRisk memory flightRisk
|
282
|
+
)
|
283
|
+
{
|
284
|
+
// check if risk exists
|
285
|
+
exists = reader.isProductRisk(productNftId, riskId);
|
286
|
+
|
287
|
+
// get risk data if risk exists
|
288
|
+
if (exists) {
|
289
|
+
flightRisk = abi.decode(
|
290
|
+
reader.getRiskInfo(riskId).data, (FlightProduct.FlightRisk));
|
291
|
+
}
|
292
|
+
}
|
293
|
+
|
294
|
+
|
295
|
+
function getRiskId(
|
296
|
+
NftId productNftId,
|
297
|
+
Str flightData
|
298
|
+
)
|
299
|
+
public
|
300
|
+
view
|
301
|
+
returns (RiskId riskId)
|
302
|
+
{
|
303
|
+
bytes32 riskKey = getRiskKey(flightData);
|
304
|
+
riskId = getRiskId(productNftId, riskKey);
|
305
|
+
}
|
306
|
+
|
307
|
+
|
308
|
+
function getRiskKey(
|
309
|
+
Str flightData
|
310
|
+
)
|
311
|
+
internal
|
312
|
+
pure
|
313
|
+
returns (bytes32 riskKey)
|
314
|
+
{
|
315
|
+
return keccak256(abi.encode(flightData));
|
316
|
+
}
|
317
|
+
|
318
|
+
|
319
|
+
function getRiskId(NftId productNftId, bytes32 riskKey) internal view returns (RiskId riskId) {
|
320
|
+
return RiskIdLib.toRiskId(productNftId, riskKey);
|
321
|
+
}
|
322
|
+
}
|