Deploy 后,每个智能合约都有一个地址,就像每个账户都有地址一样。 0xd9145CCE52D386f254917e481eB44e9943F39138 https://t.co/1YtFqShEBk
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
在执行 store() 方法时 terminal 会显示对应的 transition tip: Solidity 创建变量声明时,默认是private 的,所以 terminal log 看不到,需要加上 public 修饰符(Function Visibility Specifiers) https://t.co/SAN6jzAycn https://t.co/cpxEdOdjq4
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
1. public:在外部和内部可见(其实是给 storage/state 变量创建一个getter函数) 2. private:仅在当前合约中可见 3. external:仅在外部可见(相对于当前 function 而言)-- 即只能被消息调用(通过this.func) 4. internal:只在内部可见 不写默认为第 4 种,合约内可见,https://t.co/uMpx6MYA59 https://t.co/bJMATIKV19
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
bitsofcode
Solidity function visibility, explained
When writing a smart contract, we can control who/what can call functions within that contract by specifying what is known as the function visibility. This allows us to easily secure certain parts of a contract without having to write too much custom logic.…
只要部署过后,旧的合约其实无法删掉,因为区块链是不可更改的。 重新部署[[智能合约]],会产生新的合约地址。 function 执行计算就会消耗gas,最简单的理解是,做越多的操作,消耗更多的 gas https://t.co/u9p1i6aZ6W
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
Remix IDE 会为已部署合约显示对应的操作按钮 比如黄色的 store 按钮,对应合约中的 store() 方法 蓝色的 favoriteNumber 按钮,对应 public 的变量,颜色代表单独读取 state 数据,无需消耗 gas tip: 这里的 Scope 概念即上下文,跟 JavaScript 类似 https://t.co/e89Th0klLj
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
view, pure 函数只是读区块链数据 - 记住,只有更改状态的时候才支付 gas,发交易,即 store 橙色按钮 - 调用 view 或者 pure 函数,是不需要支付 gas 的 - 在 Remix IDE 中未显示 绿色的 ✅,即没有发生交易 https://t.co/yDOuSxgrsD
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
点击 retrieve 蓝色按钮,不发送交易,我们只是在链上读取数值 但需要注意的是:“消耗只有在被合约调用时才会计算在内”,也就是说 如果在一个要改变区块链状态的函数内部,调用了类似 retrieve 这种 view 或者 pure 函数,还是会消耗 gas,因为需要消耗额外计算量。 https://t.co/2MZDpvAIxV
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
view 和 pure 的区别: 1. view 告诉我们,通过运行该函数,不会保存/更改任何数据。 2. pure 告诉我们,该函数不仅不会将任何数据保存到区块链中,而且不会从区块链中读取任何数据。 带有 public 的变量 favoriteNumber,可以看作是一个返回 uint256 的 view 函数 uint256 public favoriteNumber;
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
Solidity struct 结构体 不满足于基础的数据类型,当然就需要自定义类型,struct 结构体可以包含一些基本的数据类型。 当然,也可以包含自定义的 struct 类型,俗称「套娃」🪆 https://t.co/fsKWwOYOO7
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
声明 struct 变量后,可以直接初始化,People({ key1: val1, key2: val2}) 更简单直观的方式是,按照 struct 的参数顺序来填入值,People(val1, val2, ...) https://t.co/0dHzPAugz0
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
Solidity array 数组 更好的创建列表的方法是使用一种被称为数组(array) 的数据结构 举例:People[] 数组是储存列表,或者说储存一系列对象的一种方式 people 数组在智能合约部署过后,还是个空列表,参数输入框,可以填入想要获得的那个对象的索引 https://t.co/zFXic0RgGd
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
默认类型的数组就是所谓的动态数组(Dynamic Array),初始化这个数组的时候并没有规定它的大小 - 数组的方括号里添加一个数字 3,最多只能放进去三个 People 对象 - 不指定的话,数组的大小会随着我们添加和减少 People而增大和减小 People[3] public people;
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
在 Remix IDE 调用已部署的合约函数 比如 addPerson() 黄色按钮 + 输入框:根据参数顺序,填写值 JimmyLv, 7 就会为 people 数组添加一个对象,对应 People(JimmyLv, 7)。 你会发现 terminal 中的 ✅ 符号,代表消耗了 gas 计算量, 暴露的 people 变量对应一个蓝色按钮,可根据索引位置获取数据。 https://t.co/Llx8RSk6ir
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
闪念是一次迭代, 笔记是一次迭代, 整理是一次迭代, 写推是一次迭代, 文字是一次迭代, 画图是一次迭代, 视频是一次迭代, 剪辑是一次迭代, 字幕是一次迭代, 评论是一次迭代, 弹幕是一次迭代, 标题是一次迭代, 口述是一次迭代, 回复是一次迭代, 朗读是一次迭代, 转发是一次迭代, AI提炼是 https://t.co/UD4xNmUKmj
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022
📮漫游日报 Roam Daily pinned «我是一名 7 years+ 经验的全栈工程师,👨🏻💻 偏爱前端 🎨 和 DevOps ⚙️。 2022 年下定决心,正经学习区块链 & Web3 技术栈,「学习技术,穿越牛熊」🐻 这个 Thread 记录我的公开学习,分享最直观的体验和学习笔记。 🧵 /n 📣 如果有不正确的地方,感谢指出! — jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 22, 2022»
好久不见!这一期带着你完整测试整个 React 应用的功能。
示例代码:https://ift.tt/ajwWAhC
下一期已录制,点赞过100,就更新下一期哦,欢迎三连+分享~
视频地址:https://ift.tt/oV4m8C1
Media
via 吕立青_JimmyLv 的 bilibili 动态 https://ift.tt/JsQ5P1E
示例代码:https://ift.tt/ajwWAhC
下一期已录制,点赞过100,就更新下一期哦,欢迎三连+分享~
视频地址:https://ift.tt/oV4m8C1
Media
via 吕立青_JimmyLv 的 bilibili 动态 https://ift.tt/JsQ5P1E
GitHub
GitHub - JimmyLv/fed-testing-react: 极限编程之【前端自动化测试】系列课程
极限编程之【前端自动化测试】系列课程. Contribute to JimmyLv/fed-testing-react development by creating an account on GitHub.
I'm claiming testnet tokens for @zksync v2, an EVM-compatible ZK Rollup! My Address: 0xb4d7e965bd043b9b633eca43df3ac82c7a545ca3 Learn more: https://t.co/viJ3j65U9p
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
zksync.io
zkSync — Accelerating the mass adoption of crypto for personal sovereignty.
zkSync is a ZK-rollup that represents the end-game for scaling Ethereum - one that scales its technology and values without degrading security or decentralization.
剪映桌面端,最近支持了单独导出音频文件,这加速了我通过飞书妙记获取字幕的过程。 原因在于,飞书妙记的字幕识别更准确,且更容易修改,导出srt文件之后还能批量替换 🧵 /n 这个 Thread 分享我在视频创作时,字幕识别+自动校对的最佳实践。 投稿数 122,欢迎关注 B 站:https://t.co/dFqTW49oR3 https://t.co/Ur3yvmkHkf
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
Bilibili
吕立青_JimmyLv的个人空间-吕立青_JimmyLv个人主页-哔哩哔哩视频
哔哩哔哩吕立青_JimmyLv的个人空间,提供吕立青_JimmyLv分享的视频、音频、文章、动态、收藏等内容,关注吕立青_JimmyLv账号,第一时间了解UP注动态。远程办公ing,工作、学习更“敏捷”!「在学习的同时帮助他人学习,在赚钱的同时帮助他人赚钱。」
1. mp3 文件上传至飞书妙记,自动识别文字,准确度相当高。 我最喜欢的是「非线性」“看”视频,根据文本快速回溯视频位置。 - 识别后的文字支持修改;也支持高亮(标记识别错误) - 后续可以导出为文档或txt, srt 字幕文件 p.s. 飞书妙记在移动端还有一个 Podcast 播客模式 https://t.co/kzYk0MTuwt https://t.co/1YG7Da5NqQ
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
即刻
即刻 - 记录我 遇见你
与更多同好分享你的见闻与感受,每一个独到的声音,都值得被更多人倾听。在即刻,你可以发表动态,在圈子中分享观点与见闻,并更深度地参与内容分享。即刻是 Apple Watch 上最有用的应用之一。
2. 字幕识别永远会有错误,但更重要的是如何快速「修正错误」 如图,飞书妙记生成的字幕文件,比剪映好太多了! tip: 导出 srt 文件,批量替换: - 使用文本编辑器或IDE的replace功能更强大,比如支持正则,一键替换 - 甚至,我写了一段bash脚本,直接命令行执行一遍即可,同时打开 IDE 进行二次润色 https://t.co/qz78Evcgm6
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
3. 常见的识别错误,可以持续积累,贯彻 Infrastructure/Config As Code 比如「语法弹」-> 「语法糖」,就可以通过 bash 脚本的方式保存起来。 sed -e 's/语法弹/语法糖/g' 再比如,每个人都可能有口癖: "呃|就是|然后|那种|其实|可能|比较|一个|这个|这样的|这样" 我会通过识别口癖的正则替换。 https://t.co/IZOZcWaHad
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022
— jimmylv.eth (🐣, 🐣) 吕立青 2𐃏22 🇨🇳 (@Jimmy_JingLv) Nov 23, 2022