pancakeswap添加流动性会调用智能合约什么方法?
pancakeswap添加流动性会调用智能合约什么方法?在 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:防止交易因网络拥堵而过期。
页:
[1]