Skip to content

GrandLine 是一个用于与 BSC 链上的 PancakeSwap Dapp 进行简单交互的工具。

License

Notifications You must be signed in to change notification settings

quicklearnpro/GrandLine

Repository files navigation

GrandLine

data

GrandLine 是一个用于与 BSC 链上的 PancakeSwap Dapp 进行简单交互的工具。

Lisence Release Python Version Poseidon Visitors

实际背景

众所周知,交易对于时效性的要求很高,机会转瞬即逝,在区块链金融市场更是如此,有时仅仅比其他人慢了几秒也会造成很大的损失,而通过浏览器访问PancakeSwap UI进行交易的这一系列过程中存在较多繁琐且耗时的操作,难免会影响交易效率,导致错失最佳时机。出于简化交易流程、尽可能争取先机的目的,这一工具通过调用接口函数,直接在合约层面进行交互,实现了链上交易流程的最简化。

功能介绍

目前开源的这个版本只支持BSC链上的PancakeSwap买入和卖出操作(且后续不会更新其他功能),但由于EVM链的共性,理论上你可以通过修改RPC以及RouterAddress,使得这一工具在任意EVM链上的任意DEX都能发挥作用,同时由于我为代码留下了足够的二次开发空间,理论上你可以通过二次开发来实现更多自己需要的功能,这正好也符合了我开源这一工具的最初想法:技术交流分享

具体效果可参看使用示例

使用方法

  1. 打开命令行,切换到当前目录,执行pip install -r requirements.txt安装依赖库。
  2. 修改config.json中的各项配置以符合自己的需求,通常情况下,只需将private_key_base64参数修改为你钱包私钥的base64形式即可(这么做也仅是为私钥提供了一层微不足道的保护)。这里提供了一种生成方法:在当前目录下执行python encrypt.py,之后输入私钥即可。
  3. 在当前目录下执行python swap.py,之后根据引导进行相应的操作即可。

配置参数说明

bsc_mainnet_rpc: BSC 链主网的 RPC 地址。修改建议:自行选择合适的 RPC。

bsc_testnet_rpc: BSC 链测试网的 RPC 地址。修改建议:维持现状。

bscscan_api_key: BscScan 的 API KEY。修改建议:更换为自己的 API KEY。

network_environment: 程序工作的网络环境。修改建议:主网-"mainnet"/测试网-"testnet"。

private_key_base64: 钱包私钥的 Base64 形式。修改建议:更换为自己钱包的私钥的 Base64 形式。

buy_slippage_tolerance: 买入时的滑点容差,单位为%。修改建议:自行选择合适的值。

sell_slippage_tolerance: 卖出时的滑点容差,单位为%。修改建议:自行选择合适的值。

fund_token_use: 使用的资金币种在fund_token_list中的下标,用于指定使用的资金币种。修改建议:自行选择合适的值。

pancakeswap_router_address: PancakeswapRouter 的合约地址。修改建议:维持现状。

fund_token_list: 资金币种列表。资金币种是指买入时消耗,卖出时得到的币种。修改建议:维持现状/通过工具进行导入。

valuable_token_list: 计价币种列表。计价币种是指在进行最佳交易路由选择时,纳入考虑范围的中间币种。修改建议:维持现状/通过工具进行导入。

optional_token_list: 自选币种列表。自选币种是指需要进行交易操作的币种。修改建议:通过工具进行导入。

其他说明

  1. 使用的是http/https协议访问,所以ws协议特有的如事件订阅等功能是无法实现的,节点延迟也各有不同,但仅作为一个辅助交互的工具,它的功能本就无需过于复杂。
  2. 没有支持自定义GasPrice,是因为在BSC链平均出块间隔仅为 3 秒的情况下,过高的GasPrice只会让你的交易Gas成本更高且没有必要,工具默认的GasPriceBSC.gas_price+10wei,也就是5.00000001Gwei,这特意增加的 10wei,已经能让你在几乎不增加交易成本的前提下使得你的交易在 80%(甚至更高)的交易之前被确认,它足够让你领先大部分手动访问网页进行操作的人了。
  3. 代码是开源的,安不安全这个问题由你自行审查,以此决定要不要使用它,我只是基于技术交流分享的目的将其分享出来,仅此而已。

使用示例

1

测试网环境:

2

3

4

5

6

7

主网环境:

8

9

尽责声明

由于涉及的领域较为敏感,请你事先详尽了解并严格遵守自己所在国家/地区的相关法律法规

本项目仅出于技术交流分享的目的进行开源,不作任何投资建议和引导,任何人原则上都应只将其用于技术研究/测试,而不是用于任何实际的投资交易,由此导致的任何问题、责任、结果、损失都将由你自行承担、负责。

开源许可

本项目使用 GPL-3.0 作为开源许可证。

About

GrandLine 是一个用于与 BSC 链上的 PancakeSwap Dapp 进行简单交互的工具。

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages