【web3】geth使用笔记(二)——智能合约DEV环境搭建

启动ETH DEV模式

geth --dev --http --http.api eth,web3,personal,net --http.corsdomain "https://remix.ethereum.org"

可以使用clef账户管理工具启动,参考geth使用(一)

编写智能合约环境搭建

  • 工具说明
  • 项目搭建
    • 新建项目文件夹,并在文件夹下依次运行以下命令

      npm init -y
      npm install --save-dev hardhat
      npx hardhat
      
    • 在文件夹下运行remixd命令,搭建remix连接本地文件夹通道

      remixd
      

      remixd之前,先对项目进行一次编译 npx hardhat compile,否则IDE连接完后,remxid终端会关闭

      在这里插入图片描述

      65520是remix连接本地文件夹端口
      65522是hardhat端口(后期说明作用)
      65523是slither端口(后期说明作用)

    • remix IDE连接本地 在这里插入图片描述
      在这里插入图片描述

  • 连接本地ETH节点
    在这里插入图片描述
    在这里插入图片描述

至此,一个本地搭建的ETH环境,和本地的智能合约编辑环境便结合在一起了,由于web3日新月异,ETH不断升级优化,各个工具持续迭代,本文档只适用于当前版本的配置。建议大家还是看官方文档学习。有需要也可以留言,看到一定回复,一起学习web3🤞

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
要获取 UniswapV2 合约中的 Token0,您需要使用 Web3.py 库连接到以太坊网络,并通过合约地址创建一个合约实例。然后,您可以使用合约实例的相应方法来获取所需的信息。 以下是一个示例代码,演示如何使用 Web3.py 库获取 UniswapV2 合约中的 Token0: ```python from web3 import Web3 from web3.middleware import geth_poa_middleware from web3.contract import ConciseContract # 连接以太坊网络 w3 = Web3(Web3.HTTPProvider('https://mainnet.infura.io/v3/your_infura_project_id')) w3.middleware_onion.inject(geth_poa_middleware, layer=0) # UniswapV2 合约地址 uniswapv2_address = '0x7a250d5630b4cf539739df2c5dacb4c659f2488d' # UniswapV2 合约 ABI uniswapv2_abi = [ { "inputs": [ { "internalType": "address", "name": "", "type": "address" }, { "internalType": "address", "name": "", "type": "address" } ], "name": "getPair", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" }, { "inputs": [ { "internalType": "address", "name": "", "type": "address" } ], "name": "token0", "outputs": [ { "internalType": "address", "name": "", "type": "address" } ], "stateMutability": "view", "type": "function" } ] # 创建 UniswapV2 合约实例 uniswapv2_contract = w3.eth.contract(address=uniswapv2_address, abi=uniswapv2_abi) # 获取指定交易对的合约地址 pair_address = uniswapv2_contract.functions.getPair(tokenA_address, tokenB_address).call() # 创建交易对合约实例 pair_contract = w3.eth.contract(address=pair_address, abi=uniswapv2_abi) # 获取 Token0 地址 token0_address = pair_contract.functions.token0().call() print("Token0 address:", token0_address) ``` 请注意,上述代码中的 UniswapV2 合约 ABI 和地址仅适用于以太坊主网。如果您想在其他网络上使用 UniswapV2 合约,您需要相应地更改 ABI 和地址。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值