Wie stelle ich sicher, dass die Funktion vom Besitzer des Kontos mit web3.js ausgeführt wird, dessen Instanz zum Aufrufen der Funktion verwendet wird, ich verwende Ganache und habe meine privaten Schlüssel für account .
Dazu müssen Sie den Absender der Transaktion in Ihrem Smart Contract verifizieren. Zum Beispiel:
function someFunction () {
// if who sends transaction is different to 0xbb2048f1...
// rejects transaction and refunds ETH sended.
require(msg.sender != 0xbb2048f1be4c6e794b20502437d09552b4bc07f0);
// if msg.sender == 0xbb2048f1... enter here
}
Sie können dies mit Solidity-Modifikatoren tun
modifier onlyOwner {
require(msg.sender == 0xbb2048f1be4c6e794b20502437d09552b4bc07f0);
_;
}
Jetzt können Sie also überprüfen, wer Transaktionen mit onlyOwner
dem Modifikator sendet
function doSomething() onlyOwner {
// Only if sender is equals to 0xbb2048f1... enter here
// Else do a revert(); and refund eth sended
}
Rahul Sharma
Rob Hitchens
msg.sender
beweist, dass sie die Transaktion von diesem Konto signiert haben, daher haben sie den privaten Schlüssel für dieses Konto. Dies ist so nah wie möglich, um zu beweisen, dass sie das Konto besitzen.