IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 2021-07-23区块链智能合约语言solidity入门 -> 正文阅读

[区块链]2021-07-23区块链智能合约语言solidity入门

简纲

  • 区块链技术框架
  • 区块链语言学习

2. 智能合约

Solidity语言

变量声明

  • 本地
  • 状态
  • 全局

数据类型

  • bool
  • int
    • uint
    • int8
    • uint8
  • (地址类型)
    • address
    • address payable(可接受转账)
  • 定长字节组
    • bytes1
    • bytes2
    • bytes32
  • 引用
    • 结构体
    • 数组(使用习惯与平常语言区别较大)
      • 动/静态
      • 多维
    • 映射
      • (/)

储存区域
指定引用类型储存的数据区域(基础类型可以不指定)

  • memory
  • storage
  • calldata

数组操作函数


可见性
缺省值(internal)

  • public
  • private
  • internal*
  • external*

2语句

异常检测

  • require()//返回剩余gas
  • arrest()//清除所有gas
  • revert()//联合error语句
  • catch()//与 1 2使用

事件event

  • 声明
  • 触发

修饰器

modifier


函数 视图 纯函数
纯函数pure不可修改或读取状态
将函数声明为视图view不可进行状态修改

认为是修改状态的情况:

认为是读状态的情况:


回退函数

曾造成安全漏洞


ERC20标准

接口内容

1.代币的名字
function name() constant public returns (string name);
2.代币的简称,例如:HMB
function symbol() public constant returns (string symbol);
3.代币的最小分割量 token使用的小数点后几位。比如如果设置为3,就是支持0.001表示
function decimals() public constant returns (uint8 decimals);
4.token的总量
function totalSupply() public constant returns (uint totalSupply);
5.余额 返回某个地址(账户)的账户余额
function balanceOf(address _owner) public constant returns (uint balance);
6.转账 交易代币 从消息发送者账户中往_to账户转数量为_value的token,
从代币合约的调用者地址上转移 _value的数量token到的地址 _to
【注意:并且必须触发Transfer事件】

function transfer(address _to, uint _value) public returns (bool success);
7.两个地址转账
从账户_from中往账户_to转数量为_value的token,与approve方法配合使用
从地址 _from发送数量为 _value的token到地址 _to
【注意:并且必须触发Transfer事件】
transferFrom方法用于允许合约代理某人转移token。条件是from账户必须经过了approve。*/

function transferFrom(address _from, address _to, uint _value) public returns (bool success);
8.批准_spender能从合约调用账户中转出数量为_value的token
function approve(address _spender, uint _value) public returns (bool success);
9.获取_spender可以从账户_owner中转出token的剩余数量
function allowance(address _owner, address _spender) public constant returns (uint remaining);

2个事件
1.发生转账时必须要触发的事件,transfer 和 transferFrom 成功执行时必须触发的事件
event Transfer(address indexed _from, address indexed _to, uint _value);
2.当函数 approve(address _spender, uint256 _value)成功执行时必须触发的事件
event Approval(address indexed _owner, address indexed _spender, uint _value);
10.存储(映射)对账号的控制:mapping(owner => mapping(spender => amount)) allowed
第一个address表示token拥有者
第二个address表示授权的spender,即spender代理消费owner的token
第三个amout表示代理的数量

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2021-07-24 11:32:37  更:2021-07-24 11:32:51 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/25 18:48:12-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码