目录1.本地环境2.在线开发环境3.基础语法4.第一个程序5.数据类型6.变量7.变量作用域8.数据存放位置8.1Storage8.2Memory8.3Calldata8.4Stack变量的数据存放位置规则赋值的数据位置规则9.字符串10.数组11.枚举12.结构体13.映射(mapping)类型14.以太单位15.特殊/全局变量16.函数16.1函数修饰符16.2View(视图)函数16.3Pure(纯)函数16.4fallback(回退)函数16.5函数重载16.6数学函数16.7加密函数17.常用模式17.1提款模式17.2限制访问18.智能合约18.1可见性18.2合约继承18.3构造
【从0学习Solidity】48.透明代理博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!这一讲,我们将介绍代理合约的选择器冲突(SelectorClash),以及这一问题的解决方案:透明代理(TransparentProxy)。教学代码由Open
【从0学习Solidity】46.代理合约博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!这一讲,我们介绍代理合约(ProxyContract)。教学代码由OpenZeppelin的Proxy合约简化而来。代理模式Solidity合约部署在链上之后
以太坊虚拟机EthereumVirtualMachine(EVM) 拥有三种存储区域。存储storage(贮存了合约声明中所有的变量)贮存了合约声明中所有的变量。虚拟机会为每份合约分别划出一片独立的 存储storage 区域,并在函数相互调用时持久存在,所以其使用开销非常大。每个账户有一块持久化内存区称为 存储 。存储是将256位字映射到256位字的键值存储区。在合约中枚举存储是不可能的,且读存储的相对开销很高,修改存储的开销甚至更高。合约只能读写存储区内属于自己的部分。内存memory(用于暂存数据)用于暂存数据。其中存储的内容会在函数被调用(包括外部函数)时擦除,所以其使用开销相对较小。合
【从0学习Solidity】35.荷兰拍卖博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!这一讲,我将介绍荷兰拍卖,并通过简化版Azuki荷兰拍卖代码,讲解如何通过荷兰拍卖发售ERC721标准的NFT。荷兰拍卖荷兰拍卖(DutchAuction)是
【从0学习Solidity】41.WETH博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!这一讲,我们将学习WETH–带包装的ETH。什么是WETH?WETH(WrappedETH)是ETH的带包装版本。我们常见的WETH,WBTC,WBNB,都是
【从0学习Solidity】40.ERC1155博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!这一讲,我们将学习ERC1155标准,它支持一个合约包含多种代币。并且,我们会发行一个魔改的无聊猿-BAYC1155:它包含10,000种代币,且元数据
【从0学习Solidity】45.时间锁博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!这一讲,我们介绍时间锁和时间锁合约。代码由Compound的Timelock合约简化而来。时间锁时间锁(Timelock)是银行金库和其他高安全性容器中常见的锁
【从0学习Solidity】14.抽象合约和接口博主简介:不写代码没饭吃,一名全栈领域的创作者,专注于研究互联网产品的解决方案和技术。熟悉云原生、微服务架构,分享一些项目实战经验以及前沿技术的见解。关注我们的主页,探索全栈开发,期待与您一起在移动开发的世界中,不断进步和创造!本文收录于不写代码没饭吃的学习汇报系列,大家有兴趣的可以看一看。欢迎访问我们的微信公众号:不写代码没饭吃,获取更多精彩内容、实用技巧、行业资讯等。您关注的是我们前进的动力!这一讲,我们用ERC721的接口合约为例介绍solidity中的抽象合约(abstract)和接口(interface),帮助大家更好的理解ERC721
-以太坊智能合约本地开发环境搭建1.Solidity是一种智能合约开发语言,被应用于各种不同的区块链平台,目前绝大部分的区块链应用的智能合约(尤其是在以太坊)是通过Solidity完成开发的步骤大纲1.Nodejs2.Solidity编译器,作为npm依赖包3.VisualStudioCode编译语法的突出显示4.为开发人员构建的以太坊客户端ethereumjs-testrpc一安装solidity编译器npminstall-gsolc然后通过solcjs-v查看版本二安装Solidity插件使用vscode进行智能合约的编写我们打开vscode然后在里面搜索插件Solidity,然后安装三安