`

Ton基础

    博客分类:
  • Ton
 
阅读更多
tact:
一.函数:
1.extends:扩展函数,第一个参数名必须为self,调用时可省略,函数内只能使用,不能修改

2.mutates:可变扩展函数,第一个参数名必须为self,调用时可省略,函数内只能使用,可以修改

extends mutates fun(self:Int,c:Int){
let res:Int = 1;
repeat(c){
res = res * self;
}
self = res;
}

95.fun(2)

3.原生函数:native,直接绑定到func的函数,也可以可变和扩展
@name(store_uint)
native storeUint(s:Builder,value:Int,bits:Int):Builder

4.接收器函数:接收合约中的特殊消息,只能在contract和trait中定义
receive("Increment"){
selft.xx = self.xx + 1;
}

5.getter函数
get fun counter():Int {
return self.xx;
}

6.内置函数
主要有Common,Strings,Random,Math,Cells,Builders,Slices,如
fun sender:Address;
fun require(condition:Bool,error:String);
fun now():Int;
fun myBalance():Int;
fun myAddress():Address;
fun ton(value:String):Int;
fun context():Context;

二.消息
1.内部消息:从一个合约或钱包到另一个合约或钱包的消息
2.外部消息:与链下系统集成,较少遇到

一个合约可以有多个接收器函数,Slice相当于未序列化的数据流

message MyMessage{
value: Int;
}

contract MyContract{
receive(){

}
receive("message"){

}
receive(str:String){

}
receive(msg:myMessage){

}
receive(msg:Slice){

}
}

bounce:如果设置成true(默认),那么如果接收合约不存在或无法处理消息,消息将被退回给发送者

3.自定义发送:
let init:StateInit = initOf SecondContract(arg1,arg2);
send(SendParameters{
to:addr,
value:ton("1"),
mode:SendIgnoreErrors,
bounce:true,
code:init.code,//deploy时用到
date:init.data,//deploy时用到
//body:"hello".asComment()
body:SomeMessage{arg1:123,arg2:1234}.toCell()
});


3.回复消息:对传入的消息回复,并返回消息剩余的Ton
self.reply("hello".asComment())

4.回弹消息:bounce为true时,如果该消息未正确处理,发送者可以回滚补救,最多能收224bits.如果超了则建议使用Slice
contract MyContract{
bounced(src:bounced<MyMessage>){
}

bounced(src:Slice){
}
}


三.标准库
1.布合约
import "@stdlib/deploy"

contract Contract1 with Deployable{

}


2.ownable:类似eth中的ownable
import "@stdlib/ownable";
contract Contract2 with Ownable {
owner: Address;

init(owner:Address){
self.owner = owner;
}
}

3.stoppable
import "@stdlib/stoppable";

contract Contract3 with Stoppable{
owner:Address;
stopped:Bool;

init(owner:Address){
self.owner = owner;
self.stopped = false;
}
}
分享到:
评论

相关推荐

    西门子plc定时器ton与tonr有什么区别

    西门子PLC的定时器种类多样,其中TON(On Delay Timer)和TONR(Retentive On Delay Timer)是最基础的两种。尽管它们的名字中都含有“ON Delay Timer”,但它们在逻辑操作上有明显的区别,接下来将详细解释这两种...

    ton区块链func语言web3智能合约入门教程

    TON 生态系统旨在提供一个高度可扩展且安全的区块链基础设施,支持多种去中心化应用(dApps)、智能合约以及加密货币交易。该生态系统包括以下关键组件: TON Blockchain - 一个高速、安全且可扩展的区块链网络,...

    物联网数据集CIC IoT Dataset 2023和(TON-IoT)、以及网络数据集UNSW-NB15 Dataset 私聊

    该平台采用了NSX vCloud NFV来支持软件定义网络(SDN)、网络功能虚拟化(NFV)和服务编排(SO),它包含了从遥测数据集、Windows和Linux基础数据集以及网络流量数据集收集的异构数据源。 UNSW-NB15 Dataset是由...

    ton.rar_underwater_扩频通信_扩频通信水下_水下扩频_通信 TON

    总结起来,"ton.rar"中的内容可能涵盖了水下扩频通信的理论基础、仿真研究、系统设计和优化策略等多个方面。对于想要深入了解这一领域的读者,这个压缩包无疑是一个宝贵的资源库,它揭示了如何在复杂的水下环境中...

    TI-开关电源基础知识.pdf

    * 占空比(tON 和 T 之比):控制电压输出的幅值。 降压转换器: * 输入电容器(C1):使输入电压平稳。 * 输出电容器(C2):负责使输出电压平稳。 * 箝位二极管(D1):在开关开路时为电感器提供一条电流通路。 ...

    图算法的进展(Ton Kloks,王月丽)Advances in Graph Algorithms (Ton Kloks, Yue-Li Wang)

    本书《图算法的进展》由Ton Kloks和王月丽撰写,涵盖了图算法领域的一些热门主题,包括指数算法、固定参数算法以及图分解树算法等。这些主题不仅包括基础理论,还有实际应用,是计算机科学与数学的交叉研究领域的...

    数字电子技术基础-第二章--逻辑门电路基础.ppt

    输入脉冲的宽度需要大于td和tr(ton),同时大于ts和tf(toff),以确保三极管能够稳定地工作在饱和或截止状态。 三、逻辑门电路 1. 二极管逻辑门电路:利用二极管的单向导电性构建基本的逻辑门,如AND、OR等。 2. ...

    正则表达式的基础知识!

    以下是对正则表达式基础知识的详细解释: 1. **基础匹配**: - **基础匹配**:最简单的正则表达式就是你要匹配的文本本身,如"cat",可以匹配含有"cat"的字符串。 2. **句点符号(.)**: - **句点符号**:"....

    数字电子技术基础课件

    《数字电子技术基础》课程是电气工程和计算机科学等领域的重要基础课程,主要研究如何使用电子元件来实现逻辑功能。在本课程中,我们将重点关注门电路,这是数字系统的基础构建模块。 门电路,顾名思义,是能够执行...

    【精编】全国计算机二级C语言_公共基础120题详解版.pdf

    "fori=1ton,forj=1ton"则可能表示嵌套循环的结构,用于讨论算法的时间复杂度。 2. 程序控制结构:题目中出现了"if"、"goto"和"for",这些都是C语言中重要的控制结构。C语言中的条件语句(if-else)、循环语句(如...

    s7-200plc基础教程 第三章答案

    - 接通延时定时器(TON): 当输入(IN)电路接通时开始计时,当前值大于或等于设定值时,定时器状态变为1,其常开触点接通,常闭触点断开。输入电路断开时,定时器被复位,常开触点断开,常闭触点接通,当前值清零。 ...

    拓扑学初步-苏步青 ansys 基础

    ansys 基础 本书内容是从De汉anes和Euler关于多面体的研究开始,涉及到皇堡过桥、池mZ2ton周游世界、地图绘色等问题, 叙述形式不构 一格,说到那里,就界是那里。用语力求通俗,不求严密。类似趁 gA数学,但也不是...

    OMRON-功能块编程手册

    总的来说,《OMRON-功能块编程手册》是工程师掌握OMRON PLC功能块编程的必备指南,它将帮助用户从基础知识到高级应用,全面了解并熟练运用功能块编程技术,从而更高效地设计和维护工业自动化系统。

    正则表达式基础知识与常用类型

    下面将详细讲解正则表达式的基础知识和常用类型。 1.1 句点符号(.) 句点符号在正则表达式中表示任意单个字符,包括字母、数字、标点符号以及空格等。例如,"t.n" 将匹配以 "t" 开头,以 "n" 结尾,中间可以是任意...

    ISDN分层架构以及协议规范

    1. **物理层**:这是ISDN的基础层,负责在ISDN网络中的设备之间传输原始比特流。它定义了接口的电气特性、机械特性以及功能特性,包括B(Bearer,承载)通道和D(Data,数据)通道。B通道用于传输语音和高速数据,而...

    2021-2022年收藏的精品资料筏板基础底板施工方案.docx

    - **其他规范**:例如R.P.A99Version2003:Règles parasismiques algériennes等抗震设计规范、EN1990:Bases de calcul des structures等结构计算基本规则以及prEN13670:Exécution des structures en béton等混...

    我国计算机二级公共基础120题详解篇标记重点.pdf

    - “fori=1ton,forj=1tonO(n^2)”表明这是一个双重循环,它的复杂度为O(n^2),通常用于描述简单的嵌套循环问题。 #### 2. 算法基础 - “2n-1”可能是某种特定算法的复杂度或公式中的一部分。 - 在选择题标记中,“A...

    电力电子课后习题集答案解析5.doc

    【知识点详解】 1. **降压斩波电路工作原理**: 降压斩波电路是一种直流-直流...这六个知识点涵盖了降压、升压斩波电路的基本原理、工作模式、电路计算以及脉宽调制控制,是理解电力电子中直流-直流转换器的基础。

Global site tag (gtag.js) - Google Analytics