The webapp is configured via environment variables. The following variables are available:
NEXT_PUBLIC_DEPARTURE_DATE_MIN_DAYS: The minimum number of days in the future for the departure dateNEXT_PUBLIC_DEPARTURE_DATE_MAX_DAYS: The maximum number of days in the future for the departure dateNEXT_PUBLIC_AIRPORTS_WHITELIST: A comma-separated list of airport codes of whitelisted airports. At least the departure or the arrival airport must be in this list.NEXT_PUBLIC_AIRPORTS_BLACKLIST: A comma-separated list of airport codes of blacklisted airports. If the departure or the arrival airport is in this list, no policy can be created.PREMIUM: Set the premium in wei. Defaults to15000000.NEXT_PUBLIC_APP_BASE_URL: The base URL where the webapp is deployed (without trailing slash). Defaults tohttps://flightdelay.appNEXT_PUBLIC_PRODUCT_CONTRACT_ADDRESS: The address of the product contractNEXT_PUBLIC_PRODUCT_TOKENHANDLER_CONTRACT_ADDRESS: The address of the product token handler contractNEXT_PUBLIC_POOL_CONTRACT_ADDRESS: The address of the flight pool contractNEXT_PUBLIC_ORACLE_CONTRACT_ADDRESS: The address of the flight oracle contractNEXT_PUBLIC_FLIGHT_NFT_CONTRACT_ADDRESS: The address of the flight NFT contractNEXT_PUBLIC_ERC20_TOKEN_CONTRACT_ADDRESS: The address of the ERC20 token contract to pay the premium withNEXT_PUBLIC_ERC20_TOKEN_VERSION: Token version, default is "1", needs to be set to "2" for USDC on BaseNEXT_PUBLIC_PREMIUM_TOKEN_SYMBOL: The symbol of the premium tokenNEXT_PUBLIC_PREMIUM_TOKEN_DECIMALS: The number of decimals of the premium tokenNEXT_PUBLIC_CONTRACTS_BADGE_TEXT: The badge text to show on the contracts page (optional). Used to indicate the environment (e.g. "test", ...)STATISTICS_PROVIDER_MNEMONIC: The mnemonic of the statistics provider. This account is used to create the policies.STATISTICS_PROVIDER_MIN_BALANCE: The minimum balance of the statistics provider. If the balance is below this value, the provider will not be able to create new policies and the readiness check will fail.STATUS_PROVIDER_MIN_BALANCE: The minimum balance of the status provider. If the balance is below this value, the provider will not be able to send oracle responses and the readiness check will fail.STATUS_PROVIDER_MNEMONIC: The mnemonic of the status provider. This account is used to send the oracle response transactions.RISKPOOL_MIN_CAPACITY: The minimum capacity of the risk pool in wei. If the capacity is below this value, the policy creation will not be possible.ORACLE_ARRIVAL_CHECK_DELAY_SECONDS: The delay in seconds for the oracle to check the arrival status after the exected arrival timeGAS_LIMIT: The gas limit for oracle responses (defaults to5000000)RISKPOOL_MAX_PAYOUT_CHECK_LOOKAHEAD_SECONDS: The lookahead time in seconds for the risk pool maximum payout check (executed during readyness checks). Defaults to 172800 seconds (2 days).NEXT_PUBLIC_EXPECTED_CHAIN_ID: The expected chain IDNEXT_PUBLIC_EXPECTED_CHAIN_NAME: The expected chain name (optional, required for automatic chain adding)NEXT_PUBLIC_EXPECTED_CHAIN_RPC_NODE_URL: The expected chain RPC node URL (optional, required for automatic chain adding)NEXT_PUBLIC_EXPECTED_CHAIN_BLOCK_EXPLORER_URL: The expected chain block explorer URL (optional, required for automatic chain adding)NEXT_PUBLIC_EXPECTED_CHAIN_TOKEN_NAME: The expected chain native token name (optional, required for automatic chain adding)NEXT_PUBLIC_EXPECTED_CHAIN_TOKEN_SYMBOL: The expected chain native token symbol (optional, required for automatic chain adding)NEXT_PUBLIC_EXPECTED_CHAIN_TOKEN_DECIMALS: The expected chain native token decimals (optional, required for automatic chain adding)FLIGHTSTATS_BASE_URL: The base URL for the Flightstats APIFLIGHTSTATS_APP_ID: The Flightstats API application IDFLIGHTSTATS_APP_KEY: The Flightstats API application keyLOG_API_PROXY: set thetrueto log proxy requests on the backendLOG_LEVEL: The log level for the backend api (debug, info, warn, error)NEXT_PUBLIC_GA_MEASUREMENT_ID: The Google Analytics measurement ID. No tracking is done if this value is not setNEXT_PUBLIC_GA_ENVIRONMENT_ID: The Google Analytics environment identifierCSP_ENABLED: Set totrueto enable the Content Security Policy
The webapp uses Typechain to generate smart contract bindings. The generated files are stored in the src/contracts directory (which is not commited to git, to ensure the latest artifacts are used). The generation is done automatically after running npm install.
Currently not all smart contracts are compiled automatically, due to the huge number of classes this would generate.
Which contracts are compiled is defined in the package.json file in tasks typechainOpenzeppelinTypes, typechainGif and typechainFlight.
npm run devImportant: This project requires a fontawesome pro license. Please set your auth token in the FONTAWESOME_NPM_AUTH_TOKEN environment variable.
curl -X POST http://localhost:3000/api/oracle -H "Content-Type: application/json" -d {} -w " %{http_code}\n"
npm run test
(or)
npm run testLoopVia container created by executing
docker build -t flightdelay-ui-webapp .Important: This project requires a fontawesome pro license. Please set your auth token in the FONTAWESOME_NPM_AUTH_TOKEN environment variable.
This repository uses Gitflow as branching strategy. The main branches are:
main: The main branch for production releasesdevelop: The main branch for development
Feature branches are created from develop and merged back into develop via pull requests (or git merge). Hotfix branches are created from main and merged back into develop and main via pull requests (or git merge).
Assumption: the current branch is develop and the branch is up-to-date and contains the latest changes.
git switch main
git pull
git merge developNow the main branch contains the latest changes from develop and the production system can be updated from the main branch.
Assumption: a hotfix is required for the production system.
git switch main
git pull
git switch -c hotfix/<branch name># implement the hotfix on that branch Assumption: the hotfix branch is up-to-date and contains the latest changes.
git switch main
git pull
git merge hotfix/<branch name>
git switch develop
git pull
git merge hotfix/<branch name>Now the hotfix is merged into main and develop and the hotfix branch can be deleted. Production can be updated from the main branch and the development can continue on the develop branch.