Solidity 实现一个多签钱包

您所在的位置:网站首页 eth多签钱包 Solidity 实现一个多签钱包

Solidity 实现一个多签钱包

2023-10-11 21:17| 来源: 网络整理| 查看: 265

让我们尝试创建一个多重签名钱包:

多签钱包功能

提交交易

批准和撤销对待处理交易的批准

在足够多的所有者批准后,任何人都可以执行交易

// SPDX-License-Identifier: MIT pragma solidity ^0.8.13; contract MultiSigWallet { // 存钱 记录 event Deposit(address indexed sender, uint amount, uint balance); // 提交交易 记录 event SubmitTransaction( address indexed owner, uint indexed txIndex, address indexed to, uint value, bytes data ); // 确认交易 记录 event ConfirmTransaction(address indexed owner, uint indexed txIndex); // 驳回交易 记录 event RevokeConfirmation(address indexed owner, uint indexed txIndex); // 执行交易 记录 event ExecuteTransaction(address indexed owner, uint indexed txIndex); // 多签成员 address[] public owners; mapping(address => bool) public isOwner; // 交易多签通过 人数 uint public numConfirmationsRequired; // 交易数据 struct Transaction { address to; uint value; bytes data; bool executed; uint numConfirmations; } // mapping from tx index => owner => bool 每个多签者确认情况 mapping(uint => mapping(address => bool)) public isConfirmed; // 全部交易数据 Transaction[] public transactions; modifier onlyOwner() { require(isOwner[msg.sender], "not owner"); _; } // 交易存在 modifier txExists(uint _txIndex) { require(_txIndex 0, "owners required"); require( _numConfirmationsRequired > 0 && _numConfirmationsRequired


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3