Ich habe ein MultiSigWallet von ConsenSys bereitgestellt . Wie kann ich Funktionen mit dem OnlyWallet-Modifikator aufrufen?
modifier onlyWallet() {
if (msg.sender != address(this))
revert();
_;
}
Muss die address
Variable eine Kontoadresse sein oder darf es eine Vertragsadresse sein?
var data = multisig.replaceOwner.call(web3.eth.accounts[1], web3.eth.accounts[2], {from: address}, function(err, res) { console.log(res.toString())});
Der onlyWallet
Modifikator bedeutet, dass eine Transaktion zuerst mit mehreren Unterschriften bestätigt werden muss. Dazu müssen Sie:
1. Transaktion einreichen und erhaltentransactionId
function submitTransaction(address destination, uint value, bytes data)
2. Bestätigen Sie es mit der erforderlichen Anzahl von Bestätigungen von Eigentümerkonten:
function confirmTransaction(uint transactionId)
3.Transaktion ausführen:
function executeTransaction(uint transactionId)
onlyWallet-Transaktion dient nicht der Bestätigung, sondern prüft, ob der Anrufer selbst Vertrag hat.
modifier onlyWallet() {
require(msg.sender == address(this));
_;
}
Adresse(dies) ist Vertragsadresse.
Oh, ich habe gerade festgestellt, dass Transaktionen den Code als "Byte-Daten" -Parameter senden und somit die Funktionen eines beliebigen Vertrags aufrufen können. :)
addTransaction(address destination, uint value, bytes data)
Russo