Quick Start
Get up and running with Router Aggregator Core in minutes.
Basic Import
Start by importing the types and utilities you need:
import {
BridgeNodes,
ExchangeNodes,
NodeCategory,
isBridgeNode,
isExchangeNode,
getBridgeNodes,
getExchangeNodes,
NodeUtils
} from '@routerprotocol/xplore-core'Working with Node Types
Bridge Nodes
// Access specific bridge nodes
const relay = BridgeNodes.RELAY
const debridge = BridgeNodes.DEBRIDGE
const across = BridgeNodes.ACROSS
// Get all bridge nodes
const allBridges = getBridgeNodes()
console.log(allBridges) // ["relay", "debridge", "across", ...]
// Check if a node is a bridge
console.log(isBridgeNode(relay)) // trueExchange Nodes
// Access exchange nodes
const openocean = ExchangeNodes.OPENOCEAN
// Get all exchange nodes
const allExchanges = getExchangeNodes()
console.log(allExchanges) // ["openocean"]
// Check if a node is an exchange
console.log(isExchangeNode(openocean)) // trueNode Categorization
import { getNodeCategory, NODE_CATEGORIES } from '@routerprotocol/xplore-core'
// Get category of any node
console.log(getNodeCategory(BridgeNodes.RELAY)) // NodeCategory.BRIDGE
console.log(getNodeCategory(ExchangeNodes.OPENOCEAN)) // NodeCategory.EXCHANGE
// Direct category lookup
console.log(NODE_CATEGORIES[BridgeNodes.THORCHAIN]) // "bridge"Display Names
import { NodeDisplayNames, getNodeDisplayName } from '@routerprotocol/xplore-core'
// Get human-readable names
console.log(getNodeDisplayName(BridgeNodes.RELAY)) // "Relay"
console.log(getNodeDisplayName(ExchangeNodes.OPENOCEAN)) // "OpenOcean"
// Direct lookup
console.log(NodeDisplayNames[BridgeNodes.STARGATE_TAXI]) // "Stargate Taxi"Utility Functions
// Using the NodeUtils object
const displayName = NodeUtils.getDisplayName(BridgeNodes.RELAY)
const isValid = NodeUtils.isValidNode("relay")
const category = NodeUtils.getCategory(BridgeNodes.RELAY)
// Get filtered lists
const bridges = NodeUtils.getBridges()
const exchanges = NodeUtils.getExchanges()
const allNodes = NodeUtils.getAllNodes()Chain Compatibility
import { CHAIN_NODE_COMPATIBILITY } from '@routerprotocol/xplore-core'
// Get compatible nodes for specific chains
const solanaNodes = CHAIN_NODE_COMPATIBILITY.sol
console.log(solanaNodes) // [BridgeNodes.RELAY, BridgeNodes.DEBRIDGE, BridgeNodes.ACROSS]
const bitcoinNodes = CHAIN_NODE_COMPATIBILITY.btc
console.log(bitcoinNodes) // [BridgeNodes.THORCHAIN, BridgeNodes.RELAY]
// Default compatibility (EVM chains)
const defaultNodes = CHAIN_NODE_COMPATIBILITY.defaultType Safety
Take advantage of TypeScript's type system:
// Type guards provide type narrowing
function processNode(node: AvailableNodes) {
if (isBridgeNode(node)) {
// node is now typed as BridgeNodes
console.log(`Processing bridge: ${node}`)
} else if (isExchangeNode(node)) {
// node is now typed as ExchangeNodes
console.log(`Processing exchange: ${node}`)
}
}
// Union types allow flexible parameters
type NodeUnion = BridgeNodes | ExchangeNodes
function handleAnyNode(node: NodeUnion) {
return getNodeDisplayName(node)
}Next Steps
- Learn more about Node Types
- Explore Bridges vs Exchanges
- Check out the complete API Reference