pancakeSwap、uniswapV2 ... 如何实现交易手续费(滑点)

这篇具有很好参考价值的文章主要介绍了pancakeSwap、uniswapV2 ... 如何实现交易手续费(滑点)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

心血来潮,写篇小文章,就写一点点示例代码吧

实现交易滑点其实很简单,首先要理解的是从哪里扣手续费

扣手续费,那么得理解那些东西呢 ?

  • swap 背后的逻辑是什么
    • 通俗的来讲,swap其实就是他给创建了一个 LP 的合约 (createPair)
    • 在dex进行交易的时候,你要理解是用你的TokenA 去兑换 TokenB 出来
    • 👌,理解以上两个,就知道你下一步应该做什么了
    • 类似于swap背后的原理什么的,这里不做多的阐述,只讲实现滑点
  • 上面提到了 TokenA 兑换TokenB,既然有兑换,那肯定有转账,也就是 Transfer
    • Erc20 标准中 Transfer 有transfer(); transferFrom(); 两个方法
    • 可以看到这两个方法最终会调用内部方法 _transfer();
    • ok,下面开始盲写一波代码
//  其他代码省略,这里只写_transfer 中的部分代码

uint256 fee = 4; // 滑点为 4%

function _transfer(from, to, amount) internal {
	// 不管这玩意的难度,你只要知道,这玩意很简单就👌
	... 省略开头
	
    // 👌,我们正式开始实现 滑点
	// 如果是从 lp 的地址转入,或者转出,则说明这是在dex交易
	if (from == pair || to == pair ) {
	    // 从pair转出,也就是你要买的Token
		if (from == pair) {
			uint256 totalFee = fee * amount / 100;
			// 买入,实现买入滑点,你可以在他转给用户之前,实现,转移出去
			_balance[addr1] += totalFee / 2 ; // 这里扣除 2%
			_balance[addr2] += totalFee - totalFee / 2 ; // 这里扣除 2%
			// 这里 只是给 对应的 接受 手续费的地址增加了手续费,还需要给其增加转账事件
			emit Transfer(pair, addr1, totalFee / 2); // 表示pair转了了totalFee/2 给addr
			emit Transfer(pair, addr2, totalFee / 2); 			
		} else {
			// 卖出 Token
			// 操作和 买入一样
      	}
	}

	... 省略结尾

}

👌,粗略的代码就已经实现了,dex 交易滑点了,其他的可以举一反三,调整代码。
不懂的可留言文章来源地址https://www.toymoban.com/news/detail-525558.html

到了这里,关于pancakeSwap、uniswapV2 ... 如何实现交易手续费(滑点)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 期权手续费是双向收费吗?一张是多少钱?

    不同期权品种的手续费和收费标准不一样,目前国内期权分别是商品期权、股指期权和股票期权的,三种期权开通的条件稍有区别,下面来简单介绍期权手续费是双向收费吗?一张是多少钱? 一、期权交易有手续费吗? 有 手续费。按照期货交易市场规定,期权每一笔交易都是

    2024年01月20日
    浏览(35)
  • 动态规划 Leetcode 714 买卖股票的最佳时机含手续费

    Leetcode 714 学习记录自代码随想录 要点:1.两种状态持有股票和不持有股票; 2.递推公式 d p [ i ] [ 0 ] = m a x ( d p [ i − 1 ] [ 0 ] , d p [ i − 1 ] [ 1 ] − p r i c e s [ i ] ) d p [ i ] [ 1 ] = m a x ( d p [ i − 1 ] [ 1 ] , d p [ i − 1 ] [ 0 ] + p r i c e s [ i ] − f e e ) dp[i][0] = max(dp[i-1][0], dp[i-1][1]-prices

    2024年04月09日
    浏览(46)
  • 【LeetCode动态规划#13】买卖股票含冷冻期(状态众多,比较繁琐)、含手续费

    力扣题目链接(opens new window) 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)

    2023年04月25日
    浏览(47)
  • 309.最佳买卖股票时机含冷冻期 714.买卖股票的最佳时机含手续费

    力扣题目链接(opens new window) 给定一个整数数组,其中第 i 个元素代表了第 i 天的股票价格 。 设计一个算法计算出最大利润。在满足以下约束条件下,你可以尽可能地完成更多的交易(多次买卖一支股票): 你不能同时参与多笔交易(你必须在再次购买前出售掉之前的股票)

    2024年01月16日
    浏览(42)
  • 【第51天| 309.最佳买卖股票时机含冷冻期 ● 714.买卖股票的最佳时机含手续费 】

    三个状态: 1. 当前持有股票 状态1 2. 当前不持有股票,且不是今天卖出的股票 状态2 3. 当前不持有股票, 且股票是今天卖出的 状态3 题目要求前一天卖出了股票今天就不能买。所以今天持有股票 状态1 一定是昨天的 状态2 在今天买了股票,或者就是保持了昨天的 状态1 。 状

    2024年02月08日
    浏览(40)
  • 算法刷题Day 51 最佳买卖股票时机含冷冻期+买卖股票的最佳时期含手续费

    关键是要画出状态转移图 然后根据状态转移图来写状态转移方程 这道题其实就是在买卖股票II的基础上加入一点变化而已,代码框架还是那个框架。

    2024年02月15日
    浏览(39)
  • 如何防止uniswap和pancakeswap夹子机器人

    被机器人夹是通俗说法 实际就是 front running(抢先提前交易) 具体就是机器人在链上嗅探到你有买入行为的时候,他立刻买,gas给的比你高,快你一步确认,这样你成交价就高了,因为交易所有滑点,所以你依旧会以高一点的价格成交并且再将价格推高一点,这时他再卖出,

    2024年01月16日
    浏览(32)
  • pancakeswap薄饼添加流动性后实现永久锁仓

    pancakeswap(薄饼)添加流动性后永久锁仓的目的是彻底放弃对资金池的控制权限,永久不能撤池。主要针对项目方在首次完成流动性的添加后,永久锁仓。这样就放弃了对流动性的所有权,永远无法再撤销流动性。后续用户添加的流动性不受锁仓影响,可以随意撤池。 永久锁

    2024年02月03日
    浏览(65)
  • 如何实现广义的元交易(Meta Transaction)

    在合约内启用元交易是一个强大的补充。要求用户持有ETH来支付Gas一直以来都是而且仍然是新用户进入的最大挑战之一。如果只是简单的点击,谁知道现在会有多少人在使用以太坊? 但有时,解决方案可以在你的合约中加入元交易能力。实现起来可能比你想象的要容易。 元

    2024年01月20日
    浏览(31)
  • 程序员如何实现财富自由系列之:参与加密货币交易

    作者:禅与计算机程序设计艺术 近年来,随着全球数字货币市场的崛起,越来越多的人开始关注数字货币投机者的种种行为。对于这类投机者来说,掌握一些加密货币交易的技巧和经验可以帮助他们实现财富自由。本文将会分享一些常用加密货币交易平台的操作指南,让大家

    2024年02月03日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包