dex-provider
Version:
Fetch data like trading pair and liquidity from DEX
140 lines (130 loc) • 3.4 kB
JavaScript
const {Dex, UniswapV2Extension, EvmChain} = require('../dist/index.js')
async function main() {
const Ethereum = new EvmChain(
'Ethereum',
'https://mainnet.infura.io/v3/6d61e7957c1c489ea8141e947447405b',
{
id: '0xc02aaa39b223fe8d0a0e5c4f27ead9083c756cc2',
name: 'Wrapped Ether',
symbol: 'WETH',
decimals: 18,
},
{
id: '0xdac17f958d2ee523a2206206994597c13d831ec7',
name: 'Tether USD',
symbol: 'USDT',
decimals: 6,
}
)
const Moonbeam = new EvmChain(
'Moonbeam',
'https://rpc.api.moonbeam.network',
{
id: '0xacc15dc74880c9944775448304b263d191c6077f',
name: 'Wrapped GLMR',
symbol: 'WGLMR',
decimals: 18,
},
{
id: '0x818ec0a7fe18ff94269904fced6ae3dae6d6dc0b',
name: 'USD Coin',
symbol: 'USDC',
decimals: 6,
}
)
// Create Uniswrap instance
let uniSwap = new Dex(
'UniSwapV2',
Ethereum,
'0x5C69bEe701ef814a2B6a3EDD4B1652CB9cc5aA6f',
new UniswapV2Extension(
Ethereum,
'https://api.thegraph.com/subgraphs/name/uniswap/uniswap-v2'
)
)
await uniSwap.initialize()
console.log(
`Pairs on UniswapV2: ${JSON.stringify(uniSwap.getPairs(), null, 2)}`
)
let usdtPairs = uniSwap.getTokenPairs({
id: '0xdac17f958d2ee523a2206206994597c13d831ec7',
name: 'Tether USD',
symbol: 'USDT',
decimals: 6,
})
console.log(
`Pairs on UniswapV2 contain USDT: ${JSON.stringify(usdtPairs, null, 2)}`
)
// We know we got PHA trading pair in advance
let phaPairs = uniSwap.getTokenPairs({
id: '0x6c5ba91642f10282b576d91922ae6448c9d52f4e',
name: 'Phala',
symbol: 'PHA',
decimals: 18,
})
console.log(
`Capacity of first PHA-WETH pair: ${JSON.stringify(
phaPairs[0],
null,
2
)}, result is: ${uniSwap.getCapcities(phaPairs[0])}`
)
// Create StellaSwap instance
let stellaSwap = new Dex(
'StellaSwap',
Moonbeam,
'0x68A384D826D3678f78BB9FB1533c7E9577dACc0E',
new UniswapV2Extension(
Moonbeam,
'https://api.thegraph.com/subgraphs/name/stellaswap/stella-swap'
)
)
await stellaSwap.initialize()
// console.log(
// `Pairs on StellaSwap: ${JSON.stringify(stellaSwap.getPairs(), null, 2)}`
// )
console.log(
`Pairs on StellaSwap contain USDC: ${JSON.stringify(
stellaSwap.getTokenPairs({
id: '0x818ec0a7fe18ff94269904fced6ae3dae6d6dc0b',
name: 'USD Coin',
symbol: 'USDC',
decimals: 6,
}),
null,
2
)}`
)
// Create BeamSwap instance
let beamSwap = new Dex(
'BeamSwap',
Moonbeam,
'0x985bca32293a7a496300a48081947321177a86fd',
new UniswapV2Extension(
Moonbeam,
'https://api.thegraph.com/subgraphs/name/beamswap/beamswap-dex'
)
)
await beamSwap.initialize()
// console.log(
// `Pairs on BeamSwap: ${JSON.stringify(beamSwap.getPairs(), null, 2)}`
// )
console.log(
`Pairs on BeamSwap contain USDC: ${JSON.stringify(
beamSwap.getTokenPairs({
id: '0x818ec0a7fe18ff94269904fced6ae3dae6d6dc0b',
name: 'USD Coin',
symbol: 'USDC',
decimals: 6,
}),
null,
2
)}`
)
console.log(
`Dump to beam info to JSON: ${JSON.stringify(beamSwap.toJSON(), null, 2)}`
)
}
main()
.catch(console.error)
.finally(() => process.exit())