Solidity

如何從 Solidity 智能合約中添加/刪除 gnosis-safe 錢包的所有者?

  • February 16, 2022

我正在搜尋文件和 youtube 指南,但找不到答案 - 我在 rinkeby 網路中有一個多重簽名錢包。如何從 Solidity 智能合約中添加/刪除所有者?

更多資訊:我有一個投票智能合約,它的權重為 balanseOf(voter)。因此,如果選民的權重超過某個值 - 他們可以將所有者添加到 MultiSigWallet。在那裡我需要以某種方式從 gnosis-safe 呼叫 add-owner 函式。

有一個函式 addOwnerWithThreshold(address owner, uint256 _threshold) 但我有點不明白 - 如果我只是將“https://github.com/gnosis/safe-contracts/blob/main/contracts/GnosisSafe.sol”導入到我的.sol 契約並從我的契約中呼叫 addOwnerWithThreshold - 它沒有部署

那麼我怎樣才能呼叫/使用這個添加所有者的東西呢?

addOwnerThreshold是受保護的功能。檢查authorized函式定義中的修飾符。它只能由保險箱本身呼叫。如果任何合約都可以簡單地呼叫這個函式,那隻不過是一個安全漏洞。

您可以做的是execTransaction使用所有必要的簽名和編碼的交易數據呼叫addOwnerThreshold.

或者

您可以創建一個模組合約,模組可用於擴展 Safe 功能,它們可以從 Safe 執行交易: https ://docs.gnosis-safe.io/contracts/modules-1 https://gist.github .com/rmeissner/c66371a4b030109cde1020f427122462

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