当前位置: 首页 > wzjs >正文

不同类型网站优势备案时的网站建设方案书

不同类型网站优势,备案时的网站建设方案书,网页介绍怎么写,我想建个网站Uniswap V3 的 swap 以及 add/remove liquidity 等操作都是即时转账,用户资金会实时流转到目标账户。而在 V4 版本中,所有操作都先在“账本”上进行记账,只有当用户或流动性提供者(LP)主动结算(settle&…

Uniswap V3 的 swap 以及 add/remove liquidity 等操作都是即时转账,用户资金会实时流转到目标账户。而在 V4 版本中,所有操作都先在“账本”上进行记账,只有当用户或流动性提供者(LP)主动结算(settle)时,资产才会实际转账。这一设计相比 V3 支持了批量结算、合并多币种操作,大幅提升了效率并降低了 Gas 成本。

先来张结构图:

+------------------------------------------------------------+
|                   CurrencyDelta                                |
|  (账本:每个账户每种币种的余额变化)            |
+-------------------+-----------------+---------------------+
|   用户地址      |币种(Currency)| 余额(delta)      |
+-------------------+-----------------+---------------------+
| 0xAAA...AAA   | 0x111...111     |     +100          |
| 0xAAA...AAA   | 0x222...222    |     -50            |
| 0xBBB...BBB   | 0x111...111     |     +200         |
| 0xCCC...CCC  | 0x222...222    |     +300         |
| ...                      | ...                    |     ...              |
+---------------------+-------------------+-----------------+

账本式结算没有专门的 Solidity 显式存储容器(如 mapping),而是直接用 transient storage(tstore/tload)+ slot 计算来实现“映射”效果。采用transient storage(tstore/tload),高效且 gas 低。

Slot 计算

首先看Slot 计算(_computeSlot)

function _computeSlot(address target, Currency currency) internal pure returns (bytes32 hashSlot) {assembly ("memory-safe") {mstore(0, and(target, 0xffffffffffffffffffffffffffffffffffffffff))mstore(32, and(currency, 0xffffffffffffffffffffffffffffffffffffffff))hashSlot := keccak256(0, 64)}
}

为每个 (用户地址, 币种) 生成唯一的 slot,作为账本的 key。

  • and(target, 0xffffffffffffffffffffffffffffffffffffffff):Solidity 的 address 类型和大多数 token 地址(Currency)都只用 20 字节存储,剩下的高位都是 0。这一步就是把 address 截断为 20 字节,保证不会有高位脏数据,哈希计算更安全、唯一。
  • mstore(0, ...):把用户地址的低 20 字节(160 位)写入内存的前 32 字节。
  • mstore(32, ...):把币种的低 20 字节写入内存的下一个 32 字节。
  • keccak256(0, 64):对这 64 字节(用户地址 + 币种)做哈希,得到唯一的 slot。

这样拼接两个 20 字节的地址,填满 64 字节(32+32),再做 keccak256,确保 slot 唯一且不会冲突

余额变动的记账流程

function _accountDelta(Currency currency, int128 delta, address target) internal {if (delta == 0) return;(int256 previous, int256 next) = currency.applyDelta(target, delta);if (next == 0) {NonzeroDeltaCount.decrement();} else if (previous == 0) {NonzeroDeltaCount.increment();}
}

这是记账的入口方法,将某币种的资产变化(delta)记到账本上,归属于 target 地址。维护非零余额地址计数,便于后续清算和管理。

currency.applyDelta用于读取当前余额,累加 delta,写回账本。

function applyDelta(Currency currency, address target, int128 delta)internalreturns (int256 previous, int256 next)
{bytes32 hashSlot = _computeSlot(target, currency);assembly ("memory-safe") {previous := tload(hashSlot)}next = previous + delta;assembly ("memory-safe") {tstore(hashSlot, next)}
}

参数

  • currency:币种(如 token0、token1)。
  • target:用户地址。
  • delta:本次要累加的余额变化(可以为正或负)。

步骤

  1. 通过 _computeSlot(target, currency) 计算出唯一 slot,定位账本中该用户该币种的余额位置。
  2. 用 tload(hashSlot) 读取当前余额(previous)。
  3. 计算新余额:next = previous + delta
  4. 用 tstore(hashSlot, next) 把新余额写回账本。

返回值

  • previous:变更前的余额。
  • next:变更后的余额。

总结

所有资产变化都先记账,只有结算时才真正转账,便于扩展钩子(hook)、奖励、返现等机制。用户/LP 通过 settle() 或相关方法主动结算,将账本余额同步到链上资产,实现真正的 token 转账。账本式设计为后续多资产、多池子批量操作提供了基础。


文章转载自:

http://E9jU7JPr.mknxd.cn
http://gzmM7Ewk.mknxd.cn
http://1im9lUzz.mknxd.cn
http://hP9Vx4wA.mknxd.cn
http://FeCOxjrL.mknxd.cn
http://oqJlzFl6.mknxd.cn
http://Kz8DsEF8.mknxd.cn
http://7xV2YOkA.mknxd.cn
http://gQw7u8Kj.mknxd.cn
http://YRp1eWy5.mknxd.cn
http://PKdLCOu8.mknxd.cn
http://mexfZqqJ.mknxd.cn
http://9jwjGS5K.mknxd.cn
http://s09HFqDj.mknxd.cn
http://yiNmwqMU.mknxd.cn
http://HCD8izmS.mknxd.cn
http://hJ3hXH4C.mknxd.cn
http://P1Dd5Kg8.mknxd.cn
http://8bLREgdA.mknxd.cn
http://EjhsqLlW.mknxd.cn
http://4reQI0bs.mknxd.cn
http://U3fB1CIx.mknxd.cn
http://jF8kpUDN.mknxd.cn
http://O0IIyaX2.mknxd.cn
http://EgVunFF9.mknxd.cn
http://Tm5D2z8I.mknxd.cn
http://A8iTWvXI.mknxd.cn
http://tSAkWueO.mknxd.cn
http://RCCt5nwh.mknxd.cn
http://56PltaeQ.mknxd.cn
http://www.dtcms.com/wzjs/724131.html

相关文章:

  • 怎么做自己网站里的资讯网站开发组件拖拽
  • 网站建设策划内容网站下载app连接怎么做
  • 佛山教育平台网站建设做家装施工的网站
  • 摄影工作室网站设计绿色网站风格
  • 个人做电商网站网站开发未按合同约定开发时间完工
  • 网站建设设计制作 熊掌号网站设计建设有限公司
  • 温州手机网站制作哪家便宜wordpress英文站源码
  • 手机网站模板建站梦幻西游网页版官方网站
  • app与网站的区别如何制作私人网站
  • 淘宝买cdk自己做网站ui做网站流程
  • 宁波本地模板网站建设平台网站一直被攻击怎么办
  • 青秀网站建设做一个网站维护多少钱
  • php网站开发环境不良网站代码怎么查
  • 怎么建设国际网站首页哈密地网站建设
  • 兰州 网站建设公司哪家好网站建设源码导入
  • 小网站文案ueditor wordpress 4.5
  • 网站建设流程发布网站和网页制作html5视频播放器插件
  • 珠海横琴建设局网站营销型网站设计思路
  • 美工需要的网站做教育网站的公司
  • 简单网站页面wordpress 火车头发布规则
  • 企业网站源码安装教程施工企业资质序列
  • 南昌行业网站建设苏州技术馆网站建设
  • 郑州高端网站公司淘宝店标在线制作免费
  • 网站域名需要申请长沙企业网站开发微联讯点
  • 做seo网站 公司网站的建设属于无形资产
  • 湖南专业外贸建站公司网页设计图片居中
  • 网站打开建站公司最新报价
  • 怎样给自己网站做反链网络维护员工作内容
  • 做企业网站需要哪些网站上线需要哪些步骤
  • 浙江网站建设电话北京市昌平建设工程招标网站