草庐IT

Solidity之Mappings篇

全部标签

以太坊智能合约开发:Solidity 语言快速入门

在本文中,我们从一个简单的智能合约样例出发,通过对智能合约源文件结构的剖析与介绍,使大家对Solidity语言有一个初步的认识。最后,我们将该智能合约样例在Remix合约编译器中编译、部署,观察其执行结果。开始之前在开始之前,我们先对Solidity有个初步的了解,即Solidity是什么?让我们看一下官方的描述:Solidity是一种面向对象(合约)的,为实现智能合约而创建的高级编程语言;Solidity是一种针对以太坊虚拟机(EVM)设计的语言,它受到了C++、Python和JavaScript的影响;Solidity是一种静态类型语言,支持复杂的用户定义编程,支持库和继承。合约样例下面是

Solidity节省GAS的方法

1、使用struct结构体使用struct结构体会结构存储空间,编译器会自动优化struct的存储。比如uint类型,不管是uint32还是uint256,默认都会使用256存储。两个uint32也占用2个256的存储单元。但如果是在struct内部的两个uint32,则只会占用一个256存储单元。2、对于不需要修改链上内容的函数,加上view关键词。当玩家从外部调用一个view函数,是不需要支付一分gas的。这是因为view函数不会真正改变区块链上的任何数据-它们只是读取。因此用view标记一个函数,意味着告诉web3.js,运行这个函数只需要查询你的本地以太坊节点,而不需要在区块链上创建一

Solidity节省GAS的方法

1、使用struct结构体使用struct结构体会结构存储空间,编译器会自动优化struct的存储。比如uint类型,不管是uint32还是uint256,默认都会使用256存储。两个uint32也占用2个256的存储单元。但如果是在struct内部的两个uint32,则只会占用一个256存储单元。2、对于不需要修改链上内容的函数,加上view关键词。当玩家从外部调用一个view函数,是不需要支付一分gas的。这是因为view函数不会真正改变区块链上的任何数据-它们只是读取。因此用view标记一个函数,意味着告诉web3.js,运行这个函数只需要查询你的本地以太坊节点,而不需要在区块链上创建一

技术:如何在 Solidity 中验证签名消息

技术:如何在Solidity中验证签名消息介绍这是一个使用MetaMask签名消息,然后在链上进行验证的实用教程。这里有一个demo:https://leon-do.github.io/ecrecover/签名SignMessageasyncfunctionsignMessage(){if(!window.ethereum)returnalert("PleaseInstallMetamask");//connectandgetmetamaskaccountconstaccounts=awaitethereum.request({method:"eth_requestAccounts"});//

技术:如何在 Solidity 中验证签名消息

技术:如何在Solidity中验证签名消息介绍这是一个使用MetaMask签名消息,然后在链上进行验证的实用教程。这里有一个demo:https://leon-do.github.io/ecrecover/签名SignMessageasyncfunctionsignMessage(){if(!window.ethereum)returnalert("PleaseInstallMetamask");//connectandgetmetamaskaccountconstaccounts=awaitethereum.request({method:"eth_requestAccounts"});//

solidity实现智能合约教程(4)-ERC1155合约

文章目录1介绍2主要功能3代码示例4部署测试猛戳订阅学习专栏🍁🍁👉solidity系列合约源码+解析👈🍁🍁1介绍ERC-1155是一种以太坊代币标准,由Enjin首席技术官WitekRadomski等人开发,并于2018年6月17日将该标准的第一个版本放置到Ethereum的github库中。其主要可用于游戏行业中道具的生成和处理。该标准的提出对nft在游戏行业的应用起到了极大的提升。在一定程度上融合了ERC-20和ERC-721的功能。其主要用途包括了发行同质化代币和非同质化代币。同质化代币即能像ERC-20一样发布各样的代币类型,但目前为止各钱包和交易所暂未支持ERC-1155标准代币;与

solidity实现智能合约教程(4)-ERC1155合约

文章目录1介绍2主要功能3代码示例4部署测试猛戳订阅学习专栏🍁🍁👉solidity系列合约源码+解析👈🍁🍁1介绍ERC-1155是一种以太坊代币标准,由Enjin首席技术官WitekRadomski等人开发,并于2018年6月17日将该标准的第一个版本放置到Ethereum的github库中。其主要可用于游戏行业中道具的生成和处理。该标准的提出对nft在游戏行业的应用起到了极大的提升。在一定程度上融合了ERC-20和ERC-721的功能。其主要用途包括了发行同质化代币和非同质化代币。同质化代币即能像ERC-20一样发布各样的代币类型,但目前为止各钱包和交易所暂未支持ERC-1155标准代币;与

第119篇 solidity 中的 ABI

 ABI全称ApplicationBinaryInterface(应用程序二进制接口),简单来说就是以太坊的调用合约时的接口说明。从外部施加给以太坊的行为都称之为向以太坊网络提交了一个交易,调用合约函数其实是向合约地址(账户)提交了一个交易,这个交易有一个附加数据,这个附加的数据就是ABI的编码数据。1.函数选择器一个函数调用数据的前4字节,指定了要调用的函数。这就是某个函数签名的Keccak哈希的前4字节(高位在左的大端序)(译注:这里的“高位在左的大端序“,指最高位字节存储在最低位地址上的一种串行化编码方式,即高位字节在左)。这种签名被定义为基础原型的规范表达,基础原型即是函数名称加上由括

第119篇 solidity 中的 ABI

 ABI全称ApplicationBinaryInterface(应用程序二进制接口),简单来说就是以太坊的调用合约时的接口说明。从外部施加给以太坊的行为都称之为向以太坊网络提交了一个交易,调用合约函数其实是向合约地址(账户)提交了一个交易,这个交易有一个附加数据,这个附加的数据就是ABI的编码数据。1.函数选择器一个函数调用数据的前4字节,指定了要调用的函数。这就是某个函数签名的Keccak哈希的前4字节(高位在左的大端序)(译注:这里的“高位在左的大端序“,指最高位字节存储在最低位地址上的一种串行化编码方式,即高位字节在左)。这种签名被定义为基础原型的规范表达,基础原型即是函数名称加上由括

solidity经典案例-----智能投票

案例分析角色分析:包括主持人、选民功能分析:仅主持人能授权给每个选民1票,即每个参与投票的选民拥有1票投票权。选民可以选择将票数委托给其它选民,当然,收委托的选民仍然可以将票数继续委托给其它选民,即存在a—>b–>c–>d,但是,一旦将票数委托给其它选民后,自己将不再有投票的权利选民和主持人可以选择任意的提案项目进行投票代码实例pragmasolidity^0.6.1;contractballot{//选民结构structVoter{uintweight;//可以投票的数量boolisVoted;//是否已投addressdelegate;//授权给他人uintindex;//选择的提案编号}