Skip to main content

ExchangeRate

frcli: Get fiat prices for btc.

Example request: http://localhost:8466/v1/faraday/exchangerate

Source: faraday.proto

gRPC

rpc ExchangeRate (ExchangeRateRequest) returns (ExchangeRateResponse);

REST

HTTP MethodPath
GET /v1/faraday/exchangerate

Code Samples

const fs = require('fs');
const grpc = require('@grpc/grpc-js');
const protoLoader = require('@grpc/proto-loader');

const GRPC_HOST = 'localhost:8465'
const MACAROON_PATH = 'FARADAY_DIR/regtest/faraday.macaroon'
const TLS_PATH = 'FARADAY_DIR/tls.cert'

const loaderOptions = {
keepCase: true,
longs: String,
enums: String,
defaults: true,
oneofs: true,
};
const packageDefinition = protoLoader.loadSync('faraday.proto', loaderOptions);
const frdrpc = grpc.loadPackageDefinition(packageDefinition).frdrpc;
process.env.GRPC_SSL_CIPHER_SUITES = 'HIGH+ECDSA';
const tlsCert = fs.readFileSync(TLS_PATH);
const sslCreds = grpc.credentials.createSsl(tlsCert);
const macaroon = fs.readFileSync(MACAROON_PATH).toString('hex');
const macaroonCreds = grpc.credentials.createFromMetadataGenerator(function(args, callback) {
let metadata = new grpc.Metadata();
metadata.add('macaroon', macaroon);
callback(null, metadata);
});
let creds = grpc.credentials.combineChannelCredentials(sslCreds, macaroonCreds);
let client = new frdrpc.FaradayServer(GRPC_HOST, creds);
let request = {
timestamps: <uint64>,
granularity: <Granularity>,
fiat_backend: <FiatBackend>,
custom_prices: <BitcoinPrice>,
};
client.exchangeRate(request, function(err, response) {
console.log(response);
});
// Console output:
// {
// "rates": <ExchangeRate>,
// }

Messages

frdrpc.ExchangeRateRequest

Source: faraday.proto

FieldgRPC TypeREST TypeREST Placement
timestamps
uint64[]arrayquery
granularity
Granularitystringquery
fiat_backend
FiatBackendstringquery
custom_prices
BitcoinPrice[]arrayunknown

frdrpc.ExchangeRateResponse

Source: faraday.proto

FieldgRPC TypeREST Type
rates
ExchangeRate[]array

Nested Messages

frdrpc.BitcoinPrice

FieldgRPC TypeREST Type
price
stringstring
price_timestamp
uint64string
currency
stringstring

frdrpc.ExchangeRate

FieldgRPC TypeREST Type
timestamp
uint64string
btc_price
BitcoinPriceobject

Enums

frdrpc.FiatBackend

NameNumber
UNKNOWN_FIATBACKEND
0
COINCAP
1
COINDESK
2
CUSTOM
3
COINGECKO
4

frdrpc.Granularity

NameNumber
UNKNOWN_GRANULARITY
0
MINUTE
1
FIVE_MINUTES
2
FIFTEEN_MINUTES
3
THIRTY_MINUTES
4
HOUR
5
SIX_HOURS
6
TWELVE_HOURS
7
DAY
8