在没有API_KEY的情况下将合同部署到Infura?

时间:2018-08-31 16:56:13

标签: ethereum truffle

我目前正在使用此GitHub存储库进行测试: Understanding Google Cloud Storage Features

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的情况下部署合同,但我不知道为什么。

通常,根据过去的经验,我认为我需要在诸如以下的url网址后添加API_KEY

https://ropsten.infura.io/API_KEY

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

有人可以帮助我吗?

1 个答案:

答案 0 :(得分:4)

您必须要求Infura给出确定的答案,但是据我所知,API密钥在相当长的一段时间内都是可选的。 (使用API​​密钥可能有助于避免速率限制。)