@aurora-is-near/aurora-oracle
v1.1.2
Published
An oracle contract that is updated with configured USD price tokens.
Keywords
Readme
Aurora Oracle
An oracle contract that is updated with configured USD price tokens. A backend process collects those prices from the CoinGecko API.
This repository enforces semantic commit messages. For more details and examples see the Conventional Commits Specification.
Usage
Get price of a pair
To get the price of tokenA against tokenB with decimals of tokenB call the following function:
getPairRate(string memory tokenA, string memory tokenB, uint8 decimalsTokenB) Where tokenA and tokenB are the symbols of the tokens (CAPITAL). Only allowed tokens allowed as inputs for this function.
For example, to get the price of ETH against BTC. BTC has 8 decimals:
getPairRate("ETH","BTC",8)Or, to get the price of TPRO against USDC. USDC has 6 decimals:
getPairRate("TPRO","USDC",6)Get list of all oracle allowed tokens
To get all allowed token symbols:
getAllTokenSymbols()Contract
The Solidity contract is available at contracts/AuroraOracle.sol.
The Contract ABI is available at abi/oracleContractABI.json.
Scripts
scripts/00_replaceOwner.js
scripts/01_getPairRate.js
scripts/02_getAllowedSymbols.js
scripts/04_getPairRateFullTest.jsTesting
To run the Hardhat tests
yarn testDeployment
This repository is distributed as private GitHub Package so that we can deploy it from another process (e.g. via the be-aurora-oracle).
To install the package you will need to authenticate to GitHub Packages, then:
To deploy the contract a given network:
npx @aurora-is-near/oracle deploy <NETWORK> --private-key <AURORA-PRIVATE-KEY>For example:
npx @aurora-is-near/oracle deploy tpro --private-key abc-123The available networks are defined in the hardhat.config.js file.
You can also set the private key via the AURORA_PRIVATE_KEY environment variable.
Adding a network
Once a new network is added to the hardhat.config.js file
and the change is merged into the main branch the release process will run and
a new version will be deployed. Once this new version is available we should be
able to trigger the deployment script for that network, as above.
