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 小米 华为 单反 装机 图拉丁
 
   -> 区块链 -> 智能合约语言(eDSL)—— 合约函数形式 -> 正文阅读

[区块链]智能合约语言(eDSL)—— 合约函数形式

? ? ? ?

在智能合约中,一般是需要两类函数。初始化函数——init,调用合约——invoke;

初始化函数主要作用是为了初始化当前合约的状态,一般在创建合约的时候执行一次;

调用函数是在合约初始化之后,用户用来获取或者更新合约的函数;对于获取状态的函数,其实有两种方式,

1、用户直接获取节点本地的数据库,即不上链的操作;2、用户获取状态的交易,通过共识,在链上留痕;

实现:

我们还是使用rust的过程宏,来实现;将普通函数标记为我们合约的函数;

形式:

参数与返回值

#[derive(Serialize, SchemaType)]
struct Address {
    address : AccountAddress,
}

#[derive(Serialize, SchemaType)]
struct Balance {
    balance: u64,
}

init函数格式

#[init(contract="erc20", parameter="Address", result="Balance", payable,? event)]

invoke函数格式

#[invoke(contract="erc20",name="balanceof", parameter="Address", result="Balance", payable,? event)]

属性:

这两种函数标记,使用一样的属性;只是init函数不需要重新给他设置函数名称。

contract:函数所属的合约名称;

name:函数名称,只有receive函数有;

parameter:函数的参数,一般是struct、enum类型的名称;

result:函数的返回值,一般是struct类型的名称;

payable:该函数执行时,是否可以转入代币;

event:使能函数的event功能;

通过rust的过程宏,我们就可以将rust语言进行改造,形成我们自己的智能合约语言规范,如果有新的需求你可以继续添加新的属性与功能;

  区块链 最新文章
盘点具备盈利潜力的几大加密板块,以及潜在
阅读笔记|让区块空间成为商品,打造Web3云
区块链1.0-比特币的数据结构
Team Finance被黑分析|黑客自建Token“瞒天
区块链≠绿色?波卡或成 Web3“生态环保”标
期货从入门到高深之手动交易系列D1课
以太坊基础---区块验证
进入以太坊合并的五个数字
经典同态加密算法Paillier解读 - 原理、实现
IPFS/Filecoin学习知识科普(四)
上一篇文章      下一篇文章      查看所有文章
加:2022-03-08 22:33:30  更:2022-03-08 22:33:46 
 
开发: 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 22:47:38-

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