找回密码
 立即注册
搜索
热搜: GTokenTool
查看: 117|回复: 1

pancakeswap添加流动性会调用智能合约什么方法?

[复制链接]

212

主题

211

回帖

1228

积分

管理员

积分
1228
发表于 2025-7-21 19:10:30 | 显示全部楼层 |阅读模式
pancakeswap添加流动性会调用智能合约什么方法?

212

主题

211

回帖

1228

积分

管理员

积分
1228
 楼主| 发表于 2025-7-21 19:11:48 | 显示全部楼层
在 PancakeSwap 中添加流动性时,主要会调用智能合约中的以下方法:
  • addLiquidity 或 addLiquidityETH

    • addLiquidity:用于添加两个 ERC-20 代币的流动性(例如 BUSD/WBNB 交易对)。
      solidity





      function addLiquidity(    address tokenA,    address tokenB,    uint amountADesired,    uint amountBDesired,    uint amountAMin,    uint amountBMin,    address to,    uint deadline) external returns (uint amountA, uint amountB, uint liquidity);


      • 参数包括代币地址、期望数量、最小接受数量、流动性接收地址和截止时间。

    • addLiquidityETH:用于添加 ETH(或 BNB,在 BSC 上)与 ERC-20 代币的流动性(例如 ETH/USDT)。
      solidity





      function addLiquidityETH(    address token,    uint amountTokenDesired,    uint amountTokenMin,    uint amountETHMin,    address to,    uint deadline) external payable returns (uint amountToken, uint amountETH, uint liquidity);

      • 需要附带 ETH/BNB 作为 msg.value。


  • 底层调用的其他方法
    • transferFrom:用户需要预先授权代币给 Router 合约,Router 会调用代币的 transferFrom 转移资金到 Pair 合约。
    • mint:流动性池(Pair 合约)在收到代币后,会调用 mint 方法生成 LP 代币(如 CAKE-LP)并发送给用户。

  • 关键合约地址
    • Router 合约:处理用户交互(如 PancakeRouterV2)。
    • Factory 合约:创建流动性池(如 PancakeFactory)。
    • Pair 合约:具体的交易对合约(由 Factory 创建)。


操作流程示例
  • 用户调用 addLiquidityETH,附带 BNB 并授权代币给 Router。
  • Router 将代币和 BNB 转入 Pair 合约。
  • Pair 合约铸造 LP 代币并返回给用户。

注意事项
  • 滑点保护:通过 amountAMin 和 amountBMin 设置最小接受量。
  • Deadline:防止交易因网络拥堵而过期。


您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Telegram|手机版|小黑屋|GTokenTool

GMT+8, 2025-9-11 03:59 , Processed in 0.020802 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表