关于 Uniswap V3 的计算
机制改变Uniswap V3 采用了集中流动性(Concentrated Liquidity)。用户可以为自己的流动性设置一个价格区间。超出这个价格区间或低于这个价格区间,所有代币将被转换成两者中不值钱的那个。这一步转化造成的损失是无常损失。一个价格区间中的最小间隔叫 Tick,为 0.01%。 符号Swap添加流动性相关阅读:Uniswap V3 白皮书编辑于昨天 14:30文章被以下专栏收录* Blockchian;unblock256.com
矿工可提取价值
日渐增多的 MEV 可能导致了高昂的 Gas Fee在*上一期*的周报中我们为大家介绍了 Gas Fee , Gas Fee 越高,交易就越可能被矿工打包。本期我们就来讨论一下这种打包机制所产生的问题,Miner-extractable Value(MEV)。 MEV 指的是矿工重新排序交易后可以获得的利润。在实际情况中, MEV 可能并不是矿工推动。有可能是我付出了一个很高的 Gas Fee ,希望矿工优先打包我的交易。 希望矿工优先打包交易的原因有以下几种:抢跑(Frontrunning)主流的 DEX 都支持滑点,也就是成交价格的区间,假设当前下单价格 100 块,滑点是 5%,这意味着成交价格会在 95 - 105 之间。 宽松的价格区间让套利者有机可乘。 假如一个套利者在内存池中(没有打包的交易都会在内存池中)看到一笔大额买单(币价即将上涨)。根据 AMM 的模型,只要有买单成交,代币价格就会上升。因此,套利者可以通过高额的 Gas Fee 或者贿赂矿工来插入一笔买单,抢在代币价格上涨之前完成买入。套利者的抢跑行为将导致后续的那一笔大额买单以以更高的价格成交。 其实在现...
流动性挖矿(Yield Farming)
⚠️ 以下为非投资建议 (No Financial Advise) 内容,流动性挖矿存在投资风险。概念流动性挖矿是 AMM 协议下的提供流动性的更进一步,它是通过锁定流动性来获取代币奖励。 如何获取收益*上期*我们讲到在 AMM 协议下,流动性提供者可以通过从交易手续费中获取一定收益。流动性挖矿与单纯的提供流动性(LP)略有不同,它是将组好的 LP,注入到资金池中(矿池),以获取额外的不同的代币支付奖励。用于奖励的代币大多为矿场的代币。以 BSC 上的 PancakeSwap 的 Farm 作为例子,这是一个 $BUSD - $BNB 矿池,在 Stake(质押、注入)前,我们需要先为 $BUSD - $BNB 交易对提供流动性以及 Approve(授权使用代币)。 LP 组好后,我们就可以将我们的 LP Stake 进矿池,开始挖矿。 一段时间后,我们可以获得 $CAKE (PancakeSwap 的平台代币)作为奖励,通过 Harvest(收成)我们就可以把 $CAKE 收入囊中。与此同时,我们的 $BUSD - $BNB 还在努力的工作,持续产出 $CAKE。 又过了一段...
关于 Uniswap V3 的计算
机制改变Uniswap V3 采用了集中流动性(Concentrated Liquidity)。用户可以为自己的流动性设置一个价格区间。超出这个价格区间或低于这个价格区间,所有代币将被转换成两者中不值钱的那个。这一步转化造成的损失是无常损失。一个价格区间中的最小间隔叫 Tick,为 0.01%。 符号Swap添加流动性相关阅读:Uniswap V3 白皮书编辑于昨天 14:30文章被以下专栏收录* Blockchian;unblock256.com
矿工可提取价值
日渐增多的 MEV 可能导致了高昂的 Gas Fee在*上一期*的周报中我们为大家介绍了 Gas Fee , Gas Fee 越高,交易就越可能被矿工打包。本期我们就来讨论一下这种打包机制所产生的问题,Miner-extractable Value(MEV)。 MEV 指的是矿工重新排序交易后可以获得的利润。在实际情况中, MEV 可能并不是矿工推动。有可能是我付出了一个很高的 Gas Fee ,希望矿工优先打包我的交易。 希望矿工优先打包交易的原因有以下几种:抢跑(Frontrunning)主流的 DEX 都支持滑点,也就是成交价格的区间,假设当前下单价格 100 块,滑点是 5%,这意味着成交价格会在 95 - 105 之间。 宽松的价格区间让套利者有机可乘。 假如一个套利者在内存池中(没有打包的交易都会在内存池中)看到一笔大额买单(币价即将上涨)。根据 AMM 的模型,只要有买单成交,代币价格就会上升。因此,套利者可以通过高额的 Gas Fee 或者贿赂矿工来插入一笔买单,抢在代币价格上涨之前完成买入。套利者的抢跑行为将导致后续的那一笔大额买单以以更高的价格成交。 其实在现...
流动性挖矿(Yield Farming)
⚠️ 以下为非投资建议 (No Financial Advise) 内容,流动性挖矿存在投资风险。概念流动性挖矿是 AMM 协议下的提供流动性的更进一步,它是通过锁定流动性来获取代币奖励。 如何获取收益*上期*我们讲到在 AMM 协议下,流动性提供者可以通过从交易手续费中获取一定收益。流动性挖矿与单纯的提供流动性(LP)略有不同,它是将组好的 LP,注入到资金池中(矿池),以获取额外的不同的代币支付奖励。用于奖励的代币大多为矿场的代币。以 BSC 上的 PancakeSwap 的 Farm 作为例子,这是一个 $BUSD - $BNB 矿池,在 Stake(质押、注入)前,我们需要先为 $BUSD - $BNB 交易对提供流动性以及 Approve(授权使用代币)。 LP 组好后,我们就可以将我们的 LP Stake 进矿池,开始挖矿。 一段时间后,我们可以获得 $CAKE (PancakeSwap 的平台代币)作为奖励,通过 Harvest(收成)我们就可以把 $CAKE 收入囊中。与此同时,我们的 $BUSD - $BNB 还在努力的工作,持续产出 $CAKE。 又过了一段...

