Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

lbc-team/cex-wallet

Repository files navigation

CEX 钱包系统

交易所钱包系统,提供安全的钱包管理和地址生成服务。

系统设计和实现思路,参考以下文章:

  1. 交易所钱包系统的整体架构设计
  2. 签名机与用户账户生成的方案
  3. 用户充值
  4. 用户提现
  5. 风控设计

主要模块

  • wallet: 主模块,提供钱包管理 API
  • signer: 签名机,负责地址生成和密钥管理
  • scan: 区块链扫描器,支持智能重组处理和存款检测, 每一个链有独立的扫描模块
    • evm_scan: 扫描 EVM 链
    • solana_scan: 扫描 Solana 链
  • risk_control: 风控模块
  • fund_rebalance: 资金调度模块

文档

快速开始

  1. 配置环境变量(参考各模块文档)
  2. 启动数据库: cd db_gateway && npm run dev (自动创建数据库表)
  3. 生成密钥对: curl -X POST http://localhost:3003/generate-keypair
  4. 配置环境变量: 将公钥配置到数据库网关,私钥配置到 wallet/Scan/risk_control模块
  5. 启动 risk_control 服务 (cd risk_control && npm run dev)
  6. 启动 signer 服务(配置 .env 的助记词, ./start_signer.sh 使用默认密码启动 )
  7. 启动 wallet 服务 (cd wallet && npm run dev)
  8. 模拟一些数据:
    1. 启动 以太坊 和 Solana 本地模拟网络: ./start_anvil.sh./start_solana_localnet
    2. 执行 wallet 模块下的 Token 部署脚本:npm run deploy:erc20:tokensnpm run deploy:solana:tokens
    3. 执行 wallet 模块下的 npm run mock:init 填充一些测试的 ETH 及 Solana 用户地址。(注意本地测试,先部署 token )
  9. 启动两个 scan 服务, 扫描存款入账
    1. EVM scan : cd scan/evm_scan && npm run dev
    2. Solana scan: cd scan/solana_scan && npm run dev
    3. 模拟 EVM 链转账 cd wallet && npm run mock:evm:transfer
    4. 模拟 Solana 链转账 cd wallet && npm run mock:solana:transfer
  10. 提款测试
    1. 模拟在 EVM 取款: cd wallet && npm run mock:withdraw:evm
    2. 审核取款: cd wallet && npm run mock:approveReview
    3. 模拟在 Solana 取款: cd wallet && npm run mock:withdraw:solana:sol

服务推荐启动顺序:db_gateway -> risk_control -> signer -> wallet -> scan

贡献指南

欢迎你和我们一起完善代码,方便更多的人实现托管系统:

  1. Fork 项目
  2. 创建功能分支
  3. 提交更改
  4. 创建 Pull Request

许可证

MIT License

About

Web3 中心化交易所托管钱包实现

Topics

Resources

Stars

Watchers

Forks

Packages

No packages published