Я использую web3.js 1.0.0-beta.36 для подключения к блокчейну.
Но, к сожалению, этот код не может подключиться к Metamask, если он был включен.
var metamask = false;
if (typeof web3 !== 'undefined') {
web3 = new Web3(web3.currentProvider);
metamask = true;
web3.eth.defaultAccount = web3.eth.accounts[0];
} else {
web3 = new Web3(new
Web3.providers.HttpProvider(infuraUrl));
var address = web3.eth.accounts.create().address;
}
myContract = new web3.eth.Contract(abi,contractAddress);
myContract.methods.Register((Name,Id).send({},function(error,result){
if (! error)
console.log(result);
else
console.log(error);
});
Когда мы запускаем эту программу с Metamsk, она отображает эту ошибку:
Error: Returned error: Error: MetaMask Tx Signature: User denied transaction signature.
, но когда я упоминаю фиксированный адрес, она работает:
myContract.methods.Register((Name,Id).send({from: '0x...'},function(error,result){
if (! error)
console.log(result);
else
console.log(error);
});
По некоторым причинам я не могу принестисам адрес в исходном коде, и я хочу, чтобы он получил адрес от Metamask.Что мне делать?