代码理解记录1
1uint id = zombies.push(Zombie(_name, _dna)) - 1; 错误理解:仅记录加入数组的僵尸的下标 正确理解:1. 创建一个 Zombie 结构体实例1Zombie(_name, _dna) 这是对 Zombie 结构体的构造(只是内存中的一个临时对象)。 2. 调用 zombies.push(...) 将它加入数组1zombies.push(...) push 会把这个新的僵尸放入 zombies 动态数组中,并且返回当前数组的新长度。 3. 计算该僵尸的下标(ID)因为 push 返回的是「数组新长度」,所以减 1 就是索引: 1uint id = ... - 1; 该代码等价于: 12zombies.push(Zombie(_name, _dna)); // 加入数组uint id = zombies.length - 1; // 获取下标
V3里的tick与价格表示
代码地址: https://github.com/Uniswap/v3-core/blob/main/contracts/UniswapV3Pool.sol
0G核心模块|AIVerse
ERC7857(iNFT)什么是 ERC7857/INFTERC-7857(也称 INFT)是一种面向 智能体/AI 代理的 NFT 标准,支持 可进化元数据、加密功能元数据以及功能性资产的安全转移,弥补传统 ERC-721 在 AI 场景中的不足。 NFT 不适配 AI 的原因1. Static Metadata(静态元数据) 传统 NFT(如 ERC-721)元数据固定,不支持自我学习或自我演化 无法随着 AI 代理能力或状态变化而更新 2. Insecure Metadata Transfer(元数据传输不安全) NFT 转移只涉及所有权转移 底层功能性元数据未随之安全转移 存在信息泄露或功能丢失风险 3. Publicly Accessible Metadata(元数据公开可访问) NFT 元数据默认公开 缺少原生加密机制 关键功能或敏感信息无法保护 REC7857的技术细节步骤 调用 transfer() 方法,开启转账流程。 合约向 Oracle 发起询问,询问目标 “newDataHash” 相关情况。 Oracle 回复接收方是否能访问...
V3中的集中流动性和流动性计算
集中流动性(Concentrated Liquidity)传统的 AMM 流动性是整个价格曲线连续分布的,而 V3 允许 LP(流动性提供者)把资金集中在某个 价格区间 [P_min, P_max] 内。 1. 背景在 Uniswap V2 中,流动性提供者(LP)是 全价区间流动性 模式: 流动性必须从 0 到 ∞ 的价格范围内均匀分布。 结果是,大部分资本几乎不会被用到(因为实际交易只发生在某个较小的价格区间)。 这导致资本利用率很低。 2. 集中流动性的核心思想集中流动性(Concentrated Liquidity): 流动性提供者(LP)不再需要把资金放在整个价格区间,而是可以选择 某个价格区间 来提供流动性。 比如: 你可以只在 1000–2000 USDC/ETH 区间提供流动性。 如果 ETH 价格一直在 1500–1800 之间,你的资金就几乎全都在发挥作用。 3. 技术实现Uniswap V3 的做法是: 把价格区间离散化为一系列 ticks(刻度)。 LP 在提交流动性时,要指定一个区间 [tickLower, tickUpper]。 只有当当...
V2中的闪电贷和TWAP
Flash Swap什么是闪电贷闪电贷 是一种 无需抵押的贷款机制,主要出现在 DeFi(去中心化金融)协议里。 它的核心特点是: 用户可以瞬间借到大量资金(几乎没有上限,只受池子流动性限制)。 必须在同一个交易(同一个区块内)还清。 如果没有还清,整个交易会直接被回滚(就像从没发生过一样)。 所以协议提供者不会有风险。 闪电贷有什么用? 套利 不同交易所(比如 Uniswap、SushiSwap、Curve)之间价格差异,瞬间搬运套利。 清算 在借贷协议(比如 Aave、Compound)里,当有人抵押物不足时,你可以用闪电贷借钱去清算,然后赚取奖励。 抵押物替换 假如你在 MakerDAO 抵押 ETH 借了 DAI,但想换成 WBTC 抵押,可以用闪电贷无缝替换,不需要先卖掉 ETH 再买 BTC。 高杠杆操作 利用瞬时借贷,把本金放大很多倍,进行投机或策略。 为什么 Uniswap V2 也能提供闪电贷? Uniswap V2 引入了一个机制:你可以拿走池子里的代币,只要在交易结束前归还相同数量的代币(或等值代币)。 这正好可以被用来实现 闪电贷...
V2中添加/移除流动性&无常损失
前置文章: https://kizzy899.github.io/2025/08/06/Uniswap%E4%B8%93%E9%A1%B9/ 项目代码: https://github.com/Uniswap/v2-core/blob/master/contracts/UniswapV2Pair.sol 添加流动性 在 Router.addLiquidity() 流程中: Router 会先调用 Factory.getPair(tokenA, tokenB) 检查池子是否存在 getPair[token0][token1] 用来查询该交易对是否已经存在 Pair 合约。 如果返回 非零地址,说明这个交易对已经有 Pair 了 → **不会再调用 create2**。 如果返回 零地址,才会用 create2 部署新的 Pair 合约,并初始化。 如果不存在 → Factory.createPair(tokenA, tokenB) 创建一个新的 Pair 合约 然后 Router 才把用户代币转到 Pair 并调用 mint() mint() : 把用户...
V2中的swap操作和手续费机制
Swap操作关于DAI/USDT的单交换 逻辑: Router02.sol SwapexactTokensForTokens( ) SwapTokensForexactTokens( ) 资金转换 transferFrom( ) [ pair DAI/USDT] Swap transfer(币转给用户) 多Tokens之间的交换此时path参数 1path = [DAI, WBTC, USDC]; 流程图: 逻辑: 用户调用 Router02 的 swapExactTokensForTokens,传入 path = [DAI, WBTC, USDC]。 Router02 先把用户的 DAI 转入 DAI-WBTC Pair。 DAI-WBTC Pair 执行 swap,把 WBTC 发给下一个 Pair(由 Router02 转发)。 Router02 把 WBTC 继续送入 WBTC-USDC Pair。 WBTC-USDC Pair 执行 swap,把 USDC 最终发给用户。 用户完成从 DAI → WBTC → U...
Uniswapv1-v4简介
Uniswap V1 2018年11月2日发布 使用 Vyper 语言编写 仅支持 ERC20-ETH 直接互换或者通过ETH进行互换: 合约地址: Uniswap/v1-contracts: Uniswap V1 smartcontracts (github.com) 合约重点: Exchange——交易逻辑 factory——创建交易对 createchange( ) Uniswap V2 2020年5月发布; 增加 ERC20-ERC20直接互换:。增加 Flash Swap; 增加 Oracle; 改进手续费收取方式; 引爆了 DeFi 赛道; 2020年9月,发行治理代币UNI; 什么是DeFilamaDeFiLlama 是一个 去中心化金融(DeFi)数据聚合平台,主要提供各种区块链 DeFi 协议的统计数据和分析。它的特点是 中立、免费、开源,不像一些由 VC 资助的平台,它更倾向于社区驱动。 DeFiLlama 提供什么功能? TVL(Total Value Locked)数据 可以看到不同链(以太坊、BSC、Arbitrum、Pol...
0G核心模块|计算架构设计与实现
主要内容 0G Compute Network 介绍 0G Compute Network 架构以及可信执行环境 0G Compute Network 核心模块|Inference 0G Compute Network 核心模块|fine-tuning 0G Compute SDk 的集成方式 0G Compute Network 介绍0G Compute 是一个去中心化的框架——提供 AI 计算能力。 它是deAlOS 的一个重要组成部分。 0G Compute 是一个去中心化的市场,GPU 拥有者可以将计算能力出售给需要它的开发者,可以将其想象成 AI计算领域的 Uber。 0G deAl Service Marketplace 处理支付和验证账号Inference 服务注册以及验证Fine-tuning 服务注册以及验证 Provoder:运行计算服务的GPU拥有者 Customer:服务的使用者,通过SDK使用 provider 服务 或者集成到自己的应用中 0G Compute Network 架构以及可信执行环境首先介绍TEE TEE在之前我有相关的学习笔记 ...









