@etherisc/gif-next 3.0.0-f9be4a0-294 → 3.0.0-f9ec743-307
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 +9 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingService.sol/AccountingService.json +42 -56
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/accounting/AccountingServiceManager.sol/AccountingServiceManager.json +32 -36
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.dbg.json +1 -1
- package/artifacts/contracts/accounting/IAccountingService.sol/IAccountingService.json +14 -20
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.dbg.json +1 -1
- package/artifacts/contracts/authorization/AccessAdmin.sol/AccessAdmin.json +44 -56
- 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/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 +2 -2
- 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/DistributionService.sol/DistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionService.sol/DistributionService.json +157 -72
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.dbg.json +1 -1
- package/artifacts/contracts/distribution/DistributionServiceManager.sol/DistributionServiceManager.json +63 -63
- package/artifacts/contracts/distribution/IDistributionComponent.sol/IDistributionComponent.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.dbg.json +1 -1
- package/artifacts/contracts/distribution/IDistributionService.sol/IDistributionService.json +85 -0
- 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 +12 -12
- 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 +47 -52
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/fire/FireProductAuthorization.sol/FireProductAuthorization.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightLib.sol/FlightLib.json +372 -73
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightMessageVerifier.sol/FlightMessageVerifier.json +2 -2
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightOracle.sol/FlightOracle.json +185 -30
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightOracleAuthorization.sol/FlightOracleAuthorization.json +82 -35
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPool.sol/FlightPool.json +14 -14
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightPoolAuthorization.sol/FlightPoolAuthorization.json +2 -2
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProduct.sol/FlightProduct.json +545 -445
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/FlightProductAuthorization.sol/FlightProductAuthorization.json +83 -36
- 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 +1 -1
- package/artifacts/contracts/examples/flight/FlightUSD.sol/FlightUSD.json +212 -2
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.dbg.json +1 -1
- package/artifacts/contracts/examples/flight/originalV1.sol/FlightDelayChainlink.json +2 -2
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleDistribution.sol/SimpleDistribution.json +15 -15
- 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 +12 -12
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimplePool.sol/SimplePool.json +16 -16
- 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 +18 -18
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/examples/unpermissioned/SimpleProductAuthorization.sol/SimpleProductAuthorization.json +2 -2
- 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 +2 -2
- 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/IInstanceService.sol/IInstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/IInstanceService.sol/IInstanceService.json +61 -0
- package/artifacts/contracts/instance/Instance.sol/Instance.dbg.json +1 -1
- package/artifacts/contracts/instance/Instance.sol/Instance.json +2 -2
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceAdmin.sol/InstanceAdmin.json +119 -131
- 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 +93 -34
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceService.sol/InstanceService.json +102 -25
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceServiceManager.sol/InstanceServiceManager.json +29 -29
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.dbg.json +1 -1
- package/artifacts/contracts/instance/InstanceStore.sol/InstanceStore.json +82 -32
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.dbg.json +1 -1
- package/artifacts/contracts/instance/ProductStore.sol/ProductStore.json +68 -18
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.dbg.json +1 -1
- package/artifacts/contracts/instance/RiskSet.sol/RiskSet.json +2 -2
- 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 +2 -2
- 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/IOracleService.sol/IOracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/Oracle.sol/Oracle.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleService.sol/OracleService.json +2 -2
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/oracle/OracleServiceManager.sol/OracleServiceManager.json +38 -38
- package/artifacts/contracts/pool/BasicPool.sol/BasicPool.dbg.json +1 -1
- 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 +32 -20
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/BundleServiceManager.sol/BundleServiceManager.json +50 -50
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.dbg.json +1 -1
- package/artifacts/contracts/pool/IBundleService.sol/IBundleService.json +12 -0
- package/artifacts/contracts/pool/IPoolComponent.sol/IPoolComponent.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.dbg.json +1 -1
- package/artifacts/contracts/pool/IPoolService.sol/IPoolService.json +12 -0
- package/artifacts/contracts/pool/Pool.sol/Pool.dbg.json +1 -1
- 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 +36 -24
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.dbg.json +1 -1
- package/artifacts/contracts/pool/PoolServiceManager.sol/PoolServiceManager.json +51 -51
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationService.sol/ApplicationService.json +2 -2
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ApplicationServiceManager.sol/ApplicationServiceManager.json +32 -32
- package/artifacts/contracts/product/BasicProduct.sol/BasicProduct.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.dbg.json +1 -1
- package/artifacts/contracts/product/BasicProductAuthorization.sol/BasicProductAuthorization.json +2 -2
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimService.sol/ClaimService.json +2 -2
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/ClaimServiceManager.sol/ClaimServiceManager.json +55 -55
- package/artifacts/contracts/product/IApplicationService.sol/IApplicationService.dbg.json +1 -1
- package/artifacts/contracts/product/IClaimService.sol/IClaimService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/IPolicyService.sol/IPolicyService.json +12 -0
- package/artifacts/contracts/product/IPricingService.sol/IPricingService.dbg.json +1 -1
- package/artifacts/contracts/product/IProductComponent.sol/IProductComponent.dbg.json +1 -1
- package/artifacts/contracts/product/IRiskService.sol/IRiskService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.dbg.json +1 -1
- package/artifacts/contracts/product/PolicyService.sol/PolicyService.json +56 -44
- 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 +48 -48
- package/artifacts/contracts/product/PricingService.sol/PricingService.dbg.json +1 -1
- package/artifacts/contracts/product/PricingService.sol/PricingService.json +2 -2
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/PricingServiceManager.sol/PricingServiceManager.json +39 -39
- package/artifacts/contracts/product/Product.sol/Product.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.dbg.json +1 -1
- package/artifacts/contracts/product/RiskService.sol/RiskService.json +2 -2
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.dbg.json +1 -1
- package/artifacts/contracts/product/RiskServiceManager.sol/RiskServiceManager.json +30 -30
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.dbg.json +1 -1
- package/artifacts/contracts/registry/ChainNft.sol/ChainNft.json +2 -2
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.dbg.json +1 -1
- package/artifacts/contracts/registry/IRegistry.sol/IRegistry.json +6 -0
- package/artifacts/contracts/registry/IRegistryService.sol/IRegistryService.dbg.json +1 -1
- 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 +34 -28
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryAdmin.sol/RegistryAdmin.json +113 -125
- 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 +2 -2
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.dbg.json +1 -1
- package/artifacts/contracts/registry/RegistryServiceManager.sol/RegistryServiceManager.json +25 -25
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.dbg.json +1 -1
- package/artifacts/contracts/registry/ReleaseAdmin.sol/ReleaseAdmin.json +123 -135
- 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 +106 -96
- 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 +2 -2
- package/artifacts/contracts/shared/Component.sol/Component.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentService.sol/ComponentService.json +309 -56
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.dbg.json +1 -1
- package/artifacts/contracts/shared/ComponentServiceManager.sol/ComponentServiceManager.json +49 -49
- 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 +633 -0
- package/artifacts/contracts/shared/IComponent.sol/IComponent.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.dbg.json +1 -1
- package/artifacts/contracts/shared/IComponentService.sol/IComponentService.json +253 -0
- package/artifacts/contracts/shared/IInstanceLinkedComponent.sol/IInstanceLinkedComponent.dbg.json +1 -1
- 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/IPolicyHolder.sol/IPolicyHolder.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegisterable.sol/IRegisterable.dbg.json +1 -1
- package/artifacts/contracts/shared/IRegistryLinked.sol/IRegistryLinked.dbg.json +1 -1
- package/artifacts/contracts/shared/IService.sol/IService.dbg.json +1 -1
- package/artifacts/contracts/shared/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/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 +2 -2
- 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/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/TokenHandler.sol/TokenHandler.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandler.json +23 -50
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.dbg.json +1 -1
- package/artifacts/contracts/shared/TokenHandler.sol/TokenHandlerBase.json +9 -36
- 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 +25 -0
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.dbg.json +1 -1
- package/artifacts/contracts/staking/IStakingService.sol/IStakingService.json +12 -0
- 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 -48
- 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 +41 -41
- 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 +26 -14
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.dbg.json +1 -1
- package/artifacts/contracts/staking/StakingServiceManager.sol/StakingServiceManager.json +28 -28
- 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 +2 -2
- 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 +2 -2
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.dbg.json +1 -1
- package/artifacts/contracts/type/RequestId.sol/RequestIdLib.json +2 -2
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.dbg.json +1 -1
- package/artifacts/contracts/type/RequestIdSet.sol/LibRequestIdSet.json +2 -2
- 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 +2 -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 +2 -2
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.dbg.json +1 -1
- package/artifacts/contracts/type/Timestamp.sol/TimestampLib.json +2 -2
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.dbg.json +1 -1
- package/artifacts/contracts/type/UFixed.sol/UFixedLib.json +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 +2 -2
- 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 +6 -25
- package/contracts/authorization/AccessAdminLib.sol +20 -3
- package/contracts/authorization/AccessManagerCloneable.sol +4 -0
- package/contracts/distribution/DistributionService.sol +5 -3
- package/contracts/distribution/IDistributionService.sol +4 -3
- package/contracts/examples/flight/FlightLib.sol +106 -80
- package/contracts/examples/flight/FlightNft.sol +234 -0
- package/contracts/examples/flight/FlightOracle.sol +68 -9
- package/contracts/examples/flight/FlightOracleAuthorization.sol +28 -5
- package/contracts/examples/flight/FlightPool.sol +1 -1
- package/contracts/examples/flight/FlightProduct.sol +357 -215
- package/contracts/examples/flight/FlightProductAuthorization.sol +36 -10
- package/contracts/examples/flight/FlightProductManager.sol +49 -0
- package/contracts/examples/flight/FlightUSD.sol +3 -1
- package/contracts/instance/BaseStore.sol +4 -0
- package/contracts/instance/IBaseStore.sol +8 -0
- package/contracts/instance/IInstanceService.sol +2 -0
- package/contracts/instance/InstanceAdmin.sol +0 -1
- package/contracts/instance/InstanceReader.sol +19 -5
- package/contracts/instance/InstanceService.sol +4 -0
- package/contracts/oracle/BasicOracle.sol +1 -0
- package/contracts/oracle/Oracle.sol +2 -2
- package/contracts/pool/BundleService.sol +1 -1
- package/contracts/pool/IBundleService.sol +1 -1
- package/contracts/pool/IPoolService.sol +1 -1
- package/contracts/pool/PoolService.sol +1 -1
- package/contracts/product/IPolicyService.sol +1 -1
- package/contracts/product/PolicyService.sol +1 -1
- package/contracts/product/PolicyServiceLib.sol +5 -3
- package/contracts/registry/ChainNft.sol +1 -1
- package/contracts/registry/IRegistry.sol +1 -1
- package/contracts/registry/Registry.sol +1 -1
- package/contracts/registry/RegistryAdmin.sol +7 -1
- package/contracts/registry/ReleaseAdmin.sol +8 -1
- package/contracts/shared/ComponentService.sol +34 -2
- package/contracts/shared/IAuthorizedComponent.sol +15 -0
- package/contracts/shared/IComponentService.sol +22 -0
- package/contracts/shared/IInstanceLinkedComponent.sol +2 -5
- package/contracts/shared/InstanceLinkedComponent.sol +2 -1
- package/contracts/staking/IStaking.sol +2 -0
- package/contracts/staking/IStakingService.sol +1 -1
- package/contracts/staking/Staking.sol +1 -0
- package/contracts/staking/StakingService.sol +1 -1
- package/package.json +3 -3
@@ -1,14 +1,16 @@
|
|
1
1
|
// SPDX-License-Identifier: Apache-2.0
|
2
2
|
pragma solidity ^0.8.20;
|
3
3
|
|
4
|
+
import {ERC20Permit} from "@openzeppelin/contracts/token/ERC20/extensions/ERC20Permit.sol";
|
4
5
|
import {IERC20Metadata} from "@openzeppelin/contracts/token/ERC20/extensions/IERC20Metadata.sol";
|
5
6
|
|
6
7
|
import {IAuthorization} from "../../authorization/IAuthorization.sol";
|
7
8
|
import {IComponents} from "../../instance/module/IComponents.sol";
|
9
|
+
import {IPolicy} from "../../instance/module/IPolicy.sol";
|
8
10
|
|
9
11
|
import {Amount, AmountLib} from "../../type/Amount.sol";
|
10
|
-
import {BasicProduct} from "../../product/BasicProduct.sol";
|
11
12
|
import {ClaimId} from "../../type/ClaimId.sol";
|
13
|
+
import {Component} from "../../shared/Component.sol";
|
12
14
|
import {FeeLib} from "../../type/Fee.sol";
|
13
15
|
import {FlightLib} from "./FlightLib.sol";
|
14
16
|
import {FlightMessageVerifier} from "./FlightMessageVerifier.sol";
|
@@ -16,111 +18,117 @@ import {FlightOracle} from "./FlightOracle.sol";
|
|
16
18
|
import {InstanceReader} from "../../instance/InstanceReader.sol";
|
17
19
|
import {NftId, NftIdLib} from "../../type/NftId.sol";
|
18
20
|
import {PayoutId} from "../../type/PayoutId.sol";
|
21
|
+
import {Product} from "../../product/Product.sol";
|
19
22
|
import {ReferralLib} from "../../type/Referral.sol";
|
20
23
|
import {RiskId, RiskIdLib} from "../../type/RiskId.sol";
|
21
24
|
import {RequestId} from "../../type/RequestId.sol";
|
22
25
|
import {Seconds, SecondsLib} from "../../type/Seconds.sol";
|
23
|
-
import {Str} from "../../type/String.sol";
|
26
|
+
import {Str, StrLib} from "../../type/String.sol";
|
24
27
|
import {Timestamp, TimestampLib} from "../../type/Timestamp.sol";
|
25
28
|
|
26
29
|
|
27
30
|
/// @dev FlightProduct implements the flight delay product.
|
28
31
|
contract FlightProduct is
|
29
|
-
|
32
|
+
Product
|
30
33
|
{
|
31
34
|
|
32
|
-
event
|
33
|
-
event
|
34
|
-
event LogPayoutTransferred(bytes32 bpKey, uint256 claimId, uint256 payoutId, uint256 amount);
|
35
|
-
event LogFlightStatusProcessed(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes, uint8 payoutOption);
|
36
|
-
|
37
|
-
// TODO convert error logs to custom errors
|
38
|
-
event LogError(string error, uint256 index, uint256 stored, uint256 calculated);
|
39
|
-
event LogPolicyExpired(bytes32 bpKey);
|
40
|
-
|
41
|
-
event LogErrorRiskInvalid(RequestId requestId, RiskId riskId);
|
42
|
-
event LogErrorUnprocessableStatus(RequestId requestId, RiskId riskId, bytes1 status);
|
43
|
-
event LogErrorUnexpectedStatus(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes);
|
35
|
+
event LogFlightPolicyPurchased(NftId policyNftId, string flightData, Amount premiumAmount);
|
36
|
+
event LogFlightPolicyClosed(NftId policyNftId, Amount payoutAmount);
|
44
37
|
|
45
|
-
|
38
|
+
event LogFlightStatusProcessed(RequestId requestId, RiskId riskId, bytes1 status, int256 delayMinutes, uint8 payoutOption);
|
39
|
+
event LogFlightPoliciesProcessed(RiskId riskId, uint8 payoutOption, uint256 policiesProcessed, uint256 policiesRemaining);
|
46
40
|
|
47
41
|
// solhint-disable
|
48
|
-
|
49
|
-
|
42
|
+
Amount public MIN_PREMIUM;
|
43
|
+
Amount public MAX_PREMIUM;
|
44
|
+
Amount public MAX_PAYOUT;
|
45
|
+
Amount public MAX_TOTAL_PAYOUT; // Maximum risk per flight/risk
|
46
|
+
|
50
47
|
// Minimum time before departure for applying
|
51
|
-
Seconds public MIN_TIME_BEFORE_DEPARTURE
|
48
|
+
Seconds public MIN_TIME_BEFORE_DEPARTURE;
|
52
49
|
// Maximum time before departure for applying
|
53
|
-
Seconds public MAX_TIME_BEFORE_DEPARTURE
|
50
|
+
Seconds public MAX_TIME_BEFORE_DEPARTURE;
|
54
51
|
// Maximum duration of flight
|
55
|
-
Seconds public MAX_FLIGHT_DURATION
|
56
|
-
// Check for delay after .. minutes after scheduled arrival
|
57
|
-
Seconds public CHECK_OFFSET = SecondsLib.fromHours(1);
|
52
|
+
Seconds public MAX_FLIGHT_DURATION;
|
58
53
|
// Max time to process claims after departure
|
59
|
-
Seconds public LIFETIME
|
60
|
-
|
61
|
-
// uint256 public constant MIN_PREMIUM = 15 * 10 ** 18; // production
|
62
|
-
// All amounts in cent = multiplier is 10 ** 16!
|
63
|
-
Amount public MIN_PREMIUM;
|
64
|
-
Amount public MAX_PREMIUM;
|
65
|
-
Amount public MAX_PAYOUT;
|
66
|
-
Amount public MAX_TOTAL_PAYOUT; // Maximum risk per flight is 3x max payout.
|
54
|
+
Seconds public LIFETIME;
|
67
55
|
|
56
|
+
// ['observations','late15','late30','late45','cancelled','diverted']
|
57
|
+
// no payouts for delays of 30' or less
|
58
|
+
uint8[6] public WEIGHT_PATTERN;
|
59
|
+
// Minimum number of observations for valid prediction/premium calculation
|
60
|
+
uint256 public MIN_OBSERVATIONS;
|
68
61
|
// Maximum cumulated weighted premium per risk
|
69
|
-
uint256 public MARGIN_PERCENT
|
70
|
-
|
62
|
+
uint256 public MARGIN_PERCENT;
|
71
63
|
// Maximum number of policies to process in one callback
|
72
|
-
uint8 public MAX_POLICIES_TO_PROCESS
|
64
|
+
uint8 public MAX_POLICIES_TO_PROCESS;
|
65
|
+
// solhint-enable
|
73
66
|
|
74
|
-
|
75
|
-
|
76
|
-
|
77
|
-
uint8 public constant MAX_WEIGHT = 50;
|
67
|
+
bool internal _testMode;
|
68
|
+
|
69
|
+
mapping(RiskId riskId => RequestId requestId) internal _requests;
|
78
70
|
|
79
71
|
// GIF V3 specifics
|
80
72
|
NftId internal _defaultBundleNftId;
|
81
|
-
|
82
|
-
// TODO add product (base contract) functions
|
83
|
-
// - getOracleNftId(idx)
|
84
|
-
// - getDistributionNftId()
|
85
|
-
// - getPoolNftId()
|
86
|
-
NftId internal _oracleNftId; // TODO refactor to getOracleNftId(0)
|
87
|
-
// solhint-enable
|
88
|
-
|
89
|
-
FlightMessageVerifier internal _flightMessageVerifier;
|
73
|
+
NftId internal _oracleNftId;
|
90
74
|
|
91
75
|
|
92
76
|
struct FlightRisk {
|
93
77
|
Str flightData; // example: "LX 180 ZRH BKK 20241104"
|
94
78
|
Timestamp departureTime;
|
79
|
+
// this field contains static data required by the frontend and is not directly used by the product
|
80
|
+
string departureTimeLocal; // example "2024-10-14T10:10:00.000 Asia/Seoul"
|
95
81
|
Timestamp arrivalTime;
|
82
|
+
// this field contains static data required by the frontend and is not directly used by the product
|
83
|
+
string arrivalTimeLocal; // example "2024-10-14T10:10:00.000 Asia/Seoul"
|
96
84
|
Amount sumOfSumInsuredAmounts;
|
97
|
-
// uint256 premiumMultiplier; // what is this? UFixed?
|
98
|
-
// uint256 weight; // what is this? UFixed?
|
99
85
|
bytes1 status; // 'L'ate, 'C'ancelled, 'D'iverted, ...
|
100
86
|
int256 delayMinutes;
|
87
|
+
uint8 payoutOption;
|
88
|
+
Timestamp statusUpdatedAt;
|
89
|
+
}
|
90
|
+
|
91
|
+
|
92
|
+
struct ApplicationData {
|
93
|
+
string flightData;
|
94
|
+
Timestamp departureTime;
|
95
|
+
string departureTimeLocal;
|
96
|
+
Timestamp arrivalTime;
|
97
|
+
string arrivalTimeLocal;
|
98
|
+
Amount premiumAmount;
|
99
|
+
uint256[6] statistics;
|
100
|
+
}
|
101
|
+
|
102
|
+
|
103
|
+
struct PermitData {
|
104
|
+
address owner;
|
105
|
+
address spender;
|
106
|
+
uint256 value;
|
107
|
+
uint256 deadline;
|
108
|
+
uint8 v;
|
109
|
+
bytes32 r;
|
110
|
+
bytes32 s;
|
101
111
|
}
|
102
112
|
|
103
113
|
|
104
114
|
constructor(
|
105
115
|
address registry,
|
106
|
-
NftId
|
116
|
+
NftId instanceNftId,
|
107
117
|
string memory componentName,
|
108
|
-
IAuthorization authorization
|
109
|
-
FlightMessageVerifier messageVerifier
|
118
|
+
IAuthorization authorization
|
110
119
|
)
|
111
120
|
{
|
112
121
|
address initialOwner = msg.sender;
|
113
122
|
|
114
123
|
_initialize(
|
115
124
|
registry,
|
116
|
-
|
125
|
+
instanceNftId,
|
117
126
|
componentName,
|
118
127
|
authorization,
|
119
128
|
initialOwner);
|
120
|
-
|
121
|
-
_flightMessageVerifier = messageVerifier;
|
122
129
|
}
|
123
130
|
|
131
|
+
|
124
132
|
//--- external functions ------------------------------------------------//
|
125
133
|
//--- unpermissioned functions ------------------------------------------//
|
126
134
|
|
@@ -132,108 +140,58 @@ contract FlightProduct is
|
|
132
140
|
}
|
133
141
|
|
134
142
|
|
135
|
-
function
|
136
|
-
|
137
|
-
|
138
|
-
|
139
|
-
|
140
|
-
Amount premiumAmount,
|
141
|
-
uint256[6] memory statistics,
|
142
|
-
// signature fields
|
143
|
-
uint8 v,
|
144
|
-
bytes32 r,
|
145
|
-
bytes32 s
|
146
|
-
)
|
143
|
+
function calculatePayoutAmounts(
|
144
|
+
FlightProduct flightProduct,
|
145
|
+
Amount premium,
|
146
|
+
uint256[6] memory statistics
|
147
|
+
)
|
147
148
|
external
|
148
|
-
|
149
|
-
restricted()
|
149
|
+
view
|
150
150
|
returns (
|
151
|
-
|
152
|
-
|
153
|
-
|
151
|
+
uint256 weight,
|
152
|
+
Amount[5] memory payoutAmounts,
|
153
|
+
Amount sumInsuredAmount // simply the max of payoutAmounts
|
154
|
+
)
|
154
155
|
{
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
flightData,
|
159
|
-
departureTime,
|
160
|
-
arrivalTime,
|
161
|
-
premiumAmount,
|
162
|
-
statistics,
|
163
|
-
v, r, s);
|
164
|
-
|
165
|
-
(riskId, policyNftId) = _prepareApplication(
|
166
|
-
policyHolder,
|
167
|
-
flightData,
|
168
|
-
departureTime,
|
169
|
-
arrivalTime,
|
170
|
-
premiumAmount,
|
156
|
+
return FlightLib.calculatePayoutAmounts(
|
157
|
+
flightProduct,
|
158
|
+
premium,
|
171
159
|
statistics);
|
172
|
-
|
173
|
-
_createPolicy(
|
174
|
-
policyNftId,
|
175
|
-
TimestampLib.zero(), // do not ativate yet
|
176
|
-
premiumAmount); // max premium amount
|
177
|
-
|
178
|
-
// interactions (token transfer + callback to token holder, if contract)
|
179
|
-
_collectPremium(
|
180
|
-
policyNftId,
|
181
|
-
departureTime); // activate at scheduled departure time of flight
|
182
|
-
|
183
|
-
// send oracle request for flight status (interacts with flight oracle contract)
|
184
|
-
_sendRequest(
|
185
|
-
_oracleNftId,
|
186
|
-
abi.encode(
|
187
|
-
FlightOracle.FlightStatusRequest(
|
188
|
-
riskId,
|
189
|
-
flightData,
|
190
|
-
departureTime)),
|
191
|
-
// allow up to 30 days to process the claim
|
192
|
-
arrivalTime.addSeconds(SecondsLib.fromDays(30)),
|
193
|
-
"flightStatusCallback");
|
194
160
|
}
|
195
161
|
|
196
|
-
|
197
|
-
|
198
|
-
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
uint256[6] memory statistics
|
162
|
+
/// @dev Creates a policy using a permit for the policy holder.
|
163
|
+
/// The policy holder is defined as the owner parameter of the permit data.
|
164
|
+
/// NOTE: This function makes the assumption that the product token
|
165
|
+
/// supports permits. This assumption is not verfied.
|
166
|
+
function createPolicyWithPermit(
|
167
|
+
PermitData memory permit,
|
168
|
+
ApplicationData memory application
|
204
169
|
)
|
205
|
-
|
170
|
+
external
|
206
171
|
virtual
|
172
|
+
restricted()
|
207
173
|
returns (
|
208
174
|
RiskId riskId,
|
209
175
|
NftId policyNftId
|
210
176
|
)
|
211
177
|
{
|
212
|
-
|
213
|
-
|
178
|
+
// process permit data
|
179
|
+
_processPermit(permit);
|
214
180
|
|
181
|
+
// create policy
|
182
|
+
address policyHolder = permit.owner;
|
215
183
|
(
|
216
|
-
riskId,
|
217
|
-
|
218
|
-
|
219
|
-
|
220
|
-
flightData,
|
221
|
-
departureTime,
|
222
|
-
|
223
|
-
|
224
|
-
|
225
|
-
|
226
|
-
|
227
|
-
policyHolder,
|
228
|
-
riskId,
|
229
|
-
sumInsuredAmount,
|
230
|
-
premiumAmount,
|
231
|
-
LIFETIME,
|
232
|
-
_defaultBundleNftId,
|
233
|
-
ReferralLib.zero(),
|
234
|
-
abi.encode(
|
235
|
-
premiumAmount,
|
236
|
-
payoutAmounts)); // application data
|
184
|
+
riskId,
|
185
|
+
policyNftId
|
186
|
+
) = _createPolicy(
|
187
|
+
policyHolder,
|
188
|
+
StrLib.toStr(application.flightData),
|
189
|
+
application.departureTime,
|
190
|
+
application.departureTimeLocal,
|
191
|
+
application.arrivalTime,
|
192
|
+
application.arrivalTimeLocal,
|
193
|
+
application.premiumAmount,
|
194
|
+
application.statistics);
|
237
195
|
}
|
238
196
|
|
239
197
|
|
@@ -254,17 +212,22 @@ contract FlightProduct is
|
|
254
212
|
requestId,
|
255
213
|
response.riskId,
|
256
214
|
response.status,
|
257
|
-
response.delayMinutes
|
258
|
-
|
215
|
+
response.delayMinutes);
|
216
|
+
}
|
217
|
+
|
218
|
+
|
219
|
+
function resendRequest(RequestId requestId)
|
220
|
+
external
|
221
|
+
virtual
|
222
|
+
restricted()
|
223
|
+
{
|
224
|
+
_resendRequest(requestId);
|
259
225
|
}
|
260
226
|
|
261
227
|
|
262
228
|
/// @dev Manual fallback function for product owner.
|
263
|
-
function
|
264
|
-
RequestId requestId,
|
229
|
+
function processPayoutsAndClosePolicies(
|
265
230
|
RiskId riskId,
|
266
|
-
bytes1 status,
|
267
|
-
int256 delayMinutes,
|
268
231
|
uint8 maxPoliciesToProcess
|
269
232
|
)
|
270
233
|
external
|
@@ -272,34 +235,43 @@ contract FlightProduct is
|
|
272
235
|
restricted()
|
273
236
|
onlyOwner()
|
274
237
|
{
|
275
|
-
|
276
|
-
requestId,
|
238
|
+
_processPayoutsAndClosePolicies(
|
277
239
|
riskId,
|
278
|
-
status,
|
279
|
-
delayMinutes,
|
280
240
|
maxPoliciesToProcess);
|
281
|
-
}
|
241
|
+
}
|
242
|
+
|
282
243
|
|
283
244
|
//--- owner functions ---------------------------------------------------//
|
284
245
|
|
285
|
-
/// @dev Call after product registration with the instance
|
286
|
-
|
246
|
+
/// @dev Call after product registration with the instance
|
247
|
+
/// when the product token/tokenhandler is available
|
248
|
+
function setConstants(
|
249
|
+
Amount minPremium,
|
250
|
+
Amount maxPremium,
|
251
|
+
Amount maxPayout,
|
252
|
+
Amount maxTotalPayout,
|
253
|
+
Seconds minTimeBeforeDeparture,
|
254
|
+
Seconds maxTimeBeforeDeparture,
|
255
|
+
uint8 maxPoliciesToProcess
|
256
|
+
)
|
287
257
|
external
|
288
258
|
virtual
|
289
259
|
restricted()
|
290
260
|
onlyOwner()
|
291
261
|
{
|
292
|
-
|
293
|
-
|
294
|
-
|
295
|
-
|
296
|
-
|
297
|
-
|
298
|
-
|
262
|
+
MIN_PREMIUM = minPremium;
|
263
|
+
MAX_PREMIUM = maxPremium;
|
264
|
+
MAX_PAYOUT = maxPayout;
|
265
|
+
MAX_TOTAL_PAYOUT = maxTotalPayout;
|
266
|
+
|
267
|
+
MIN_TIME_BEFORE_DEPARTURE = minTimeBeforeDeparture;
|
268
|
+
MAX_TIME_BEFORE_DEPARTURE = maxTimeBeforeDeparture;
|
269
|
+
MAX_POLICIES_TO_PROCESS = maxPoliciesToProcess;
|
299
270
|
}
|
300
271
|
|
301
|
-
|
302
272
|
function setDefaultBundle(NftId bundleNftId) external restricted() onlyOwner() { _defaultBundleNftId = bundleNftId; }
|
273
|
+
function setTestMode(bool testMode) external restricted() onlyOwner() { _testMode = testMode; }
|
274
|
+
|
303
275
|
function approveTokenHandler(IERC20Metadata token, Amount amount) external restricted() onlyOwner() { _approveTokenHandler(token, amount); }
|
304
276
|
function setLocked(bool locked) external onlyOwner() { _setLocked(locked); }
|
305
277
|
function setWallet(address newWallet) external restricted() onlyOwner() { _setWallet(newWallet); }
|
@@ -307,7 +279,6 @@ contract FlightProduct is
|
|
307
279
|
|
308
280
|
//--- view functions ----------------------------------------------------//
|
309
281
|
|
310
|
-
|
311
282
|
function calculateNetPremium(
|
312
283
|
Amount, // sumInsuredAmount: not used in this product
|
313
284
|
RiskId, // riskId: not used in this product
|
@@ -323,31 +294,172 @@ contract FlightProduct is
|
|
323
294
|
}
|
324
295
|
|
325
296
|
|
326
|
-
function
|
327
|
-
|
328
|
-
view
|
329
|
-
returns (FlightMessageVerifier)
|
330
|
-
{
|
331
|
-
return _flightMessageVerifier;
|
332
|
-
}
|
297
|
+
function getOracleNftId() public view returns (NftId oracleNftId) { return _oracleNftId; }
|
298
|
+
function isTestMode() public view returns (bool) { return _testMode; }
|
333
299
|
|
334
300
|
|
335
|
-
function
|
301
|
+
function getFlightRisk(
|
302
|
+
RiskId riskId,
|
303
|
+
bool requireRiskExists
|
304
|
+
)
|
336
305
|
public
|
337
306
|
view
|
338
|
-
returns (
|
339
|
-
|
340
|
-
|
307
|
+
returns (
|
308
|
+
bool exists,
|
309
|
+
FlightRisk memory flightRisk
|
310
|
+
)
|
311
|
+
{
|
312
|
+
(exists, flightRisk) = FlightLib.getFlightRisk(
|
313
|
+
_getInstanceReader(),
|
314
|
+
getNftId(),
|
315
|
+
riskId,
|
316
|
+
requireRiskExists);
|
341
317
|
}
|
342
318
|
|
319
|
+
function getRequestForRisk(RiskId riskId) public view returns (RequestId requestId) { return _requests[riskId]; }
|
320
|
+
function decodeFlightRiskData(bytes memory data) public pure returns (FlightRisk memory) { return abi.decode(data, (FlightRisk)); }
|
343
321
|
|
344
322
|
//--- internal functions ------------------------------------------------//
|
345
323
|
|
346
324
|
|
325
|
+
function _processPermit(
|
326
|
+
PermitData memory permit
|
327
|
+
)
|
328
|
+
internal
|
329
|
+
virtual
|
330
|
+
restricted()
|
331
|
+
{
|
332
|
+
address tokenAddress = address(getToken());
|
333
|
+
|
334
|
+
// process permit data
|
335
|
+
ERC20Permit(tokenAddress).permit(
|
336
|
+
permit.owner,
|
337
|
+
permit.spender,
|
338
|
+
permit.value,
|
339
|
+
permit.deadline,
|
340
|
+
permit.v,
|
341
|
+
permit.r,
|
342
|
+
permit.s);
|
343
|
+
}
|
344
|
+
|
345
|
+
|
346
|
+
function _createPolicy(
|
347
|
+
address policyHolder,
|
348
|
+
Str flightData,
|
349
|
+
Timestamp departureTime,
|
350
|
+
string memory departureTimeLocal,
|
351
|
+
Timestamp arrivalTime,
|
352
|
+
string memory arrivalTimeLocal,
|
353
|
+
Amount premiumAmount,
|
354
|
+
uint256[6] memory statistics
|
355
|
+
)
|
356
|
+
internal
|
357
|
+
virtual
|
358
|
+
returns (
|
359
|
+
RiskId riskId,
|
360
|
+
NftId policyNftId
|
361
|
+
)
|
362
|
+
{
|
363
|
+
// checks
|
364
|
+
// disabled for now - using rbac for security
|
365
|
+
FlightLib.checkApplicationData(
|
366
|
+
this,
|
367
|
+
flightData,
|
368
|
+
departureTime,
|
369
|
+
arrivalTime,
|
370
|
+
premiumAmount);
|
371
|
+
|
372
|
+
(riskId, policyNftId) = _prepareApplication(
|
373
|
+
policyHolder,
|
374
|
+
flightData,
|
375
|
+
departureTime,
|
376
|
+
departureTimeLocal,
|
377
|
+
arrivalTime,
|
378
|
+
arrivalTimeLocal,
|
379
|
+
premiumAmount,
|
380
|
+
statistics);
|
381
|
+
|
382
|
+
_createPolicy(
|
383
|
+
policyNftId,
|
384
|
+
TimestampLib.zero(), // do not ativate yet
|
385
|
+
premiumAmount); // max premium amount
|
386
|
+
|
387
|
+
// interactions (token transfer + callback to token holder, if contract)
|
388
|
+
_collectPremium(
|
389
|
+
policyNftId,
|
390
|
+
departureTime); // activate at scheduled departure time of flight
|
391
|
+
|
392
|
+
// send oracle request for for new risk to obtain flight status (interacts with flight oracle contract)
|
393
|
+
if (_requests[riskId].eqz()) {
|
394
|
+
_requests[riskId] = _sendRequest(
|
395
|
+
_oracleNftId,
|
396
|
+
abi.encode(
|
397
|
+
FlightOracle.FlightStatusRequest(
|
398
|
+
riskId,
|
399
|
+
flightData,
|
400
|
+
departureTime)),
|
401
|
+
// allow up to 30 days to process the claim
|
402
|
+
arrivalTime.addSeconds(SecondsLib.fromDays(30)),
|
403
|
+
"flightStatusCallback");
|
404
|
+
}
|
405
|
+
|
406
|
+
emit LogFlightPolicyPurchased(policyNftId, flightData.toString(), premiumAmount);
|
407
|
+
}
|
408
|
+
|
409
|
+
|
410
|
+
function _prepareApplication(
|
411
|
+
address policyHolder,
|
412
|
+
Str flightData,
|
413
|
+
Timestamp departureTime,
|
414
|
+
string memory departureTimeLocal,
|
415
|
+
Timestamp arrivalTime,
|
416
|
+
string memory arrivalTimeLocal,
|
417
|
+
Amount premiumAmount,
|
418
|
+
uint256[6] memory statistics
|
419
|
+
)
|
420
|
+
internal
|
421
|
+
virtual
|
422
|
+
returns (
|
423
|
+
RiskId riskId,
|
424
|
+
NftId policyNftId
|
425
|
+
)
|
426
|
+
{
|
427
|
+
Amount[5] memory payoutAmounts;
|
428
|
+
Amount sumInsuredAmount;
|
429
|
+
|
430
|
+
(
|
431
|
+
riskId,
|
432
|
+
payoutAmounts,
|
433
|
+
sumInsuredAmount
|
434
|
+
) = _createRiskAndPayoutAmounts(
|
435
|
+
flightData,
|
436
|
+
departureTime,
|
437
|
+
departureTimeLocal,
|
438
|
+
arrivalTime,
|
439
|
+
arrivalTimeLocal,
|
440
|
+
premiumAmount,
|
441
|
+
statistics);
|
442
|
+
|
443
|
+
policyNftId = _createApplication(
|
444
|
+
policyHolder,
|
445
|
+
riskId,
|
446
|
+
sumInsuredAmount,
|
447
|
+
premiumAmount,
|
448
|
+
LIFETIME,
|
449
|
+
_defaultBundleNftId,
|
450
|
+
ReferralLib.zero(),
|
451
|
+
abi.encode(
|
452
|
+
premiumAmount,
|
453
|
+
payoutAmounts)); // application data
|
454
|
+
}
|
455
|
+
|
456
|
+
|
347
457
|
function _createRiskAndPayoutAmounts(
|
348
458
|
Str flightData,
|
349
459
|
Timestamp departureTime,
|
460
|
+
string memory departureTimeLocal,
|
350
461
|
Timestamp arrivalTime,
|
462
|
+
string memory arrivalTimeLocal,
|
351
463
|
Amount premiumAmount,
|
352
464
|
uint256[6] memory statistics
|
353
465
|
)
|
@@ -373,7 +485,9 @@ contract FlightProduct is
|
|
373
485
|
riskId = _checkAndUpdateFlightRisk(
|
374
486
|
flightData,
|
375
487
|
departureTime,
|
488
|
+
departureTimeLocal,
|
376
489
|
arrivalTime,
|
490
|
+
arrivalTimeLocal,
|
377
491
|
sumInsuredAmount,
|
378
492
|
weight);
|
379
493
|
}
|
@@ -382,7 +496,9 @@ contract FlightProduct is
|
|
382
496
|
function _checkAndUpdateFlightRisk(
|
383
497
|
Str flightData,
|
384
498
|
Timestamp departureTime,
|
499
|
+
string memory departureTimeLocal,
|
385
500
|
Timestamp arrivalTime,
|
501
|
+
string memory arrivalTimeLocal,
|
386
502
|
Amount sumInsuredAmount,
|
387
503
|
uint256 weight
|
388
504
|
)
|
@@ -397,7 +513,9 @@ contract FlightProduct is
|
|
397
513
|
getNftId(),
|
398
514
|
flightData,
|
399
515
|
departureTime,
|
400
|
-
|
516
|
+
departureTimeLocal,
|
517
|
+
arrivalTime,
|
518
|
+
arrivalTimeLocal);
|
401
519
|
|
402
520
|
// create risk, if new
|
403
521
|
if (!exists) {
|
@@ -405,11 +523,10 @@ contract FlightProduct is
|
|
405
523
|
_createRisk(riskKey, abi.encode(flightRisk));
|
406
524
|
}
|
407
525
|
|
408
|
-
|
409
|
-
|
410
|
-
|
411
|
-
|
412
|
-
);
|
526
|
+
FlightLib.checkClusterRisk(
|
527
|
+
flightRisk.sumOfSumInsuredAmounts,
|
528
|
+
sumInsuredAmount,
|
529
|
+
MAX_TOTAL_PAYOUT);
|
413
530
|
|
414
531
|
// update existing risk with additional sum insured amount
|
415
532
|
flightRisk.sumOfSumInsuredAmounts = flightRisk.sumOfSumInsuredAmounts + sumInsuredAmount;
|
@@ -421,71 +538,85 @@ contract FlightProduct is
|
|
421
538
|
RequestId requestId,
|
422
539
|
RiskId riskId,
|
423
540
|
bytes1 status,
|
424
|
-
int256 delayMinutes
|
425
|
-
uint8 maxPoliciesToProcess
|
541
|
+
int256 delayMinutes
|
426
542
|
)
|
427
543
|
internal
|
428
544
|
virtual
|
429
545
|
{
|
430
546
|
// check risk exists
|
431
|
-
|
432
|
-
(
|
433
|
-
bool exists,
|
434
|
-
FlightRisk memory flightRisk
|
435
|
-
) = FlightLib.getFlightRisk(reader, getNftId(), riskId);
|
547
|
+
(, FlightRisk memory flightRisk) = getFlightRisk(riskId, true);
|
436
548
|
|
437
|
-
if
|
438
|
-
|
439
|
-
|
440
|
-
|
549
|
+
// update status, if not yet set
|
550
|
+
if (flightRisk.statusUpdatedAt.eqz()) {
|
551
|
+
flightRisk.statusUpdatedAt = TimestampLib.current();
|
552
|
+
flightRisk.status = status;
|
553
|
+
flightRisk.delayMinutes = delayMinutes;
|
554
|
+
flightRisk.payoutOption = FlightLib.checkAndGetPayoutOption(
|
555
|
+
requestId, riskId, status, delayMinutes);
|
441
556
|
|
442
|
-
|
443
|
-
|
557
|
+
_updateRisk(riskId, abi.encode(flightRisk));
|
558
|
+
}
|
444
559
|
|
445
|
-
_processPayoutsAndClosePolicies(
|
560
|
+
(,, uint8 payoutOption) = _processPayoutsAndClosePolicies(
|
446
561
|
riskId,
|
447
|
-
|
448
|
-
maxPoliciesToProcess);
|
562
|
+
MAX_POLICIES_TO_PROCESS);
|
449
563
|
|
450
564
|
// logging
|
451
565
|
emit LogFlightStatusProcessed(requestId, riskId, status, delayMinutes, payoutOption);
|
452
566
|
}
|
453
567
|
|
454
568
|
|
455
|
-
// REMARK caller responsible to check that risk exists.
|
456
569
|
function _processPayoutsAndClosePolicies(
|
457
570
|
RiskId riskId,
|
458
|
-
uint8 payoutOption,
|
459
571
|
uint8 maxPoliciesToProcess
|
460
572
|
)
|
461
573
|
internal
|
462
574
|
virtual
|
575
|
+
returns (
|
576
|
+
bool riskExists,
|
577
|
+
bool statusAvailable,
|
578
|
+
uint8 payoutOption
|
579
|
+
)
|
463
580
|
{
|
464
581
|
// determine numbers of policies to process
|
465
582
|
InstanceReader reader = _getInstanceReader();
|
583
|
+
(riskExists, statusAvailable, payoutOption) = FlightLib.getPayoutOption(reader, getNftId(), riskId);
|
584
|
+
|
585
|
+
// return with default values if risk does not exist or status is not yet available
|
586
|
+
if (!riskExists || !statusAvailable) {
|
587
|
+
return (riskExists, statusAvailable, payoutOption);
|
588
|
+
}
|
589
|
+
|
466
590
|
uint256 policiesToProcess = reader.policiesForRisk(riskId);
|
467
|
-
|
591
|
+
uint256 policiesProcessed = policiesToProcess < maxPoliciesToProcess ? policiesToProcess : maxPoliciesToProcess;
|
468
592
|
|
469
|
-
//
|
470
|
-
|
471
|
-
|
593
|
+
// assemble array with policies to process
|
594
|
+
NftId [] memory policies = new NftId[](policiesProcessed);
|
595
|
+
for (uint256 i = 0; i < policiesProcessed; i++) {
|
596
|
+
policies[i] = reader.getPolicyForRisk(riskId, i);
|
597
|
+
}
|
472
598
|
|
473
|
-
|
474
|
-
|
475
|
-
|
476
|
-
|
599
|
+
// go through policies
|
600
|
+
for (uint256 i = 0; i < policiesProcessed; i++) {
|
601
|
+
NftId policyNftId = policies[i];
|
602
|
+
Amount payoutAmount = FlightLib.getPayoutAmount(
|
603
|
+
reader.getPolicyInfo(policyNftId).applicationData,
|
604
|
+
payoutOption);
|
477
605
|
|
478
|
-
|
479
|
-
|
480
|
-
|
481
|
-
|
482
|
-
payoutOption));
|
483
|
-
}
|
606
|
+
// create claim/payout (if applicable)
|
607
|
+
_resolvePayout(
|
608
|
+
policyNftId,
|
609
|
+
payoutAmount);
|
484
610
|
|
485
611
|
// expire and close policy
|
486
612
|
_expire(policyNftId, TimestampLib.current());
|
487
613
|
_close(policyNftId);
|
614
|
+
|
615
|
+
emit LogFlightPolicyClosed(policyNftId, payoutAmount);
|
488
616
|
}
|
617
|
+
|
618
|
+
// logging
|
619
|
+
emit LogFlightPoliciesProcessed(riskId, payoutOption, policiesProcessed, policiesToProcess - policiesProcessed);
|
489
620
|
}
|
490
621
|
|
491
622
|
|
@@ -496,6 +627,11 @@ contract FlightProduct is
|
|
496
627
|
internal
|
497
628
|
virtual
|
498
629
|
{
|
630
|
+
// no action if no payout
|
631
|
+
if (payoutAmount.eqz()) {
|
632
|
+
return;
|
633
|
+
}
|
634
|
+
|
499
635
|
// create confirmed claim
|
500
636
|
ClaimId claimId = _submitClaim(policyNftId, payoutAmount, "");
|
501
637
|
_confirmClaim(policyNftId, claimId, payoutAmount, "");
|
@@ -514,9 +650,9 @@ contract FlightProduct is
|
|
514
650
|
address initialOwner
|
515
651
|
)
|
516
652
|
internal
|
517
|
-
initializer
|
653
|
+
initializer()
|
518
654
|
{
|
519
|
-
|
655
|
+
__Product_init(
|
520
656
|
registry,
|
521
657
|
instanceNftId,
|
522
658
|
componentName,
|
@@ -541,5 +677,11 @@ contract FlightProduct is
|
|
541
677
|
}),
|
542
678
|
authorization,
|
543
679
|
initialOwner); // number of oracles
|
680
|
+
|
681
|
+
MAX_FLIGHT_DURATION = SecondsLib.fromDays(2);
|
682
|
+
LIFETIME = SecondsLib.fromDays(30);
|
683
|
+
WEIGHT_PATTERN = [0, 0, 0, 30, 50, 50];
|
684
|
+
MIN_OBSERVATIONS = 10;
|
685
|
+
MARGIN_PERCENT = 30;
|
544
686
|
}
|
545
687
|
}
|