Ich versuche, eine wirklich einfache und einfache Metamask-Zahlung in Reactjs zu implementieren. Folgendes habe ich getan, handleClick wird durch eine Schaltfläche ausgelöst:
handleClick = () => {
let web3 = new Web3();
window.web3 = new Web3(web3.currentProvider);
web3.eth.sendTransaction({
to: '0xE08aa75AAE695c4622Cd430FbeBF4B97689d4Ee3',
from: '0xf59F88E6eA4A937e228E4aaf378e96EDfb646B14',
value: web3.utils.toWei('1', 'ether'),
})
};
Ich habe keine Prüfung eingefügt, ob Metamask vorhanden ist, weil ich die einfachste Möglichkeit ausprobieren möchte, um web3js und Reactjs besser zu verstehen. Ich erhalte keinen Fehler, aber es passiert nichts
Ich denke, das Problem besteht darin, dass Sie die injizierte web3-Instanz überschreiben.
Die Variable web3 sollte von MetaMask injiziert werden, also überschreiben Sie sie mit Ihrer zweiten Codezeile, stattdessen sollten Sie eine neue Variable erstellen und den Anbieter mit injiziertem web3 festlegen.
Versuche dies:
handleClick = () => {
let web3js = new Web3(window.web3.currentProvider);
web3js.eth.sendTransaction({
to: '0xE08aa75AAE695c4622Cd430FbeBF4B97689d4Ee3',
from: '0xf59F88E6eA4A937e228E4aaf378e96EDfb646B14',
value: web3js.utils.toWei('1', 'ether'),
})
};
Gringo
let web3 = new Web3();
erhalte ich einen „web3“ ist nicht definierter Fehler. (web3js importiert mitimport Web3 from 'web3';
Kai Kälberer
let web3js = new Web3(window.web3.currentProvider)
Gringo
let web3 = new Web3(); let web3js = new Web3(window.web3.currentProvider) web3js.eth.sendTransaction({ to: '0xE08aa75AAE695c4622Cd430FbeBF4B97689d4Ee3', from: '0xf59F88E6eA4A937e228E4aaf378e96EDfb646B14', value: web3.utils.toWei('1', 'ether'),
Kai Kälberer
let web3
:) - Code sollte genau wie in meiner Antwort funktionieren (hoffentlich :))Gringo
let web3 = new Web3();
gibt es mir 'web3' ist sowieso kein definierter FehlerKai Kälberer
value: web3.utils.toWei('1', 'ether'),
überprüfen Sie einfach die aktualisierte AntwortGringo