
Research
/Security News
Weaponizing Discord for Command and Control Across npm, PyPI, and RubyGems.org
Socket researchers uncover how threat actors weaponize Discord across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.
@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.
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.
Research
/Security News
Socket researchers uncover how threat actors weaponize Discord across the npm, PyPI, and RubyGems ecosystems to exfiltrate sensitive data.
Security News
Socket now integrates with Bun 1.3’s Security Scanner API to block risky packages at install time and enforce your organization’s policies in local dev and CI.
Research
The Socket Threat Research Team is tracking weekly intrusions into the npm registry that follow a repeatable adversarial playbook used by North Korean state-sponsored actors.