使用 Truffle 将仪表板指定为网络选项时获取 Metamask 当前网络名称
Get Metamask current network name when dashboard is specified as a network option using Truffle
我正在使用Truffle开发DAPP。请问是否可以在部署过程中以dashboard
作为指定网络动态获取网络名称。我的意思是我有一个 deploy-config.js
文件,其中包含针对不同网络的不同配置。我还有一个 2_deploy_MyContract.js
迁移文件。 MyContract
期望构造函数中的结构作为参数。
const MyContract = artifacts.require('MyContract');
const getConfig = require('../deploy-config');
module.exports = async function (deployer) {
const config = getConfig(currently_selected_network); <-- The Problem
await deployer.deploy(
MyContract,
{
...config.data
}
);
};
当我 运行 truffle migrate --reset --network dashboard
我可以随时使用元掩码更改所选网络。我想以某种方式获取它部署到的网络名称并将其作为 currently_selected_network
传递,以便我的 js 函数可以提供正确的配置值。我想我可以尝试通过更新 truffle-config.js
文件来指定网络名称,然后仅部署到那些预定义的网络,但是使用 dashboard
允许我不将助记符保留在回购协议中并通过 Metamask 扩展签署每笔交易.
如果您有任何其他关于如何实现此目标的想法,我将非常乐意听取您的意见!
这就是 deploy-config.js
的样子
const config = {
network1: {
paramA: "A"
paramB: "B"
},
network2: {
paramA: "C"
paramB: "D"
}
}
function getConfig(networkName) {
switch(networkName) {
case "network1":
return config.network1;
case "network2":
return config.network2;
default:
return null;
}
module.exports = getConfig
在您的迁移脚本中添加 network
到您的匿名函数
我相信顺序和 arg 位置很重要。
例如
module.exports = async (deployer, network, accounts) => {
console.log(network);
console.log(accounts);// also useful to have this at hand
}
我正在使用Truffle开发DAPP。请问是否可以在部署过程中以dashboard
作为指定网络动态获取网络名称。我的意思是我有一个 deploy-config.js
文件,其中包含针对不同网络的不同配置。我还有一个 2_deploy_MyContract.js
迁移文件。 MyContract
期望构造函数中的结构作为参数。
const MyContract = artifacts.require('MyContract');
const getConfig = require('../deploy-config');
module.exports = async function (deployer) {
const config = getConfig(currently_selected_network); <-- The Problem
await deployer.deploy(
MyContract,
{
...config.data
}
);
};
当我 运行 truffle migrate --reset --network dashboard
我可以随时使用元掩码更改所选网络。我想以某种方式获取它部署到的网络名称并将其作为 currently_selected_network
传递,以便我的 js 函数可以提供正确的配置值。我想我可以尝试通过更新 truffle-config.js
文件来指定网络名称,然后仅部署到那些预定义的网络,但是使用 dashboard
允许我不将助记符保留在回购协议中并通过 Metamask 扩展签署每笔交易.
如果您有任何其他关于如何实现此目标的想法,我将非常乐意听取您的意见!
这就是 deploy-config.js
的样子
const config = {
network1: {
paramA: "A"
paramB: "B"
},
network2: {
paramA: "C"
paramB: "D"
}
}
function getConfig(networkName) {
switch(networkName) {
case "network1":
return config.network1;
case "network2":
return config.network2;
default:
return null;
}
module.exports = getConfig
在您的迁移脚本中添加 network
到您的匿名函数
我相信顺序和 arg 位置很重要。
例如
module.exports = async (deployer, network, accounts) => {
console.log(network);
console.log(accounts);// also useful to have this at hand
}