1、开发包概述
BakerySwap.php 开发包适用于为PHP应用快速增加对BakerySwap协议的支持能力。 即支持使用自有部署BSC区块链节点的应用场景,也支持使用第三方节点的 轻量级部署场景。
BakerySwap.php开发包主要包含以下特性:
- 一键部署BakerySwap协议,便于快速开发与测试
- 支持BakerySwap协议的全部接口,并提供开发人员友好的API
- 支持BEP20/BEP20、BNB/BEP20等各种交易对的流动性添加、移除与兑换交易
- 支持自动做市价格计算与滑点计算
- 支持BSC交易gas用量与gas价格的自动估算与手动设定
- 支持EIP712签名授权,单一交易内完成流动性维护
BakerySwap.php开发包运行在 Php 7.1+ 环境下,当前版本1.0.0,主要类/接口及关系如下图所示:
BakerySwap.php开发包的主要代码文件清单如下:
代码文件 | 说明 |
---|---|
bakery.php/src/SwapKit.php | BakerySwap.php开发包入口类 |
bakery.php/src/OrderBuilder.php | 流动性维护订单构造器 |
bakery.php/src/Order.php | 流动性维护订单类 |
bakery.php/src/TradeBuilder.php | 兑换交易构造器 |
bakery.php/src/Trade.php | 兑换交易类 |
bakery.php/src/PermitSigner.php | EIP712签名实现类 |
bakery.php/src/SmartContract.php | 智能合约封装类 |
bakery.php/src/Transactor.php | BSC交易执行器 |
bakery.php/src/Credential.php | BSC身份标识类 |
bakery.php/src/Callback.php | 回调执行辅助类 |
bakery.php/src/helper.php | 其他辅助函数 |
demo/config.php | 演示程序参数配置文件 |
deploy-contracts.php | BakerySwap及测试Token合约部署工具,可用于快速开发与测试 |
demo/add-liquidity.php | BEP20/BEP20交易对流动性添加演示 |
demo/add-liquidity.php | BEP20/BEP20交易对流动性添加演示 |
demo/add-liquidity-bnb.php | BEP20/BNB交易对流动性添加演示 |
demo/remove-liquidity.php | BEP20/BEP20交易对流动性移除演示 |
demo/remove-liquidity-bnb.php | BEP20/BNB交易对流动性移除演示 |
demo/swap-exact-tokens-for-tokens.php | BEP20/BEP20兑换演示,以输入token数量为基准 |
demo/swap-tokens-for-exact-tokens.php | BEP20/BEP20兑换演示,以输出token数量为基准 |
demo/swap-exact-bnb-for-tokens.php | BNB/BEP20兑换演示,以输入bnb数量为基准 |
demo/swap-bnb-for-exact-tokens.php | BNB/BEP20兑换演示,以输出token数量为基准 |
demo/swap-exact-tokens-for-bnb.php | BEP20/BNB兑换演示,以输入token数量为基准 |
demo/swap-tokens-for-exact-bnb.php | BEP20/BNB兑换演示,以输出bnb数量为基准 |
contract/HappyToken.sol | 标准BEP20 token实现,开发测试用 |
contract/BEP20USDT.sol | Tbnber/USDT实现,开发测试用 |
contract/BakerySwapFactory.sol | BakerySwap工厂合约实现 |
contract/BakerySwapRouter.sol | BakerySwap路由合约实现 |
contract/WBNB.sol | WBNB合约实现 |
bin/ | solc编译器目录 |
build-contract.sh | 合约编译脚本 |
vendor | 第三方依赖包目录 |
composer.json | composer配置文件 |
2、使用示例代码
2.1 编译合约
在终端进入项目目录,执行如下命令编译BakerySwap及开发包提供的测试Token合约:
~$ cd ~/bakery.php
~/bakery.php$ bin/build-contracts
执行结果如下:
2.2 部署合约
首先在另一个终端启动开发私链:
~$ ganache-cli -d
然后进入项目demo目录,执行如下命令部署合约:
~$ cd ~/bakery.php/demo
~/bakery.php/demo$ php deploy-contracts.php
执行结果如下:
注意 :如果需要在BSC测试链或者主链部署上述合约,或者使用其他参数 启动ganache-cli,需要修改demo/config.