如何使用本地主机测试 Dai

Posted

技术标签:

【中文标题】如何使用本地主机测试 Dai【英文标题】:How can I mint test Dai using local host 【发布时间】:2020-07-28 22:29:27 【问题描述】:

虽然我使用 Compound 的交换界面成功地铸造了测试 Dai,但在使用 Ganache 和我的本地机器时遇到了一些问题。尝试铸币时,我有以下脚本(也发布自教程 here,关于铸币测试 dai)

const Web3 = require("web3");
const web3 = new Web3("http://127.0.0.1:8545");

const daiAbi = []; // left out for brevity, can be found at https://changelog.makerdao.com/ 

// Address of DAI contract
const daiMainNetAddress = "0x6B175474E89094C44Da98b954EedeAC495271d0F";

// Address of Join
const daiMcdJoin = "0x9759A6Ac90977b93B58547b4A71c78317f391A28";

let daiContract;
let accounts;

web3.eth
  .getAccounts()
  .then((ganacheAccounts) => 
    accounts = ganacheAccounts;
    daiContract = new web3.eth.Contract(daiAbi, daiMainNetAddress);

    // 500 DAI
    const numbDaiToMint = web3.utils.toWei("500", "ether");

    return daiContract.methods.mint(accounts[0], numbDaiToMint).send(
      from: daiMcdJoin,
      gasPrice: web3.utils.toHex(0),
    );
  )
  .then(() => 
    console.log("DAI mint success");
    return daiContract.methods.balanceOf(accounts[0]).call();
  )
  .then((balanceOf) => 
    console.log("balanceOf:", balanceOf);
    const dai = web3.utils.fromWei(balanceOf, "ether");
    console.log("DAI amount in first Ganache account wallet:", dai);
  )
  .catch((err) => 
    console.error(err);
  );

但是,每次运行时,我都会得到“DAI 铸币成功”但“返回的值无效,它是不是用完了 Gas?”我需要明确设置 Gas 吗?

【问题讨论】:

【参考方案1】:

你的 ganache 连接到主网了吗?

如果不是,您需要通过设置 truffle.config 将其连接到主网。如果你想在本地测试网上试用它,你需要在本地测试网上部署 dai 合约,或者你可以使用这个方便的技巧https://medium.com/@samajammin/how-to-interact-with-ethereums-mainnet-in-a-development-environment-with-ganache-3d8649df0876克隆主网的当前状态

【讨论】:

以上是关于如何使用本地主机测试 Dai的主要内容,如果未能解决你的问题,请参考以下文章

如果连接是本地主机,如何使用 javascript 检查?

如何正确地从本地主机发送电子邮件 [关闭]

如何断开与本地主机的连接?

如何在 localhost 上测试打开的图形

如何在不同的主机上运行测试容器

如何确定连接错误是由于测试还是主机造成的