0.1.8 • Published 2 years ago

@bluejayfinance/functions v0.1.8

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

Serverless Functions

This repository contains different serverless function used in the operations of the protocol.

Functions

/debug

This is a debug function that returns a status "OK" and prints call information to the logs.

You may use this in local development to test out calls easily.

/updateOracles

This function updates the BLU/DAI TWAP oracle and the SGD/DAI TWAP oracle. It's scheduled to run at fixed interval to update stale results on the oracle.

Set the env ORACLE_UPDATE_SGD to allow this function to update the SGD/DAI oracle when the oracle is available.

Development

Set environment variables

For development, copy the .env.example to .env and set the necessary environment variables:

NETWORK - Choose between "local", "development" or "production". Local runs against a local blockchain, development runs against the rinkeby blockchain and production runs against mainnet.

ALCHEMY_KEY - API key from alchemy for the providers.

TELEGRAM_BOT_TOKEN & TELEGRAM_CHAT_ID - To configure the telegram bot. Use botfather to create a new bot when testing locally.

ORACLE_UPDATER_KEY - Private key with Ethers on the network defined in NETWORK. Does not require special permission since the oracle can be updated by anyone. In local environment, you can use key #1 or #2.

ORACLE_UPDATE_SGD - Allow updateOracle to update SGD/DAI oracle.

Running the functions locally.

Run npm run dev and visit localhost:3000/debug to visit the debug function.

Creating new functions

  1. Read https://www.serverless.com/framework/docs/providers/aws/guide/serverless.yml
  2. Configure the routes at serverless.yml
  3. Add the functions logic in src/functionHandlers using one of the request handlers in src/middlewares (see debug function for template)