![](https://img-blog.csdnimg.cn/763b449a50cf49bdaa2fac4aa2ea27d5.png?x-oss-process=image/resize,m_fixed,h_224,w_224)
Solidity
文章平均质量分 75
对于Ethereum and Solidity的学习记录
Chan_gx
这个作者很懒,什么都没留下…
展开
-
web3.js与solidity的交互
目录web3.js介绍web3.js环境搭建Web3 Provider(Web3的提供者)节点Infura-节点提供者Metamask使用 Metamask 的 web3 提供者合约地址合约 ABI实例化Web3.js调用合约函数callsend使用call获取数据的例子获取metamask用户地址前端遍历持有代币展示元素使用send修改数据使用send调用要花费gas的方法使用send调用 Payable 函数监听事件使用 indexed查询过去的事件Web3.js 事件 和 MetaMaskweb3.原创 2022-03-11 17:42:39 · 1692 阅读 · 0 评论 -
solidity修饰符、节省gas技巧
目录一、智能合约的永固性二、OpenZeppelin库的Ownable合约一、智能合约的永固性在你把智能协议传上以太坊之后,它就变得不可更改, 这种永固性意味着你的代码永远不能被调整或更新。你编译的程序会一直,永久的,不可更改的,存在以太坊上。这就是 Solidity 代码的安全性如此重要的一个原因。如果你的智能协议有任何漏洞,即使你发现了也无法补救。你只能让你的用户们放弃这个智能协议,然后转移到一个新的修复后的合约上。但这恰好也是智能合约的一大优势。代码说明一切。如果你去读智能合约的代码,并验证它原创 2022-03-08 10:39:50 · 1051 阅读 · 0 评论 -
solidity函数修饰符概览
概览本文用于记录目前接触到的函数修饰符。可见性修饰符决定函数何时和被谁调用。private :只能被合约内部调用;internal :只能被合约内部调用或者被继承的合约调用;public :可以在任何地方调用,不管是内部还是外部;external:只能从合约外部调用;状态修饰符用来表示函数如何和区块链交互。view :运行这个函数不会更改和保存任何数据;pure :运行这个函数不仅不会往区块链写数据,甚至不从区块链读取数据;这两种在被合约外部调用的时候都不花费任何gas原创 2022-03-08 10:39:23 · 9756 阅读 · 0 评论 -
二、ABI是什么、Solidity编译后产生的2种文件
在 Ethereum 智能合约能够被别人使用前,必须先被部署到区块链上。从智能合约的代码到使用智能合约,大概包含几个步骤:编写智能合约的代码(通常是用 Solidity 写) 编译智能合约的代码变成可在 EVM 上执行的 bytecode(binary code)。同时能够经过编译取得智能合约的 ABI 部署智能合约,其实是把 bytecode 存储在链上(经过一个transaction),并取得一个专属于这个合约的地址。 若是要写个程序调用这个智能合约,就要把信息发送到这个合约的地址...原创 2021-11-15 03:05:59 · 8256 阅读 · 0 评论 -
Solidity基础语法、关键字
一、版本指令:pragma solidity ^x.x.xx;pragma solidity >=0.5.0 <0.6.0;//在本示例的范围内,我们希望能够使用0.5.0(包括)到 0.6.0(不包括)范围内的任何编译器版本来编译我们的智能合约。所有 Solidity 源代码都应该以“版本编译指示”开头——该代码应该使用的 Solidity 编译器版本的声明。这是为了防止未来编译器版本的问题可能会引入会破坏您的代码的更改。总而言之,这是一个基本的起始合同——每次开始一个新项目时你要写原创 2022-03-03 15:03:11 · 13858 阅读 · 1 评论 -
一、以太坊单笔交易字段含义
消费者可以通过Metamask、mist浏览器实现与以太坊的交互,而开发者可以通过web3js工具库实现以太坊的交互。单比交易需要的字段:nonce: 定义官方文档对于nonce的说明:nonce: QUANTITY - (optional) Integer of a nonce. This allows to overwrite your own pending transactions that use the same nonce. 2.个人定义:每发起一笔...原创 2021-11-14 06:34:53 · 9317 阅读 · 0 评论