获取PancakeSwap Price

这篇博客介绍了如何利用ethers.js库,通过连接Binance Smart Chain (BSC)的节点,调用PancakeSwap的智能合约来获取特定代币之间的汇率。示例代码展示了从BUSD到UAK的转换过程。
摘要由CSDN通过智能技术生成

导入

ethers.js 接口文档 — ethers.js 中文文档 — 深入浅出区块链

<script>
		const tokens = {
			BUSD: '0xe9e7cea3dedca5984780bafc599bd69add087d56',
			UAK: '0x00e1656e45f18ec6747f5a8496fd39b50b38396d',
		};
		async function getPrice(inputCurrency, outputCurrency){
			const provider = new ethers.providers.JsonRpcProvider('https://bsc-dataseed.binance.org/');			
			const contract = {
			    factory: '0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73', // PancakeSwap V2 factory
			    router: '0x10ED43C718714eb63d5aA57B78B54704E256024E', // PancakeSwap V2 router
			};
			
			
			const router = new ethers.Contract(
			    contract.router,
			    [{ "inputs": [{ "internalType": "uint256", "name": "amountIn", "type": "uint256" }, { "internalType": "address[]", "name": "path", "type": "address[]" }], "name": "getAmountsOut", "outputs": [{ "internalType": "uint256[]", "name": "amounts", "type": "uint256[]" }], "stateMutability": "view", "type": "function" }],
			    provider
			);
			
			const amounts = await router.getAmountsOut(ethers.utils.parseUnits('1', 18), [inputCurrency, outputCurrency]);
			return amounts[1].toString()/1e18;
		}
	
		
await getPrice(tokens.AFC, tokens.BUSD).then(price => {
		            console.log(price);
});	
	</script>

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值