
Security News
rv Is a New Rust-Powered Ruby Version Manager Inspired by Python's uv
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
@thorchain/byzantine-module
Advanced tools
THORChain Byzantine Module is an anti-phishing module needed by ASGARDEX clients.
THORChain Byzantine Module is an anti-phishing module used by ASGARDEX
clients. It provides an easy way to get a valid, but random base url of Midgards API by proofing active THORNodes. It will do all the hard work behind the scenes for you.
@thorchain/byzantine-module
from npm
yarn add @thorchain/byzantine-module
Whenever your application needs to ask Midgard API for data, call Byzantine
before. It will return a valid, but random base url of Midgard API provided by an active THORNode. Please note: That's the only way to send a transaction to a proofed THORNode at any time.
import byzantine from '@thorchain/byzantine-module'
// baseUrl on testnet
const baseUrl = await byzantine()
// or
// baseUrl on mainnet
const baseUrl = await byzantine(true)
// fetch data from an endpoint, for example to get data of `/v1/pools`
const data = await fetch(`${baseUrl}/v1/pools`)
Side note: Behind the scenes Byzantine
is memorizing a proofed list of baseUrl
s to avoid increasing requests. That's Byzantine
will recycle its cache every hour only. If you want to get a "fresh", not cached baseUrl
, set the second parameter to true
.
// Testnet example:
const baseUrl = await byzantine(false, true)
// Mainnet example:
const baseUrl = await byzantine(true, true)
That might be helpful for error handling, see next chapter "Error handling".
In same cases a cached baseUrl
can be invalid if a node goes offline for any reason. In this case you can force Byzantine
to return a non-cached baseUrl
to retry this request, but using another baseUrl
.
// Get cached `baseUrl` as usual
// Testnet example:
const baseUrl = await byzantine(false)
// Catch errors to retry another request using a "fresh" proofed `baseUrl`
try {
const data = await fetch(`${baseUrl}/v1/pools`)
...
} catch (error) {
retry()
}
const retry = () => {
// Get another, "fresh" proofed `baseUrl`
const anotherBaseUrl = await byzantine(false, true)
const data = await fetch(`${baseUrl}/v1/pools`)
}
Please note: Use a non-cached baseUrl
as few as possible to avoid to increase requests made by Byzantine
.
yarn build
yarn test
FAQs
THORChain Byzantine Module is an anti-phishing module needed by ASGARDEX clients.
The npm package @thorchain/byzantine-module receives a total of 0 weekly downloads. As such, @thorchain/byzantine-module popularity was classified as not popular.
We found that @thorchain/byzantine-module demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 5 open source maintainers collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.
Security News
AGENTS.md is a fast-growing open format giving AI coding agents a shared, predictable way to understand project setup, style, and workflows.