https://github.com/chronicleprotocol/setzer
CLI Tool for sourcing asset price data
https://github.com/chronicleprotocol/setzer
Last synced: 5 months ago
JSON representation
CLI Tool for sourcing asset price data
- Host: GitHub
- URL: https://github.com/chronicleprotocol/setzer
- Owner: chronicleprotocol
- License: gpl-3.0
- Created: 2022-02-04T16:57:52.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-02-19T15:14:12.000Z (over 2 years ago)
- Last Synced: 2024-06-20T12:05:10.994Z (about 2 years ago)
- Language: Shell
- Size: 356 KB
- Stars: 1
- Watchers: 8
- Forks: 12
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# Setzer MCD
Query USD price feeds
## Usage
```
Usage: setzer []
or: setzer --help
Commands:
help Print help about setzer or one of its subcommands
pairs List all supported pairs
price Show price(s) for a given asset or pair
sources Show price sources for a given asset or pair
test Test all price feeds
```
## Installation
Dependencies:
* GNU [bc](https://www.gnu.org/software/bc/)
* [curl](https://curl.haxx.se/download.html)
* GNU [datamash](https://www.gnu.org/software/datamash/)
* GNU `date`
* [jshon](http://kmkeen.com/jshon/)
* GNU `timeout`
* [htmlq](https://github.com/mgdm/htmlq)
Install via make:
* `make link` - link setzer into `/usr/local`
* `make install` - copy setzer into `/usr/local`
* `make uninstall` - remove setzer from `/usr/local`
## Configuration
* `SETZER_CACHE` - Cache directory (default: ~/.setzer)
* `SETZER_CACHE_EXPIRY` - Cache expiry (default: 60) seconds
* `SETZER_TIMEOUT` - HTTP request timeout (default: 10) seconds
## wstETH pair requirement
Due to process of pulling details from mainnet for getting price information.
You need to set `ETH_RPC_URL` environemnt variable. By default it will point to `http://127.0.0.1:8545`.
Example of usage:
```bash
export ETH_RPC_URL="https://mainnet.infura.io/v3/fac98e56ea7e49608825dfc726fab703"
```
### Fx/Exchangerates API Key
Since latest changes in Exchangerates API, now it requires API key.
To set API Key for this exchange you can use `EXCHANGERATES_API_KEY` env variable.
Example:
```bash
$ EXCHANGERATES_API_KEY=your_api_key setzer fx krwusd
```
### E2E tests
E2E tests for setzer are written in Go language and relies on [Smocker](https://smocker.dev) for API manipulation.
#### How to setup tests environment
You have to install Docker on your machine first.
Then you will have to start [smocker](https://smocker.dev) container.
```bash
$ docker run -d \
--restart=always \
-p 8080:8080 \
-p 8081:8081 \
--name smocker \
thiht/smocker
```
Next step will be to build setzer E2E docker container:
```bash
$ docker build -t setzer -f e2e/Dockerfile .
```
Run newly created container:
```bash
$ docker run -i --rm --link smocker setzer
```
If you need to write tests or want to continuesly run them while doing something you might use docker interactive mode.
```bash
$ docker run -it --rm -v $(pwd):/app --link smocker setzer /bin/bash
```
It will start docker in interactove mode and you will be able to run E2E tests using command:
```bash
$ go test -v -parallel 1 -cpu 1 ./...
```