web3中,获取指定contract的pool地址

有时候我们需要知道某个contract的池子地址,我们可以去链上浏览器查看,也可以通过web3查看,以下我bsc的contract举例,以json-rpc和web3.js两种形式来获取。

实现思路是通过abi定义,指向一个绝大多数bsc的contract都存在的函数名,来获取池子地址。

web3.js实现 纯js代码

下面是web3.js中,纯.js脚本实现的代码:

const routeraddress    = '0xcA143Ce32Fe78f1f7019d7d551a6402fC5350c73' // PANCAKESWAP ROUTER 固定值。
const Web3             = require('web3');//当在纯.js文件脚本中应用时,该行不可省略。
const web3             = new Web3("https://bsc-dataseed1.binance.org:443");
const bnbAddress       = '0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c' // contract for WBNB地址,固定值。
const buyAddress       = '0x041640ea980e3fe61e9c4ca26d9007bc70094c15'; // 某个bsc的contract地址

// 定义abi
const liqABI = [{
   "inputs":[{
   "internalType":"address","name":"_feeToSetter","type":"address"}],"payable":false,"stateMutability":"nonpayable","type":"constructor"},{
   "anonymous":false,"inputs":[{
   "indexed":true,"internalType":"address","name":"token0","type":"address"},{
   "indexed":true,"internalType":"address","name":"token1","type":"address"},{
   "indexed":false,"internalType":"address","name":"pair","type":"address"},{
   "indexed":false,"internalType":"uint256","name":"","type":"uint256"}],"name":"PairCreated","type":"event"},{
   "constant":true,"inputs":[],"name":"INIT_CODE_PAIR_HASH","outputs":[{
   "internalType":"bytes32","name":"","type":"bytes32"}],"payable":false,"stateMutability":"view","type":"function"},{
   "constant":true,"inputs":[{
   "internalType":"uint256","name":"","type":"uint256"}],"name":"allPairs","outputs":[{
   "internalType":"address","name":"","type":"address"}],"payable":false,"stateMutability":"view","type":"function"},{
   "constant":true,"inputs":[],"name":"allPairsLength","outputs":[{
   "internalType":"uint256","name":"","type":"uint256"}],"payable":false
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值