首页 > 解决方案 > 在没有 API_KEY 的情况下将合同部署到 infura?

问题描述

我目前正在使用这个 GitHub 存储库进行测试: https ://github.com/oed/bonding-curves

truffle.js如下所示:

const HDWalletProvider = require("truffle-hdwallet-provider");
const TestRPC = require("ganache-cli");

let provider

function getNmemonic() {
  try{
    return require('fs').readFileSync("./seed", "utf8").trim();
  } catch(err){
    return "";
  }
}

function getProvider(rpcUrl) {
  if (!provider) {
    provider = new HDWalletProvider(getNmemonic(), rpcUrl)
  }
  return provider
}


module.exports = {
  networks: {
    development: {
      get provider() {
        if (!provider) {
          provider = TestRPC.provider({total_accounts: 25})
        }
        return provider
      },
      network_id: "*"
    },
    local: {
      host: "localhost",
      port: 8545,
      network_id: "*" // Match any network id
    },
    ropsten: {
      get provider() {
        return getProvider("https://ropsten.infura.io/")
      },
      gas: 4004580,
      network_id: 3
    },
    rinkeby: {
      get provider() {
        return getProvider("https://rinkeby.infura.io/")
      },
      network_id: 4
    },
    infuranet: {
      get provider() {
        return getProvider("https://infuranet.infura.io/")
      },
      network_id: "*"
    },
    kovan: {
      get provider() {
        return getProvider("https://kovan.infura.io/")
      },
      gas: 4004580,
      network_id: 42
    },
    mainnet: {
      get provider() {
        return getProvider("https://mainnet.infura.io/")
      },
      gas: 1704580,
      gasPrice: 1000000000,
      network_id: 1
    }
  }
};

但似乎我可以在没有任何 infura 的 API_KEY 的情况下部署合同,但我不知道为什么。

通常我用我过去的经验做了什么,我想我需要API_KEY在 infura 网址之后添加,例如:

https://ropsten.infura.io/API_KEY

但是添加部署脚本和npm run deploy-ropsten命令后,看起来迁移成功了。

谁能帮我为什么?

标签: ethereumtruffle

解决方案


您必须询问 Infura 以获得明确的答案,但据我所知,API 密钥在很长一段时间内都是可选的。(使用 API 密钥可能会帮助您避免速率限制。)


推荐阅读