Как развернуть контракт с MetaMask и трюфельным контрактом? В настоящее время, если я хочу развернуть контракт с трюфельным контрактом, у меня будет следующий код.
var web3 = new Web3(new
Web3.providers.HttpProvider("http://localhost:8545"));
var provider = new Web3.providers.HttpProvider("http://localhost:8545");
var MyContract = contract(Contract);
MyContract.defaults({
from: '0x...',
gas: 4712388,
gasPrice: 1000000000
})
MyContract.setProvider(provider);
Однако, когда вы запускаете инициализацию с помощью MetaMask, что вы устанавливаете в качестве провайдера? Это окно.web3?
if (typeof window.web3 !== 'undefined') {
window.web3 = new Web3(window.web3.currentProvider);
} else {
console.log('No web3? You should consider trying MetaMask!')
window.web3 = new Web3(new Web3.providers.HttpProvider("http://localhost:8545"));
}
MyContract = contract(Contract);
MyContract.setProvider(window.web3);
const account = window.web3.eth.accounts;
MyContract.defaults({
from: account,
gas: 4712388,
gasPrice: 1000000000
})
Поставщик MetaMask должен быть window.web3.currentProvider
.
MyContract.setProvider(window.web3.currentProvider)