TwiScan
热门
English
日本語
한국의
简体中文
繁体中文
0xMomo | Bird🕊️
@0xmomonifty
| 职业 - 技术宅男 | 爱好 - 投研撸毛 | 梦想 - 链上小将 | 坚持不刷粉 | 勤奋、真诚、用心 | 返佣:币安 - https://t.co/qbAI5SgT0F | UX - https://t.co/LltO9E5tNF
1.4K
Following
3K
Followers
0xMomo | Bird🕊️
@0xmomonifty
2025.08.20 09:33
【 Arbitrage 学习笔记 - V3 池子 ticks 快速获取 】 有些时候进行 V3 pool 进行交换会计算代币输入输出的具体价格及数量会考虑到池子的 tick 数据以及当前 tick 的流动性状态,我之前参照大佬 Zacholme7/PoolSync 会使用从历史区块同步的方法来获取池子的 ticks 状态,但是我在实际使用中只要当前池子的 ticks 数据,并不需要知道历史的变化,所以再回去查看文档和查阅资料发现其实还有更好的方法。(原谅我还只是小白) ▰▰▰▰▰▰ Uni V3 Tick tickBitmap 首先回顾一下,在 v3 中使用 Bitmap 来存储 tick 的状态例如:100101001101001,1 表示有流动性,0 没有被初始化,两个字节来存储 (0x4a69)。用 word n 来划分子数组,word 中有 256 个位置。 ▰▰▰▰▰▰ 使用合约获取 ticks 信息 我之前使用区块事件扫描获取 mint/burn,其实在 V3 的 pool 有两个函数 tickBitmap() 和 ticks() 分别来获取位置信息和具体 ticks 信息,那么步骤就非常简单了,程序可以第一遍遍历计算 Bitmap word 数组大小如果 bitmap == 0 就跳过,第二遍获取有效的 word 中的 tick 数据。 但是如果调用 RPC 还是需要发送大量的查询,那么这时候我们使用链上合约来一次性获取我们想要的信息,让节点把我们这步骤都做了。当然你也可以加上 tokenName,decimals 等信息。
Show more
0
0
3
69
16
Loading...
Most Popular Users
Elon Musk
@elonmusk
226.2M followers
Barack Obama
@BarackObama
130.5M followers
Cristiano Ronaldo
@Cristiano
115.8M followers
Donald J. Trump
@realDonaldTrump
109.3M followers
Narendra Modi
@narendramodi
109M followers
Justin Bieber
@justinbieber
108.9M followers
Rihanna
@rihanna
107.6M followers
KATY PERRY
@katyperry
104.5M followers
NASA
@NASA
87.4M followers
X
@X
68.9M followers
Virat Kohli
@imVkohli
67.9M followers
Bill Gates
@BillGates
66.4M followers
CNN Breaking News
@cnnbrk
63.8M followers
CNN
@CNN
63.3M followers
ESPN
@espn
58.7M followers