/web3_script_tutorial

Web3脚本交互(撸毛)极简入门指南

Primary LanguagePython

web3_script_tutorial

Web3脚本交互(撸毛)极简入门指南

  • 目标:通过4个小例子循序渐进学习并使用 Web3.py 模块实现链上数据查询、转账、合约交互等简单功能。
  • 合约交互四部曲:
  1. 确定合约地址
  2. 找到合约ABI
  3. 研究函数名及参数具体含义
  4. 写交互代码,广播交易信息

00: 前期准备工作

  1. 安装 Python3
  2. 安装 web3.py 库 pip install web3
  3. 申请 Infura API Key: https://infura.io/
  4. 申请测试币 https://faucets.chain.link/ ❕注意:保管好示例代码中的私钥,注意风险。

01: 读取链上信息

02: Goerli 测试网转账 ETH

  • 目标:接入 Goerli 测试网并完成一笔转账交易

  • 代码: https://github.com/JetCyC/web3_script_tutorial/blob/main/2-transferETH.py

  • 转账是所有链上交互的灵魂,是一种改变区块链状态的行为。相比较前面的“查询地址余额”,属于“写入”的操作类型。转账、合约交互等操作,都需要用地址对应的私钥签名交易并广播。

03: Arbitrum 测试网跨链桥交互

04: zkSync 测试网跨链桥交互

  • 目标: 完成 zkSync 测试网的跨链桥存入 ETH 交互

  • 代码: https://github.com/JetCyC/web3_script_tutorial/blob/main/4-zkSyncBridge.py

  • 相比较于 Arbitrum,zkSync 的难度稍微高了一点。因为后者使用了一个可升级合约,导致无法在 Etherscan 网站找到确切的 ABI 信息。不过,通过前一条 🧵 中的方法,最终在网站 chunk-vendor-xxx.js 文件中定位到了完整的 ABI 信息。

05: 批量生成钱包地址并调用撸毛业务逻辑

  • 目标:批量生成钱包地址(一套助记词对应多地址),使用每个钱包地址与合约交互

  • 代码: https://github.com/JetCyC/web3_script_tutorial/blob/main/5-accounts.py

  • 我们使用一套助记词对应多个钱包地址的方式批量生成撸毛钱包,使用时千万要备份好这套助记词,之后批量调用合约方法。

进阶 (更新ing...)

  • 交互大师 测试网简单合约 ➜ 测试网复杂合约 ➜ 主网合约 ➜ 多账号单合约 ➜ 多账号多合约 ➜ 多账号切断关联 ➜ 多账号多合约模拟真实用户行为轨迹 ➜ ( Ξ ) ➜ 躺平

  • 套利大师 MEV套利 ➜ ( Ξ Ξ Ξ ) ➜ 躺平