@etherisc/gif-next 3.0.0-24be7ed-702 → 3.0.0-2866c01-498
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 +10 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +44 -58
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +35 -39
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +16 -22
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +119 -119
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdminLib.sol/AccessAdminLib.json +145 -100
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessManagerCloneable.sol/AccessManagerCloneable.json +42 -29
- 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 +75 -63
- 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 +20 -114
- 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 +2 -96
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +207 -134
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +66 -66
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.json +2 -96
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +115 -42
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/DamageLevel.sol/DamageLevelLib.json +2 -2
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FirePool.sol/FirePool.json +22 -97
- 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 +49 -129
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +20 -20
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireUSD.sol/FireUSD.json +2 -2
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +799 -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/FlightNft.sol/FlightNft.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightNft.sol/FlightNft.json +801 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +1278 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +896 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +1391 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +844 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +2214 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +891 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.dbg.json +4 -0
- package/artifacts/contracts/examples/flight/FlightProductManager.sol/FlightProductManager.json +711 -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 +26 -120
- 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 +17 -92
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +30 -105
- 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 +25 -100
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +20 -20
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/BaseStore.sol/BaseStore.json +50 -0
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.dbg.json +1 -1
- package/artifacts/contracts/instance/BundleSet.sol/BundleSet.json +56 -56
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.dbg.json +1 -1
- package/artifacts/contracts/instance/IBaseStore.sol/IBaseStore.json +50 -0
- package/artifacts/contracts/instance/IInstance.sol/IInstance.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstance.sol/IInstance.json +23 -23
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +82 -9
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +33 -33
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +197 -197
- 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 +236 -75
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +125 -36
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +32 -32
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +164 -114
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +134 -84
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +61 -61
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/base/BalanceStore.sol/BalanceStore.json +2 -2
- package/artifacts/contracts/instance/base/Cloneable.sol/Cloneable.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectCounter.sol/ObjectCounter.json +2 -2
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectLifecycle.sol/ObjectLifecycle.json +2 -2
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.dbg.json +1 -1
- package/artifacts/contracts/instance/base/ObjectSet.sol/ObjectSet.json +2 -2
- package/artifacts/contracts/instance/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/mock/Dip.sol/Dip.json +2 -2
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/BasicOracle.sol/BasicOracle.json +6 -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 +2 -77
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/IOracleService.sol/IOracleService.json +20 -14
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.json +2 -77
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +58 -52
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +41 -41
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.json +5 -80
- 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 +94 -82
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +53 -53
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +36 -24
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.json +5 -80
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +62 -50
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- package/artifacts/contracts/pool/Pool.sol/Pool.json +5 -80
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolLib.sol/PoolLib.json +4 -9
- package/artifacts/contracts/pool/PoolService.sol/PoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolService.sol/PoolService.json +120 -108
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +54 -54
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +37 -37
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +35 -35
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.json +2 -77
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +20 -20
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +89 -83
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +58 -58
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.json +11 -11
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.json +27 -21
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +27 -15
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.json +2 -2
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.json +2 -77
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.json +12 -12
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +87 -75
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceLib.sol/PolicyServiceLib.json +20 -12
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyServiceManager.sol/PolicyServiceManager.json +51 -51
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +34 -34
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +42 -42
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/Product.sol/Product.json +2 -77
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +34 -34
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +33 -33
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +4 -4
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +14 -8
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.json +2 -2
- 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 +55 -45
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +188 -188
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAuthorization.sol/RegistryAuthorization.json +2 -27
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryService.sol/RegistryService.json +8 -8
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +28 -28
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +205 -205
- 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 +116 -106
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.dbg.json +1 -1
- package/artifacts/contracts/registry/ServiceAuthorizationV3.sol/ServiceAuthorizationV3.json +19 -19
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/TokenRegistry.sol/TokenRegistry.json +21 -21
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/Component.sol/Component.json +2 -77
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +330 -114
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +52 -52
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ContractLib.json +2 -2
- package/artifacts/contracts/shared/ContractLib.sol/IInstanceAdminHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITargetHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/ContractLib.sol/ITokenRegistryHelper.dbg.json +1 -1
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.dbg.json +4 -0
- package/artifacts/contracts/shared/IAuthorizedComponent.sol/IAuthorizedComponent.json +558 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponent.sol/IComponent.json +2 -77
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +272 -56
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.json +2 -77
- 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 +2 -2
- package/artifacts/contracts/shared/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.json +2 -2
- 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 +2 -2
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.dbg.json +1 -1
- package/artifacts/contracts/shared/InitializableERC165.sol/InitializableERC165.json +2 -2
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/InstanceLinkedComponent.sol/InstanceLinkedComponent.json +2 -77
- 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 +4 -4
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/PolicyHolder.sol/PolicyHolder.json +2 -2
- package/artifacts/contracts/shared/Registerable.sol/Registerable.dbg.json +1 -1
- package/artifacts/contracts/shared/Registerable.sol/Registerable.json +2 -2
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/RegistryLinked.sol/RegistryLinked.json +2 -2
- package/artifacts/contracts/shared/Service.sol/Service.dbg.json +1 -1
- package/artifacts/contracts/shared/Service.sol/Service.json +2 -2
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +39 -66
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +22 -49
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandlerDeployerLib.sol/TokenHandlerDeployerLib.json +28 -28
- package/artifacts/contracts/staking/IStaking.sol/IStaking.dbg.json +1 -1
- package/artifacts/contracts/staking/IStaking.sol/IStaking.json +27 -77
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +7 -207
- 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 +75 -125
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingLib.sol/StakingLib.json +2 -7
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingManager.sol/StakingManager.json +44 -44
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingReader.sol/StakingReader.json +2 -2
- package/artifacts/contracts/staking/StakingService.sol/StakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingService.sol/StakingService.json +21 -221
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +31 -31
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingStore.sol/StakingStore.json +2 -2
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetHandler.sol/TargetHandler.json +2 -7
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.dbg.json +1 -1
- package/artifacts/contracts/staking/TargetManagerLib.sol/TargetManagerLib.json +2 -7
- 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 +2 -7
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.dbg.json +1 -1
- package/artifacts/contracts/type/Blocknumber.sol/BlocknumberLib.json +2 -2
- package/artifacts/contracts/type/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/Fee.sol/FeeLib.json +2 -7
- 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/SelectorLib.json +2 -2
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.dbg.json +1 -1
- package/artifacts/contracts/type/Selector.sol/SelectorSetLib.json +2 -2
- package/artifacts/contracts/type/StateId.sol/StateIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/StateId.sol/StateIdLib.json +2 -2
- 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/UFixed.sol/UFixedLib.json +2 -7
- 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 +2 -2
- package/artifacts/contracts/upgradeability/IVersionable.sol/IVersionable.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/ProxyManager.sol/ProxyManager.json +6 -6
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.dbg.json +1 -1
- package/artifacts/contracts/upgradeability/UpgradableProxyWithAdmin.sol/UpgradableProxyWithAdmin.json +3 -3
- package/artifacts/contracts/upgradeability/Versionable.sol/Versionable.dbg.json +1 -1
- package/contracts/accounting/AccountingService.sol +17 -29
- package/contracts/accounting/IAccountingService.sol +7 -8
- package/contracts/authorization/AccessAdmin.sol +16 -33
- package/contracts/authorization/AccessAdminLib.sol +20 -3
- package/contracts/authorization/AccessManagerCloneable.sol +4 -0
- package/contracts/authorization/IAccessAdmin.sol +9 -8
- package/contracts/distribution/DistributionService.sol +24 -19
- package/contracts/distribution/IDistributionComponent.sol +0 -2
- package/contracts/distribution/IDistributionService.sol +8 -7
- package/contracts/examples/flight/FlightLib.sol +337 -0
- package/contracts/examples/flight/FlightMessageVerifier.sol +128 -0
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +226 -0
- package/contracts/examples/flight/FlightOracleAuthorization.sol +57 -0
- package/contracts/examples/flight/FlightPool.sol +89 -0
- package/contracts/examples/flight/FlightPoolAuthorization.sol +37 -0
- package/contracts/examples/flight/FlightProduct.sol +687 -0
- package/contracts/examples/flight/FlightProductAuthorization.sol +70 -0
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +28 -0
- package/contracts/examples/flight/originalV1.sol +396 -0
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/BundleSet.sol +6 -6
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstance.sol +8 -8
- package/contracts/instance/IInstanceService.sol +6 -4
- package/contracts/instance/Instance.sol +1 -1
- package/contracts/instance/InstanceAdmin.sol +0 -1
- package/contracts/instance/InstanceReader.sol +44 -8
- package/contracts/instance/InstanceService.sol +8 -0
- package/contracts/instance/InstanceStore.sol +14 -14
- package/contracts/instance/ProductStore.sol +14 -14
- package/contracts/instance/RiskSet.sol +6 -6
- package/contracts/oracle/BasicOracle.sol +1 -0
- package/contracts/oracle/IOracleService.sol +17 -17
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/oracle/OracleService.sol +1 -1
- package/contracts/pool/BundleService.sol +1 -1
- package/contracts/pool/IBundleService.sol +10 -10
- package/contracts/pool/IPoolComponent.sol +1 -1
- package/contracts/pool/IPoolService.sol +14 -14
- package/contracts/pool/PoolService.sol +2 -2
- package/contracts/product/BasicProductAuthorization.sol +3 -2
- package/contracts/product/ClaimService.sol +1 -1
- package/contracts/product/IApplicationService.sol +8 -8
- package/contracts/product/IClaimService.sol +9 -9
- package/contracts/product/IPolicyService.sol +7 -7
- package/contracts/product/IRiskService.sol +5 -5
- package/contracts/product/PolicyService.sol +1 -1
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/registry/ChainNft.sol +2 -2
- package/contracts/registry/IRegistry.sol +3 -3
- package/contracts/registry/Registry.sol +5 -3
- package/contracts/registry/RegistryAdmin.sol +7 -1
- package/contracts/registry/RegistryAuthorization.sol +0 -2
- package/contracts/registry/ReleaseAdmin.sol +12 -5
- package/contracts/registry/ReleaseRegistry.sol +6 -6
- package/contracts/registry/TokenRegistry.sol +3 -3
- package/contracts/shared/ComponentService.sol +38 -4
- package/contracts/shared/EcdsaChecker.sol +5 -0
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponent.sol +0 -4
- package/contracts/shared/IComponentService.sol +33 -11
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/INftOwnable.sol +1 -1
- package/contracts/shared/InstanceLinkedComponent.sol +60 -19
- package/contracts/shared/TokenHandler.sol +5 -5
- package/contracts/staking/IStaking.sol +2 -0
- package/contracts/staking/IStakingService.sol +1 -10
- package/contracts/staking/Staking.sol +1 -0
- package/contracts/staking/StakingService.sol +1 -1
- 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/package.json +4 -3
@@ -7,16 +7,17 @@ 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";
|
14
14
|
|
15
|
+
import {AccessManagerCloneable} from "./AccessManagerCloneable.sol";
|
15
16
|
import {BlocknumberLib} from "../type/Blocknumber.sol";
|
16
17
|
import {ContractLib} from "../shared/ContractLib.sol";
|
17
18
|
import {ObjectType} from "../type/ObjectType.sol";
|
18
19
|
import {RoleId, RoleIdLib, ADMIN_ROLE, PUBLIC_ROLE} from "../type/RoleId.sol";
|
19
|
-
import {SelectorLib} from "../type/Selector.sol";
|
20
|
+
import {Selector, SelectorLib} from "../type/Selector.sol";
|
20
21
|
import {Str, StrLib} from "../type/String.sol";
|
21
22
|
import {TimestampLib} from "../type/Timestamp.sol";
|
22
23
|
import {VersionPart, VersionPartLib} from "../type/Version.sol";
|
@@ -338,7 +339,7 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
|
|
338
339
|
checkIsRegistered(address(accessAdmin.getRegistry()), componentAddress, expectedType);
|
339
340
|
|
340
341
|
VersionPart expecteRelease = accessAdmin.getRelease();
|
341
|
-
|
342
|
+
IAuthorizedComponent component = IAuthorizedComponent(componentAddress);
|
342
343
|
componentAuthorization = component.getAuthorization();
|
343
344
|
|
344
345
|
checkAuthorization(
|
@@ -481,6 +482,22 @@ library AccessAdminLib { // ACCESS_ADMIN_LIB
|
|
481
482
|
}
|
482
483
|
|
483
484
|
|
485
|
+
function getFunctionRoleId(
|
486
|
+
AccessManagerCloneable authority,
|
487
|
+
address target,
|
488
|
+
Selector selector
|
489
|
+
)
|
490
|
+
public
|
491
|
+
view
|
492
|
+
returns (RoleId functionRoleId)
|
493
|
+
{
|
494
|
+
return RoleIdLib.toRoleId(
|
495
|
+
authority.getTargetFunctionRole(
|
496
|
+
target,
|
497
|
+
selector.toBytes4()));
|
498
|
+
}
|
499
|
+
|
500
|
+
|
484
501
|
function getServiceRoleId(
|
485
502
|
address serviceAddress,
|
486
503
|
IAccess.TargetType serviceTargetType
|
@@ -24,6 +24,8 @@ contract AccessManagerCloneable is
|
|
24
24
|
error ErrorAccessManagerTargetAdminLocked(address target);
|
25
25
|
error ErrorAccessManagerCallerAdminLocked(address caller);
|
26
26
|
|
27
|
+
event LogAccessManagerLocked(address indexed accessManager, bool indexed locked);
|
28
|
+
|
27
29
|
VersionPart private _release;
|
28
30
|
bool private _isLocked;
|
29
31
|
|
@@ -39,6 +41,7 @@ contract AccessManagerCloneable is
|
|
39
41
|
|
40
42
|
function initialize(address admin)
|
41
43
|
public
|
44
|
+
override
|
42
45
|
initializer()
|
43
46
|
{
|
44
47
|
__ERC165_init();
|
@@ -94,6 +97,7 @@ contract AccessManagerCloneable is
|
|
94
97
|
onlyAdminRole()
|
95
98
|
{
|
96
99
|
_isLocked = locked;
|
100
|
+
emit LogAccessManagerLocked(address(this), locked);
|
97
101
|
}
|
98
102
|
|
99
103
|
|
@@ -12,6 +12,7 @@ import {Blocknumber} from "../type/Blocknumber.sol";
|
|
12
12
|
import {NftId} from "../type/NftId.sol";
|
13
13
|
import {ObjectType} from "../type/ObjectType.sol";
|
14
14
|
import {RoleId} from "../type/RoleId.sol";
|
15
|
+
import {Selector} from "../type/Selector.sol";
|
15
16
|
import {Str} from "../type/String.sol";
|
16
17
|
import {VersionPart} from "../type/Version.sol";
|
17
18
|
|
@@ -24,14 +25,14 @@ interface IAccessAdmin is
|
|
24
25
|
{
|
25
26
|
|
26
27
|
// roles, targets and functions
|
27
|
-
event LogAccessAdminRoleCreated(
|
28
|
-
event LogAccessAdminTargetCreated(
|
29
|
-
|
30
|
-
event LogAccessAdminRoleActivatedSet(
|
31
|
-
event LogAccessAdminRoleGranted(
|
32
|
-
event LogAccessAdminRoleRevoked(
|
33
|
-
event LogAccessAdminTargetLockedSet(
|
34
|
-
event LogAccessAdminFunctionGranted(
|
28
|
+
event LogAccessAdminRoleCreated(RoleId indexed roleId, RoleId indexed roleAdminId, TargetType indexed targetType, string name, string admin);
|
29
|
+
event LogAccessAdminTargetCreated(address indexed target, RoleId indexed roleId, bool indexed managed, string name, string admin);
|
30
|
+
|
31
|
+
event LogAccessAdminRoleActivatedSet(RoleId indexed roleId, bool indexed active, string admin, Blocknumber indexed lastUpdateIn);
|
32
|
+
event LogAccessAdminRoleGranted(address indexed account, string roleName, string admin);
|
33
|
+
event LogAccessAdminRoleRevoked(address indexed account, string roleName, string admin);
|
34
|
+
event LogAccessAdminTargetLockedSet(address indexed target, bool indexed locked, string admin, Blocknumber indexed lastUpdateIn);
|
35
|
+
event LogAccessAdminFunctionGranted(address indexed target, Selector indexed selector, RoleId indexed roleId, string func, string admin, Blocknumber lastUpdateIn);
|
35
36
|
|
36
37
|
// only deployer modifier
|
37
38
|
error ErrorAccessAdminNotDeployer();
|
@@ -98,21 +98,24 @@ contract DistributionService is
|
|
98
98
|
}
|
99
99
|
|
100
100
|
distributorType = DistributorTypeLib.toDistributorType(distributionNftId, name);
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
101
|
+
|
102
|
+
{
|
103
|
+
IDistribution.DistributorTypeInfo memory info = IDistribution.DistributorTypeInfo({
|
104
|
+
name: name,
|
105
|
+
distributionNftId: distributionNftId,
|
106
|
+
minDiscountPercentage: minDiscountPercentage,
|
107
|
+
maxDiscountPercentage: maxDiscountPercentage,
|
108
|
+
commissionPercentage: commissionPercentage,
|
109
|
+
maxReferralCount: maxReferralCount,
|
110
|
+
maxReferralLifetime: maxReferralLifetime,
|
111
|
+
allowSelfReferrals: allowSelfReferrals,
|
112
|
+
allowRenewals: allowRenewals,
|
113
|
+
data: data});
|
114
|
+
|
115
|
+
instance.getInstanceStore().createDistributorType(distributorType, info);
|
116
|
+
}
|
114
117
|
|
115
|
-
emit LogDistributionServiceDistributorTypeCreated(distributionNftId, name);
|
118
|
+
emit LogDistributionServiceDistributorTypeCreated(distributionNftId, distributorType, name, commissionPercentage);
|
116
119
|
}
|
117
120
|
|
118
121
|
|
@@ -148,7 +151,7 @@ contract DistributionService is
|
|
148
151
|
|
149
152
|
instance.getInstanceStore().createDistributor(distributorNftId, info);
|
150
153
|
|
151
|
-
emit LogDistributionServiceDistributorCreated(distributionNftId, distributorNftId,
|
154
|
+
emit LogDistributionServiceDistributorCreated(distributionNftId, distributorNftId, distributor, distributorType);
|
152
155
|
}
|
153
156
|
|
154
157
|
function changeDistributorType(
|
@@ -236,7 +239,7 @@ contract DistributionService is
|
|
236
239
|
|
237
240
|
instance.getInstanceStore().createReferral(referralId, info);
|
238
241
|
|
239
|
-
emit LogDistributionServiceReferralCreated(
|
242
|
+
emit LogDistributionServiceReferralCreated(distributorNftId, referralId, code, discountPercentage, maxReferrals, expiryAt);
|
240
243
|
}
|
241
244
|
}
|
242
245
|
|
@@ -258,7 +261,7 @@ contract DistributionService is
|
|
258
261
|
referralInfo.usedReferrals += 1;
|
259
262
|
instance.getInstanceStore().updateReferral(referralId, referralInfo, KEEP_STATE());
|
260
263
|
|
261
|
-
emit LogDistributionServiceReferralProcessed(
|
264
|
+
emit LogDistributionServiceReferralProcessed(referralInfo.distributorNftId, referralId, referralInfo.usedReferrals);
|
262
265
|
}
|
263
266
|
}
|
264
267
|
|
@@ -295,12 +298,14 @@ contract DistributionService is
|
|
295
298
|
IDistribution.DistributorInfo memory distributorInfo = reader.getDistributorInfo(referralInfo.distributorNftId);
|
296
299
|
distributorInfo.numPoliciesSold += 1;
|
297
300
|
store.updateDistributor(referralInfo.distributorNftId, distributorInfo, KEEP_STATE());
|
301
|
+
emit LogDistributionServiceSaleProcessedWithReferral(distributionNftId, referralInfo.distributorNftId, referralId, distributorInfo.numPoliciesSold, premium.premiumAmount, distributionOwnerFee, commissionAmount);
|
298
302
|
} else {
|
299
303
|
// increase distribution balance by distribution owner fee
|
300
304
|
_accountingService.increaseDistributionBalance(store, distributionNftId, AmountLib.zero(), distributionOwnerFee);
|
305
|
+
emit LogDistributionServiceSaleProcessed(distributionNftId, premium.premiumAmount, distributionOwnerFee);
|
301
306
|
}
|
302
307
|
|
303
|
-
|
308
|
+
|
304
309
|
}
|
305
310
|
|
306
311
|
/// @inheritdoc IDistributionService
|
@@ -341,7 +346,7 @@ contract DistributionService is
|
|
341
346
|
// transfer amount to distributor
|
342
347
|
{
|
343
348
|
address distributor = getRegistry().ownerOf(distributorNftId);
|
344
|
-
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, address(distributionInfo.tokenHandler.TOKEN())
|
349
|
+
emit LogDistributionServiceCommissionWithdrawn(distributorNftId, distributor, withdrawnAmount, address(distributionInfo.tokenHandler.TOKEN()));
|
345
350
|
distributionInfo.tokenHandler.pushToken(distributor, withdrawnAmount);
|
346
351
|
}
|
347
352
|
}
|
@@ -11,8 +11,6 @@ import {UFixed} from "../type/UFixed.sol";
|
|
11
11
|
|
12
12
|
interface IDistributionComponent is IInstanceLinkedComponent {
|
13
13
|
|
14
|
-
event LogDistributorUpdated(address to, address operator);
|
15
|
-
|
16
14
|
function getDiscountPercentage(
|
17
15
|
string memory referralCode
|
18
16
|
) external view returns (UFixed discountPercentage, ReferralStatus status);
|
@@ -39,13 +39,14 @@ interface IDistributionService is IService {
|
|
39
39
|
error ErrorDistributionServiceInvalidFeeTransferred(Amount transferredDistributionFeeAmount, Amount expectedDistributionFeeAmount);
|
40
40
|
error ErrorDistributionServiceReferralDistributionMismatch(ReferralId referralId, NftId referralDistributionNft, NftId distributionNftId);
|
41
41
|
|
42
|
-
event LogDistributionServiceCommissionWithdrawn(NftId distributorNftId, address recipient,
|
43
|
-
event LogDistributionServiceDistributorTypeCreated(NftId distributionNftId, string name);
|
44
|
-
event LogDistributionServiceDistributorCreated(NftId distributionNftId, NftId distributorNftId,
|
45
|
-
event LogDistributionServiceDistributorTypeChanged(NftId distributorNftId, DistributorType oldDistributorType, DistributorType newDistributorType);
|
46
|
-
event LogDistributionServiceReferralCreated(NftId
|
47
|
-
event LogDistributionServiceReferralProcessed(NftId
|
48
|
-
event LogDistributionServiceSaleProcessed(NftId distributionNftId,
|
42
|
+
event LogDistributionServiceCommissionWithdrawn(NftId indexed distributorNftId, address indexed recipient, Amount indexed amount, address tokenAddress);
|
43
|
+
event LogDistributionServiceDistributorTypeCreated(NftId indexed distributionNftId, DistributorType indexed distributorType, string name, UFixed indexed commissionPercentage);
|
44
|
+
event LogDistributionServiceDistributorCreated(NftId indexed distributionNftId, NftId indexed distributorNftId, address indexed distributor, DistributorType distributorType);
|
45
|
+
event LogDistributionServiceDistributorTypeChanged(NftId indexed distributorNftId, DistributorType indexed oldDistributorType, DistributorType indexed newDistributorType);
|
46
|
+
event LogDistributionServiceReferralCreated(NftId indexed distributorNftId, ReferralId indexed referralId, string code, UFixed indexed discountPercentage, uint32 maxReferrals, Timestamp expiryAt);
|
47
|
+
event LogDistributionServiceReferralProcessed(NftId indexed distributorNftId, ReferralId indexed referralId, uint32 indexed usedReferrals);
|
48
|
+
event LogDistributionServiceSaleProcessed(NftId indexed distributionNftId, Amount indexed premium, Amount indexed distributionOwnerFee);
|
49
|
+
event LogDistributionServiceSaleProcessedWithReferral(NftId indexed distributionNftId, NftId indexed distributorNftId, ReferralId indexed referralId, uint32 numPoliciesSold, Amount premium, Amount distributionOwnerFee, Amount commissionAmount);
|
49
50
|
|
50
51
|
function createDistributorType(
|
51
52
|
string memory name,
|
@@ -0,0 +1,337 @@
|
|
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 {Seconds} from "../../type/Seconds.sol";
|
15
|
+
import {StateId} from "../../type/StateId.sol";
|
16
|
+
import {Str} from "../../type/String.sol";
|
17
|
+
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
18
|
+
|
19
|
+
|
20
|
+
library FlightLib {
|
21
|
+
|
22
|
+
event LogFlightProductErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
|
23
|
+
event LogFlightProductErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
|
24
|
+
|
25
|
+
error ErrorFlightProductRiskInvalid(RiskId riskId);
|
26
|
+
error ErrorFlightProductPremiumAmountTooSmall(Amount premiumAmount, Amount minPremium);
|
27
|
+
error ErrorFlightProductPremiumAmountTooLarge(Amount premiumAmount, Amount maxPremium);
|
28
|
+
error ErrorFlightProductArrivalBeforeDepartureTime(Timestamp departureTime, Timestamp arrivalTime);
|
29
|
+
error ErrorFlightProductArrivalAfterMaxFlightDuration(Timestamp arrivalTime, Timestamp maxArrivalTime, Seconds maxDuration);
|
30
|
+
error ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds minTimeBeforeDeparture);
|
31
|
+
error ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(Timestamp departureTime, Timestamp now, Seconds maxTimeBeforeDeparture);
|
32
|
+
error ErrorFlightProductNotEnoughObservations(uint256 observations, uint256 minObservations);
|
33
|
+
error ErrorFlightProductClusterRisk(Amount totalSumInsured, Amount maxTotalPayout);
|
34
|
+
|
35
|
+
function checkApplicationData(
|
36
|
+
FlightProduct flightProduct,
|
37
|
+
Str flightData,
|
38
|
+
Timestamp departureTime,
|
39
|
+
Timestamp arrivalTime,
|
40
|
+
Amount premiumAmount
|
41
|
+
)
|
42
|
+
public
|
43
|
+
view
|
44
|
+
{
|
45
|
+
_checkApplicationData(flightProduct, premiumAmount, arrivalTime, departureTime);
|
46
|
+
}
|
47
|
+
|
48
|
+
|
49
|
+
function _checkApplicationData(
|
50
|
+
FlightProduct flightProduct,
|
51
|
+
Amount premiumAmount,
|
52
|
+
Timestamp arrivalTime,
|
53
|
+
Timestamp departureTime
|
54
|
+
)
|
55
|
+
internal
|
56
|
+
view
|
57
|
+
{
|
58
|
+
bool testMode = flightProduct.isTestMode();
|
59
|
+
|
60
|
+
// solhint-disable
|
61
|
+
if (premiumAmount < flightProduct.MIN_PREMIUM()) {
|
62
|
+
revert ErrorFlightProductPremiumAmountTooSmall(premiumAmount, flightProduct.MIN_PREMIUM());
|
63
|
+
}
|
64
|
+
if (premiumAmount > flightProduct.MAX_PREMIUM()) {
|
65
|
+
revert ErrorFlightProductPremiumAmountTooLarge(premiumAmount, flightProduct.MAX_PREMIUM());
|
66
|
+
}
|
67
|
+
if (arrivalTime <= departureTime) {
|
68
|
+
revert ErrorFlightProductArrivalBeforeDepartureTime(departureTime, arrivalTime);
|
69
|
+
}
|
70
|
+
if (arrivalTime > departureTime.addSeconds(flightProduct.MAX_FLIGHT_DURATION())) {
|
71
|
+
revert ErrorFlightProductArrivalAfterMaxFlightDuration(arrivalTime, departureTime, flightProduct.MAX_FLIGHT_DURATION());
|
72
|
+
}
|
73
|
+
|
74
|
+
// test mode allows the creation for policies that are outside restricted policy creation times
|
75
|
+
if (!testMode && departureTime < TimestampLib.current().addSeconds(flightProduct.MIN_TIME_BEFORE_DEPARTURE())) {
|
76
|
+
revert ErrorFlightProductDepartureBeforeMinTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MIN_TIME_BEFORE_DEPARTURE());
|
77
|
+
}
|
78
|
+
if (!testMode && departureTime > TimestampLib.current().addSeconds(flightProduct.MAX_TIME_BEFORE_DEPARTURE())) {
|
79
|
+
revert ErrorFlightProductDepartureAfterMaxTimeBeforeDeparture(departureTime, TimestampLib.current(), flightProduct.MAX_TIME_BEFORE_DEPARTURE());
|
80
|
+
}
|
81
|
+
// solhint-enable
|
82
|
+
}
|
83
|
+
|
84
|
+
|
85
|
+
function checkClusterRisk(
|
86
|
+
Amount sumOfSumInsuredAmounts,
|
87
|
+
Amount sumInsuredAmount,
|
88
|
+
Amount maxTotalPayout
|
89
|
+
)
|
90
|
+
public
|
91
|
+
pure
|
92
|
+
{
|
93
|
+
if (sumOfSumInsuredAmounts + sumInsuredAmount > maxTotalPayout) {
|
94
|
+
revert ErrorFlightProductClusterRisk(sumOfSumInsuredAmounts + sumInsuredAmount, maxTotalPayout);
|
95
|
+
}
|
96
|
+
}
|
97
|
+
|
98
|
+
|
99
|
+
/// @dev calculates payout option based on flight status and delay minutes.
|
100
|
+
/// Is not a view function as it emits log evens in case of unexpected status.
|
101
|
+
function checkAndGetPayoutOption(
|
102
|
+
RequestId requestId,
|
103
|
+
RiskId riskId,
|
104
|
+
bytes1 status,
|
105
|
+
int256 delayMinutes
|
106
|
+
)
|
107
|
+
public
|
108
|
+
returns (uint8 payoutOption)
|
109
|
+
{
|
110
|
+
// default: no payout
|
111
|
+
payoutOption = type(uint8).max;
|
112
|
+
|
113
|
+
// check status
|
114
|
+
if (status != "L" && status != "A" && status != "C" && status != "D") {
|
115
|
+
emit LogFlightProductErrorUnprocessableStatus(requestId, riskId, status);
|
116
|
+
return payoutOption;
|
117
|
+
}
|
118
|
+
|
119
|
+
if (status == "A") {
|
120
|
+
// todo: active, reschedule oracle call + 45 min
|
121
|
+
emit LogFlightProductErrorUnexpectedStatus(requestId, riskId, status, delayMinutes);
|
122
|
+
return payoutOption;
|
123
|
+
}
|
124
|
+
|
125
|
+
// trigger payout if applicable
|
126
|
+
if (status == "C") { payoutOption = 3; }
|
127
|
+
else if (status == "D") { payoutOption = 4; }
|
128
|
+
else if (delayMinutes >= 15 && delayMinutes < 30) { payoutOption = 0; }
|
129
|
+
else if (delayMinutes >= 30 && delayMinutes < 45) { payoutOption = 1; }
|
130
|
+
else if (delayMinutes >= 45) { payoutOption = 2; }
|
131
|
+
}
|
132
|
+
|
133
|
+
|
134
|
+
function calculateWeight(
|
135
|
+
FlightProduct flightProduct,
|
136
|
+
uint256[6] memory statistics
|
137
|
+
)
|
138
|
+
public
|
139
|
+
view
|
140
|
+
returns (uint256 weight)
|
141
|
+
{
|
142
|
+
// check we have enough observations
|
143
|
+
if (statistics[0] < flightProduct.MIN_OBSERVATIONS()) {
|
144
|
+
revert ErrorFlightProductNotEnoughObservations(statistics[0], flightProduct.MIN_OBSERVATIONS());
|
145
|
+
}
|
146
|
+
|
147
|
+
weight = 0;
|
148
|
+
for (uint256 i = 1; i < 6; i++) {
|
149
|
+
weight += flightProduct.WEIGHT_PATTERN(i) * statistics[i] * 10000 / statistics[0];
|
150
|
+
}
|
151
|
+
|
152
|
+
// To avoid div0 in the payout section, we have to make a minimal assumption on weight
|
153
|
+
if (weight == 0) {
|
154
|
+
weight = 100000 / statistics[0];
|
155
|
+
}
|
156
|
+
|
157
|
+
// TODO comment on intended effect
|
158
|
+
weight = (weight * (100 + flightProduct.MARGIN_PERCENT())) / 100;
|
159
|
+
}
|
160
|
+
|
161
|
+
|
162
|
+
// REMARK: each flight may get different payouts depending on the latest statics
|
163
|
+
function calculatePayoutAmounts(
|
164
|
+
FlightProduct flightProduct,
|
165
|
+
Amount premium,
|
166
|
+
uint256[6] memory statistics
|
167
|
+
)
|
168
|
+
public
|
169
|
+
view
|
170
|
+
returns (
|
171
|
+
uint256 weight,
|
172
|
+
Amount[5] memory payoutAmounts,
|
173
|
+
Amount sumInsuredAmount // simply the max of payoutAmounts
|
174
|
+
)
|
175
|
+
{
|
176
|
+
if (premium < flightProduct.MIN_PREMIUM()) {
|
177
|
+
revert ErrorFlightProductPremiumAmountTooSmall(premium, flightProduct.MIN_PREMIUM());
|
178
|
+
}
|
179
|
+
if (premium > flightProduct.MAX_PREMIUM()) {
|
180
|
+
revert ErrorFlightProductPremiumAmountTooLarge(premium, flightProduct.MAX_PREMIUM());
|
181
|
+
}
|
182
|
+
|
183
|
+
sumInsuredAmount = AmountLib.zero();
|
184
|
+
weight = calculateWeight(flightProduct, statistics);
|
185
|
+
|
186
|
+
for (uint256 i = 0; i < 5; i++) {
|
187
|
+
Amount payoutAmount = AmountLib.toAmount(
|
188
|
+
premium.toInt() * flightProduct.WEIGHT_PATTERN(i + 1) * 10000 / weight);
|
189
|
+
|
190
|
+
// cap payout and update sum insured if applicable
|
191
|
+
if (payoutAmount > flightProduct.MAX_PAYOUT()) { payoutAmount = flightProduct.MAX_PAYOUT(); }
|
192
|
+
if (payoutAmount > sumInsuredAmount) { sumInsuredAmount = payoutAmount; }
|
193
|
+
|
194
|
+
payoutAmounts[i] = payoutAmount;
|
195
|
+
}
|
196
|
+
}
|
197
|
+
|
198
|
+
|
199
|
+
function getPayoutOption(
|
200
|
+
InstanceReader reader,
|
201
|
+
NftId productNftId,
|
202
|
+
RiskId riskId
|
203
|
+
)
|
204
|
+
public
|
205
|
+
view
|
206
|
+
returns (
|
207
|
+
bool exists,
|
208
|
+
bool statusAvailable,
|
209
|
+
uint8 payoutOption
|
210
|
+
)
|
211
|
+
{
|
212
|
+
FlightProduct.FlightRisk memory flightRisk;
|
213
|
+
(exists, flightRisk) = getFlightRisk(
|
214
|
+
reader,
|
215
|
+
productNftId,
|
216
|
+
riskId,
|
217
|
+
false);
|
218
|
+
|
219
|
+
statusAvailable = flightRisk.statusUpdatedAt.gtz();
|
220
|
+
payoutOption = flightRisk.payoutOption;
|
221
|
+
}
|
222
|
+
|
223
|
+
|
224
|
+
function getPayoutAmount(
|
225
|
+
bytes memory applicationData,
|
226
|
+
uint8 payoutOption
|
227
|
+
)
|
228
|
+
public
|
229
|
+
pure
|
230
|
+
returns (Amount payoutAmount)
|
231
|
+
{
|
232
|
+
if (payoutOption == type(uint8).max) {
|
233
|
+
return AmountLib.zero();
|
234
|
+
}
|
235
|
+
|
236
|
+
// retrieve payout amounts from application data
|
237
|
+
(, Amount[5] memory payoutAmounts) = abi.decode(
|
238
|
+
applicationData, (Amount, Amount[5]));
|
239
|
+
|
240
|
+
// get payout amount for selected option
|
241
|
+
payoutAmount = payoutAmounts[payoutOption];
|
242
|
+
}
|
243
|
+
|
244
|
+
|
245
|
+
function getFlightRisk(
|
246
|
+
InstanceReader reader,
|
247
|
+
NftId productNftId,
|
248
|
+
Str flightData,
|
249
|
+
Timestamp departureTime,
|
250
|
+
string memory departureTimeLocal,
|
251
|
+
Timestamp arrivalTime,
|
252
|
+
string memory arrivalTimeLocal
|
253
|
+
)
|
254
|
+
public
|
255
|
+
view
|
256
|
+
returns (
|
257
|
+
RiskId riskId,
|
258
|
+
bool exists,
|
259
|
+
FlightProduct.FlightRisk memory flightRisk
|
260
|
+
)
|
261
|
+
{
|
262
|
+
riskId = getRiskId(productNftId, flightData);
|
263
|
+
(exists, flightRisk) = getFlightRisk(reader, productNftId, riskId, false);
|
264
|
+
|
265
|
+
// create new risk if not existing
|
266
|
+
if (!exists) {
|
267
|
+
flightRisk = FlightProduct.FlightRisk({
|
268
|
+
flightData: flightData,
|
269
|
+
departureTime: departureTime,
|
270
|
+
departureTimeLocal: departureTimeLocal,
|
271
|
+
arrivalTime: arrivalTime,
|
272
|
+
arrivalTimeLocal: arrivalTimeLocal,
|
273
|
+
sumOfSumInsuredAmounts: AmountLib.toAmount(0),
|
274
|
+
status: bytes1(0),
|
275
|
+
delayMinutes: 0,
|
276
|
+
payoutOption: uint8(0),
|
277
|
+
statusUpdatedAt: TimestampLib.zero()});
|
278
|
+
}
|
279
|
+
}
|
280
|
+
|
281
|
+
|
282
|
+
function getFlightRisk(
|
283
|
+
InstanceReader reader,
|
284
|
+
NftId productNftId,
|
285
|
+
RiskId riskId,
|
286
|
+
bool requireRiskExists
|
287
|
+
)
|
288
|
+
public
|
289
|
+
view
|
290
|
+
returns (
|
291
|
+
bool exists,
|
292
|
+
FlightProduct.FlightRisk memory flightRisk
|
293
|
+
)
|
294
|
+
{
|
295
|
+
// check if risk exists
|
296
|
+
exists = reader.isProductRisk(productNftId, riskId);
|
297
|
+
|
298
|
+
if (!exists && requireRiskExists) {
|
299
|
+
revert ErrorFlightProductRiskInvalid(riskId);
|
300
|
+
}
|
301
|
+
|
302
|
+
// get risk data if risk exists
|
303
|
+
if (exists) {
|
304
|
+
flightRisk = abi.decode(
|
305
|
+
reader.getRiskInfo(riskId).data, (FlightProduct.FlightRisk));
|
306
|
+
}
|
307
|
+
}
|
308
|
+
|
309
|
+
|
310
|
+
function getRiskId(
|
311
|
+
NftId productNftId,
|
312
|
+
Str flightData
|
313
|
+
)
|
314
|
+
public
|
315
|
+
view
|
316
|
+
returns (RiskId riskId)
|
317
|
+
{
|
318
|
+
bytes32 riskKey = getRiskKey(flightData);
|
319
|
+
riskId = getRiskId(productNftId, riskKey);
|
320
|
+
}
|
321
|
+
|
322
|
+
|
323
|
+
function getRiskKey(
|
324
|
+
Str flightData
|
325
|
+
)
|
326
|
+
internal
|
327
|
+
pure
|
328
|
+
returns (bytes32 riskKey)
|
329
|
+
{
|
330
|
+
return keccak256(abi.encode(flightData));
|
331
|
+
}
|
332
|
+
|
333
|
+
|
334
|
+
function getRiskId(NftId productNftId, bytes32 riskKey) internal view returns (RiskId riskId) {
|
335
|
+
return RiskIdLib.toRiskId(productNftId, riskKey);
|
336
|
+
}
|
337
|
+
}
|