Subscribe to un.Block

Subscribe to un.Block
Share Dialog
Share Dialog
<100 subscribers
<100 subscribers
ERC721 做不到的,ERC1155 可以
ERC1155 的独特之处在于它使用一次性通过一个智能合约来代表多种代币。
ERC1155 的 balanceOf 函数和 ERC20 与 ERC777 的有所不同,他有一个独特的 id 参数来代表你想查询的代币,就像 ERC721 一样。
但实际上 ERC1155 又与 ERC 721 略有不同:
在 ERC721 中,每个 id 代表的代币供应量要么是 0 要么是 1。ERC721 的 balanceOf 函数会返回一个钱包里有多少个 id 不同的代币。
在 ERC1155 中, id 所代表代币的供应量可以为任意数字。并且我们可以知道 id 所代表代币的数量。NFT 也是一种特殊的 ERC1155 代币。
得益于这种设计思路,当我们需要多种代币的时候,能够大大的节省 Gas(例如你要做一个炉石传说的 NFT,里面有各种卡牌),借助 ERC1155,我们能够地轻易的搭建整个生态系统。
由于全部状态都存在一个合约中,因此我们可以在一笔交易中进行多项代币操作,这样效率可以大大提高。
balanceOfBatch 一次性查询多个代币的余额
safeBatchTransferFrom 一次性转账多种代币
如开头所说,在 ERC1155 中,一切都以代币形式存在,NFT 就是存量为 1 的代币,独一无二;标准代币是存量大于 1 的代币。
要达成上述目标,我们只需要修改在调用 _mint 函数是传入不同的数量参数,NFT 传入 1,标准代币传入大于 1 的数字。
我们先来看下_mint 函数:

account: 代币存放地址
id: 代币序号
amount: 代币数量(关键点)
data: 额外数据
然后我们来看看 OpenZepplin 给的示范代码:

在上述代码中,我们可以看到 GOLD、SILVER 并不唯一,属于标准代币,而 THOR_HAMMER 只有 1 把,属于 NFT 代币。通过控制存量,我们就能实现 NFT 和标准代币的共存。
还有一个值得注意的地方就是:在 ERC1155 中是不存在小数的,因此每一个代币都是独立不能分割的单位。
ERC721 做不到的,ERC1155 可以
ERC1155 的独特之处在于它使用一次性通过一个智能合约来代表多种代币。
ERC1155 的 balanceOf 函数和 ERC20 与 ERC777 的有所不同,他有一个独特的 id 参数来代表你想查询的代币,就像 ERC721 一样。
但实际上 ERC1155 又与 ERC 721 略有不同:
在 ERC721 中,每个 id 代表的代币供应量要么是 0 要么是 1。ERC721 的 balanceOf 函数会返回一个钱包里有多少个 id 不同的代币。
在 ERC1155 中, id 所代表代币的供应量可以为任意数字。并且我们可以知道 id 所代表代币的数量。NFT 也是一种特殊的 ERC1155 代币。
得益于这种设计思路,当我们需要多种代币的时候,能够大大的节省 Gas(例如你要做一个炉石传说的 NFT,里面有各种卡牌),借助 ERC1155,我们能够地轻易的搭建整个生态系统。
由于全部状态都存在一个合约中,因此我们可以在一笔交易中进行多项代币操作,这样效率可以大大提高。
balanceOfBatch 一次性查询多个代币的余额
safeBatchTransferFrom 一次性转账多种代币
如开头所说,在 ERC1155 中,一切都以代币形式存在,NFT 就是存量为 1 的代币,独一无二;标准代币是存量大于 1 的代币。
要达成上述目标,我们只需要修改在调用 _mint 函数是传入不同的数量参数,NFT 传入 1,标准代币传入大于 1 的数字。
我们先来看下_mint 函数:

account: 代币存放地址
id: 代币序号
amount: 代币数量(关键点)
data: 额外数据
然后我们来看看 OpenZepplin 给的示范代码:

在上述代码中,我们可以看到 GOLD、SILVER 并不唯一,属于标准代币,而 THOR_HAMMER 只有 1 把,属于 NFT 代币。通过控制存量,我们就能实现 NFT 和标准代币的共存。
还有一个值得注意的地方就是:在 ERC1155 中是不存在小数的,因此每一个代币都是独立不能分割的单位。
No activity yet