无头浏览器puppeteer自动调用Dapp交易

自动化调用dapp的方法一种是直接调用合约的方法进行交易,另一种是用无头浏览器通过操作dapp页面进行自动化交易。用到了puppeteer和@chainsafe/dappeteer两个库;
puppeteer:无头浏览器
@chainsafe/dappeteer: 是封装好的在无头浏览器操作MataMask插件的库

以下是示例代码

const puppeteer = require('puppeteer');
const dappeteer = require('@chainsafe/dappeteer');


async function main() {
 // 引入MetaMask
  const browser = await dappeteer.launch(puppeteer, { metamaskVersion: 'v10.8.1' , headless: false});
  const metamask = await dappeteer.setupMetamask(browser);

  // 通过私钥导入账户
  await metamask.importPK('账户私钥')
  // 给MetaMask添加网络
  await metamask.addNetwork({
    networkName: "BSC-Test",
    rpc: "https://data-seed-prebsc-1-s1.binance.org:8545/",
    chainId: 97,
    symbol: "BNB",
    explorer: "https://testnet.bscscan.com/"
  });
  const page = await browser.newPage()
  // 打开dapp的页面
  let info = await page.goto('http://127.0.0.1:5502/dist/index.html')
  // 授权地址操作权限
  await metamask.approve()
  await page.bringToFront()
 let btn = await page.$('#addWhitelistBox .btn');
 await page.$eval('#addWhitelist_account', el => el.value = '0x90a780054f372eEC70dEf3f1C96c1bbcd3a21336');
 await btn.click()
 await metamask.confirmTransaction()
 await browser.close()
}
main();
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

合约开发前行者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值