MultiSigLite 使用说明
- 连接钱包:页面加载时会自动请求连接钱包。若未自动连接,点击“加载合约”会触发连接。
- 加载合约:输入合约地址(0x...),点击“加载合约”,状态区将显示所有成员信息和投票状态。
- 投票与执行:选择函数并填写参数,点击“执行交易”即发起一次投票(同时记录签名)。
对于需要多签的操作,每个成员依次调用同一函数并传入相同参数,集齐 5 票后自动执行。
- 白名单查询:在状态区下方输入地址,可查询该地址是否被加入
targetWhitelist(只有白名单内的目标才能被 multiCall 调用)。
- 重置功能:
resetSetDEVote 和 resetCallVote 可清空对应的投票状态(仅限有权限的成员)。
- 成员更新:需 ABC 三人投票,冷却 10000 天后生效,且会清空外部调用投票。
- 提币函数(
withdrawEth / withdrawErc20):⚠️ 存在资金风险,任意成员可单方面提款,请谨慎使用!
🔹 multiCall(address, uint256, bytes) 详细说明
这是最核心的函数,用于 调用任意外部合约(前提是目标地址已加入白名单)。
- 参数1 (address target):要调用的外部合约地址。
- 参数2 (uint256 value):要随调用发送的 ETH 数量(单位:wei)。如果只是调用函数,不转账,填 0。
- 参数3 (bytes data):编码后的函数调用数据。可通过页面上的“生成 data”工具自动生成,也可手动输入十六进制。
注意事项:所有 5 个签名人必须传入 完全相同 的三个参数,否则投票失败。集齐 5 票后,合约会自动执行该调用。
📌 关于“生成 data”工具的使用
- 函数签名:必须包含括号和参数类型,例如
transfer(address,uint256)。
- 参数:只需填写具体值,不需要括号,多个参数用英文逗号分隔,例如
0x123...,1000000。
- 点击“生成 data”后,编码结果会自动填入上方的
data (bytes) 输入框。
📌 示例 1:调用 USDC 合约的 transfer 方法
目标合约 (USDC 地址):0xA0b86991c6218b36c1d19D4a2e9Eb0cE3606eB48 (以太坊主网)
函数签名:transfer(address,uint256)
参数:接收地址, 数量(需带小数位数,如 USDC 为 6 位,100 USDC = 100000000)
value:0(不转 ETH)
操作:在 DApp 中选择 multiCall,在 target 填入 USDC 地址,value 填 0,使用“生成 data”工具填入合约地址、签名 transfer(address,uint256) 和参数,生成 data 后自动填入,然后执行。
📌 示例 2:修改某个合约的管理员(假设有 changeAdmin(address) 函数)
目标合约地址:0x1234567890123456789012345678901234567890
函数签名:changeAdmin(address)
参数:新管理员地址
value:0
同样使用“生成 data”工具编码后执行。
更多细节请参阅合约源代码或咨询开发者。