isoulove (@isoulove) • Hey
既然选择远方,便只顾风雨兼程
Publications
- 如你所愿,愿你所愿,LENS会带领我们去寻找我们想要的一切!
- 你是光,是希望
- 忙忙碌碌的,lens是用不了了么,为啥点赞这些老报错
- 时光静好
- 时间总是不够用的,都希望一天是48小时,或者72小时呢?
- Watching Japan with @stani
- 晚安,好梦
- Two years? I only remember 692 days. lakers championship
两年吗,我只记得692天。湖人总冠军
Let's go Lakers
- 世间所有的遇见,都是久别重逢!
- 生活不止眼前的苟且
- 王菲 - 如愿
你是 遥遥的路
山野大雾里的灯
我是孩童啊 走在你的眼眸
你是 明月清风
我是你照拂的梦
见与不见都一生 与你相拥
而我将 爱你所爱的人间
愿你所愿的笑颜
你的手我蹒跚在牵
请带我去明天
如果说 你曾苦过我的甜
我愿活成你的愿
愿不枉啊 愿勇往啊
这盛世每一天
你是 岁月长河
星火燃起的天空
我是仰望者 就把你唱成歌
你是 我之所来
也是我心之所归
世间所有路都将 与你相逢
而我将 爱你所爱的人间
愿你所愿的笑颜
你的手我蹒跚在牵
请带我去明天
如果说 你曾苦过我的甜
我愿活成你的愿
愿不枉啊 愿勇往啊
这盛世每一天
山河无恙 烟火寻常
可是你如愿的眺望
孩子们啊 安睡梦乡
像你深爱的那样
而我将 梦你所梦的团圆
愿你所愿的永远
走你所走的长路
这样的爱你啊
我也将 见你未见的世界
写你未写的诗篇
天边的月 心中的念
你永在我身边
与你相约 一生清澈
如你年轻的脸
- 爱我所爱的人间,愿我所愿的笑颜
- “**live the way you want**”
#Cinema
Dialogues in #Movies and #TV Shows
- To the moon?
- 看了几张香港开会的照片 不用去都能感受到18年那个镰刀开会+外围技师站台的那股low味 不错,熟悉的感觉
- lens continues to be strong
- Let's share happiness together, at Lens ❤
- 眼前的艰难,只能我们自己默默承受
- gm Lenster fam 🌸
We are excited to announce the launch of our new Snapshot voting feature. Now you can have your say on important community decisions by simply voting from Lenster.
If you paste any Snapshot URL, it will turn into an interactive widget where you can vote for a proposal. You can also use it with your Lens follower NFTs by configuring Snapshot strategies 🚀
Vote us below if you like this feature 😉 https://snapshot.org/#/yoginth.eth/proposal/0x9287c40edcd68c362c7c4139fe3489bbaaa27cf4de68be5c218a82d0f252e718
- 清晨,新的一天开启,路虽远,未疲倦,加油!
- Lens has achieved great growth and excellent participation in just one year, and many high-quality agreements have settled in lens. For example, UNISWAP GITCIN Nexus AAVE has made lens the mainstream.
Don't miss it. Let's explore the door of Web3, join Lens and find some interesting things.
- 你必须一直往前走,才能忘乎所以,不顾一切,一切都会有安排!
- May you be treated gently by the world, May the beauty of the world be intertwined with you.
Good morning all lensers
- #Pep Guardiola tactics for the rest of the season: 😁😁😎
#fun #football
- 🪂🪂🪂🪂🪂🪂🪂🪂
zkSync,以太坊的第 2 层扩展,重点gas贵
️LayerZero,全链互操作性协议,重点a16z
️StarkNet,去中心化的 ZK-Rollup,重点a16z
- Lens 🛫🛫
- so beautiful
- Gooooood moooorning!🌞🌞
Tokyo seems to be getting ready for the transition to the next season as the cherry blossoms are beginning to fall.
Photo is…
Van Gogh Sweets with Mom 🍰2 times ✌️
#gogh #art #sweets #photo
- 周末来了,大家有什么安排。朋友们,周末愉快!
- 积极乐观才是生活最高级的质感 by @parfum.lens #Lenstube
https://lenstube.xyz/watch/0xebde-0x3e
- Designing communities like games by @reka_eth.lens #Lenstube
https://lenstube.xyz/watch/0x2fb0-0x39
- Designing communities like games by @reka_eth.lens #Lenstube
https://lenstube.xyz/watch/0x2fb0-0x39
- Anime ✨ when 1k follower
#Wallpaper #Anime #yourname
- 过年该有的样子
- Emrah Is - Andromeda (Official Music Video) by @millionrecords.lens #Lenstube
https://lenstube.xyz/watch/0xf1b1-0x06fc
-
Konnichiwa (こんにちは), it's aoi again!
🌸🧳 Just arrived at this breathtaking destination, and look at the flowers on my suitcase - they're loving it too! Ready to explore and spread the green love. Stay tuned, fellow & collect me! 🌏💚 #LensAdventures #GreenTravel #FlowerPower
- #Solidity学习笔记-多签钱包
1. 基本概念
多签钱包是一种电子钱包,特点是交易被多个私钥持有者(多签人)授权后才能执行。多签钱包可以防止单点故障(私钥丢失,单人作恶),更加去中心化,更加安全,被很多DAO采用。
nosis Safe多签钱包是以太坊最流行的多签钱包,管理近400亿美元资产,合约经过审计和实战测试,支持多链(以太坊,BSC,Polygon等),并提供丰富的DAPP支持。更多信息可以阅读Gnosis Safe使用教程。
- #Solidity学习笔记-透明代理和UUPS
1. 基本概念
选择器冲突:智能合约中,函数选择器(selector)是函数签名的哈希的前4个字节。由于函数选择器仅有4个字节,范围很小,因此两个不同的函数可能会有相同的选择器。这种情况被称为“选择器冲突”。在这种情况下,`EVM`无法通过函数选择器分辨用户调用哪个函数,有“选择器冲突”的合约无法通过编译。
由于代理合约和逻辑合约是两个合约,就算他们之间存在“选择器冲突”也可以正常编译,这可能会导致很严重的安全事故。
目前,有两个可升级合约标准解决了这一问题:透明代理`Transparent Proxy`和通用可升级代理`UUPS`。
2. 透明代理
透明代理的逻辑非常简单:管理员可能会因为“函数选择器冲突”,在调用逻辑合约的函数时,误调用代理合约的可升级函数。那么限制管理员的权限,不让他调用任何逻辑合约的函数,就能解决冲突:
* 管理员变为工具人,仅能调用代理合约的可升级函数对合约升级,不能通过回调函数调用逻辑合约。* * 其它用户不能调用可升级函数,但是可以调用逻辑合约的函数。
透明代理的缺点,每次用户调用函数时,都会多一步是否为管理员的检查,消耗更多gas。但瑕不掩瑜,透明代理仍是大多数项目方选择的方案。
3. 通用可升级代理`UUPS`
UUPS(universal upgradeable proxy standard,通用可升级代理)将升级函数放在逻辑合约中。这样一来,如果有其它函数与升级函数存在“选择器冲突”,编译时就会报错。
如果用户A通过合约B(代理合约)去`delegatecall`合约C(逻辑合约),语境仍是合约B的语境,`msg.sender`仍是用户A而不是合约B。因此,UUPS合约可以将升级函数放在逻辑合约中,并检查调用者是否为管理员。
- #Solidity学习笔记-可升级合约
1. 基本概念
一个可以更改逻辑合约的代理合约。
2. 操作流程
* 部署逻辑合约1,逻辑合约2
* 部署可升级代理合约,implementation变量初始赋值逻辑合约1地址
* 执行代理合约低级函数调用 - 状态变量值赋值为old
* 执行代理合约升级函数,implementation变量赋值逻辑合约2地址
* 执行代理合约低级函数调用 - 状态变量值赋值为new
- 新来的小伙伴求互关 ,follow each other @888998 @88887777
- #Solidity学习笔记-代理合约
1. 基本概念
代理模式:代理模式将合约数据和逻辑分开,分别保存在不同合约中。我们拿上图中简单的代理合约为例,数据(状态变量)存储在代理合约中,而逻辑(函数)保存在另一个逻辑合约中。代理合约(Proxy)通过`delegatecall`,将函数调用全权委托给逻辑合约(Implementation)执行,再把最终的结果返回给调用者(Caller)。
内联汇编操作码:
`calldatacopy(t, f, s)`:将calldata(输入数据)从位置`f`开始复制`s`字节到mem(内存)的位置`t`。
`delegatecall(g, a, in, insize, out, outsize)`:调用地址`a`的合约,输入为`mem[in..(in+insize))` ,输出为`mem[out..(out+outsize))`, 提供`g`wei的以太坊gas。这个操作码在错误时返回`0`,在成功时返回`1`。
`returndatacopy(t, f, s)`:将returndata(输出数据)从位置`f`开始复制`s`字节到mem(内存)的位置`t`。
`switch`:基础版`if/else`,不同的情况`case`返回不同值。可以有一个默认的`default`情况。
`return(p, s)`:终止函数执行, 返回数据`mem[p..(p+s))`。
`revert(p, s)`:终止函数执行, 回滚状态,返回数据`mem[p..(p+s))`。
2. 操作流程
- 部署逻辑合约
- 测试逻辑合约函数调用
- 部署代理合约
- 测试代理合约低级函数调用
- 部署调用者合约
- 测试调用者合约call代理合约,代理合约delegatecall委托逻辑合约函数执行
3. 特别说明
代理合约利用`delegatecall`将函数调用委托给了另一个逻辑合约,使得数据和逻辑分别由不同合约负责。并且,它利用内联汇编黑魔法,让没有返回值的回调函数也可以返回数据。前面留给大家的问题是:为什么通过Proxy调用`increment()`会返回1呢?按照我们在第23讲Delegatecall中所说的,当Caller合约通过Proxy合约来`delegatecall` Logic合约的时候,如果Logic合约函数改变或读取一些状态变量的时候都会在Proxy的对应变量上操作,而这里Proxy合约的`x`变量的值是0(因为从来没有设置过`x`这个变量,即Proxy合约的storage区域所对应位置值为0),所以通过Proxy调用`increment()`会返回1。
心态:有很多路可以走,但坚持不懈走完的路不多,成功的路上或许需要更多的耐心、毅力和冷静,我要做的事情还太多太多,尽管我只是刚刚意识到什么,到作为起点,或许已经足够,加油!
- 昨天 @LayerZero_Labs B轮融资1.2亿美金的消息盖过了另一个明星项目 @PolyhedraZK ,4.4宣布获得1500万美金的A轮融资,Polychain Capital领投;加上种子轮由Binance和Polychain领投的1000万美金,共计2500万美金的融资。团队牛逼,加上投资方背景强大,非常值得关注。
- #空投任务-LayerZero
选两条链(优先arb/op/aptos)主网交互
钱包:小狐狸,Aptos钱包 - https://pontem.network/
跨链:LiquidSwap - https://bridge.liquidswap.com/
- https://www.lensgardennft.xyz/
好吧,我才知道还有这个,哈哈!
- @lensgardennft #LensGardenNFT
The lensgarden nft is too much beautiful
- when you have a gorgeous heart and genuine intentions you don’t lose anybody – they lose you.
💙🩵💙🩵💙🩵💙🩵💙🩵💙🩵💙🩵💙
- If you're not investing in crypto, you're missing out on the biggest opportunity of our time.
- Fish 🐟 Fish 🐟 Fish 🐟 Fish 🐟 Fish 🐟 Fish
I sometimes go to the aquarium to be healed, and here are some goldfish I found there, which are fantastically presented and colored!
Oh, they are beautiful!
#photo #goldfish #aquarium
- In many social media, the lens is reborn from the ashes
- #Solidity学习笔记-链上随机数
基本概念:
很多以太坊上的应用都需要用到随机数,例如`NFT`随机抽取`tokenId`、抽盲盒、`gamefi`战斗中随机分胜负等等。但是由于以太坊上所有数据都是公开透明(`public`)且确定性(`deterministic`)的,它没法像其他编程语言一样给开发者提供生成随机数的方法。
这里介绍链上(哈希函数)和链下(`chainlink`预言机)随机数生成的两种方法,并利用它们做一款`tokenId`随机铸造的`NFT。`
1)链上随机数:可以将一些链上的全局变量作为种子,利用`keccak256()`哈希函数来获取伪随机数。这是因为哈希函数具有灵敏性和均一性,可以得到“看似”随机的结果。但这种方法并不安全,尽管如此,由于这种方法是最便捷的链上随机数生成方法,大量项目方依靠它来生成不安全的随机数。
2)链下随机数:我们可以在链下生成随机数,然后通过预言机把随机数上传到链上。`Chainlink`提供`VRF`(可验证随机函数)服务,链上开发者可以支付`LINK`代币来获取随机数。 `Chainlink VRF`有两个版本,具体可查阅Chainlink官网: https://docs.chain.link/vrf/v2/introduction
已经在Goerli测试网完成链下随机数(利用Chainlink VRF服务)随机铸造NFT合约的部署。
总结:使用链上随机数高效,但是不安全;而链下随机数生成依赖于第三方提供的预言机服务,比较安全,但是没那么简单经济。