【从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,然后安装三安
本文开启了一系列关于在Solidity中进行数学运算的文章。第一个要讨论的话题是:数字。 介绍以太坊是一个可编程的区块链,其功能可以通过将称为智能合约的可执行代码片段发布到区块链本身来扩展。这将以太坊与第一代区块链区分开来,在第一代区块链中,新功能需要修改客户端软件、升级节点以及分叉整个区块链。智能合约是在链上发布的一段可执行代码,分配有唯一的区块链地址。智能合约控制属于其地址的所有资产,并在与其他智能合约交互时可以代表该地址进行操作。每个智能合约都有持久存储,用于保存调用之间的智能合约状态。Solidity是以太坊以及其他几个使用以太坊虚拟机(EVM)的区块链平台上智能合约开发的主要编程语言