UniswapV2交易DAPP开发-环境搭建及数据准备
上一篇我们对Uniswap进行了详细的介绍,并对Uniswap主要的智能合约,合约提供的ABI进行了说明,特别是该开源DAPP用到的ABI接口及要实现的功能都做了详细说明。本篇将介绍基本的开发环境、所用到第三方插件,及ABI、链的节点基本信息配置和Dex基本信息等的数据准备。并搭建了基本的开发环境。
# 跨平台开发
本DAPP利用C#跨平台的特性,同时支持Mac端和Windows端,核心代码可以跨平台通用。本环境搭建以Windows介绍为主。Mac版源代码也会开源到GitHub上。
本DAPP开发时和链交互使用了Nethereum开源库,Nethereum是.Net下和智能合约交互、管理等开源的库,支持跨平台开发,兼容Windows,Linux,MacOS,Android和OSX等多个系统。
# Nethereum核心类库
Nethereum主要类库
本应用兼容EVM的所有链,以太坊、BSC智能、火币(heco)、OK、马蹄、CoreChain、arbi、夸克等。
为了测试功能,这里用BSC测试链进行测试:
RPCURL:https://data-seed-prebsc-1-s2.binance.org:8545/ (opens new window)
NetworkID:97
Router地址:0xD99D1c33F9fC3444f8101754aBC46c52416550D1
Factory地址:0x6725F303b657a9451d8BA641348b6761A6CC7a17
IDE创建工程
# ABI准备
ABI(Application Binary Interface)应用程序二进制接口定义了用于与二进制合约交互的方法和结构。DAPP要和智能合约交互需要遵循ABI的约定进行定义函数、参数、类型等。
我们这里需要和Uniswap的路由合约、工厂合约、LP池子合约等三个智能合约交互,所以需要把智能合约的ABI加载到程序当中,以生成具体的调用函数。
智能合约的ABI以文件方式保存在工程中,程序启动时通过File读写加载进来。
ABI文件存储
# 获取ABI的方法
remix中
最常见的方法之一是在智能合约编译完成后,在REMIX IDE编译选项卡下的 ABI 按钮复制ABI。
Remix获取ABI
区块链浏览器中
合约部署完成并开源后,通过区块链浏览器获取智能合约的ABI,在Code选项卡中拷贝ABI
区块链浏览器中获取ABI
有的链提供获得智能合约ABI的API接口,前提是该合约以及开源。
如BSC链的API接口: https://api.bscscan.com/api?module=contract&action=getabi (opens new window) &address=0x0e09fabb73bd3ade0a17ecc321fd13a19e81ce82&apikey=YourApiKeyToken
# C#环境搭建
这里用的是微软的Visual Studio2022 IDE进行开发,使用WPF作为Windows 用户开发框架。选择C#WPF应用程序,点击下一步,除了工程路径、项目名称其它都是默认配置。如下图:
IDE创建工程
在NuGet中添加Nethereum开发包,在搜索框中输入Nethereum进行搜索,选择Nethereum.Web3进行安装,版本选择最新的版本。如下图:
IDE创建工程