Aufrufen von Funktionen in MultiSigWallet mit dem Modifikator onlyWallet

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 addressVariable 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())});

Antworten (3)

Der onlyWalletModifikator 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)
Ich habe die Antwort gefunden. Siehe unten

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)