Web3js

使用 onlyWallet 修飾符呼叫 MultiSigWallet 中的函式

  • September 11, 2020

我已經從 ConsenSys 部署了一個MultiSigWallet。如何使用 onlyWallet 修飾符呼叫函式?

modifier onlyWallet() {
   if (msg.sender != address(this))
       revert();
   _;
}

address變數需要是賬戶地址還是合約地址?

var data = multisig.replaceOwner.call(web3.eth.accounts[1], web3.eth.accounts[2], {from: address}, function(err, res) { console.log(res.toString())});

onlyWallet修飾符意味著一筆交易需要首先通過多個簽名進行確認。為此,您需要:

1.送出交易並獲取transactionId

function submitTransaction(address destination, uint value, bytes data)

2.使用所有者帳戶的所需確認次數進行確認:

function confirmTransaction(uint transactionId)

3.執行交易:

function executeTransaction(uint transactionId)

onlyWallet 交易不是為了確認,它是在檢查呼叫者是否是合約本身。

modifier onlyWallet() {
   require(msg.sender == address(this));
   _;
}

address(this) 是合約地址。

引用自:https://ethereum.stackexchange.com/questions/21431