区块链
Solidity 标签描述

动态字节数组转换为string 动态字节数组可以通过string(name)非常直接的转换为string类型,下面为例子: 1234567891011121314 pragmasolidity^0.4.23;contractdynamicTostring{  bytesname=newbytes(2);  functionInitName()public{    name[0]=0x6a;    name[1]=0x6f;  } &nb...

  5mjGlyXmoOly   2023年11月13日   31   0   0 Solidity区块链智能合约

官网:https://www.sublimetext.com/3,下面使用最新3134     设置字体大小和默认编码   注册码: ValildKeys —–BEGINLICENSE—– TwitterInc 200UserLicense EA7E-890007 1D77F72E390CDD934DCBA022FAF60790 61AA12C0A37081C5D03164124584D136 94D7F7D495BC8C1C527DA828560BB037 D1EDDD8CAE7B379F50C9D69DB35179EF 2FE898C48E4277A8...

  tEcohMEyDsEb   2023年11月13日   35   0   0 Soliditysublime区块链

字符串 string类型存储字符串,在solidity中使用了UTF-8格式来存储字符串。 123 stringpublicname="jonson";//6a6f6e736f6estringpublicname1="!@$%^&())";stringpublicname2="我爱你"; 字符串不能直接的获取长度和内容 下面是错误的方式 1234567 //functiongetLength()returns(uint){//  name.length;//}//functiongetName()returns(bytes1){// ...

  5mjGlyXmoOly   2023年11月13日   32   0   0 Solidity区块链智能合约

固定字节数组转动态字节数组 要将固定长度的字节数组转换为动态长度的字节数组,需要首先创建动态数组,并挨个赋值。 12345678910111213141516 pragmasolidity^0.4.23;contract fixTodynamic{   bytes6name= 0x6a6f6e736f6e;  function Todynamic()viewpublicreturns(bytes){    //returnbytes(name); &nbs...

  5mjGlyXmoOly   2023年11月13日   28   0   0 Solidity区块链智能合约

固定字节数组相互转换 固定长度字节数组之间能够进行相互转换 1234567891011121314151617181920 pragmasolidity^0.4.23;contract fixTofix{   bytes6name= 0x6a6f6e736f6e;  //bytes1:0x6a  function Tobytes1()viewpublicreturns(bytes1){    returnbytes1(name); &n...

  5mjGlyXmoOly   2023年11月13日   20   0   0 Solidity区块链智能合约

位运算 solidity中,可以对于最底层的位进行操作。由于以太坊中需要消耗gas,因此,为了节约gas、所以对于位的操作会用到比较频繁。solidity中支持多种类型的位运算操作1、位与&2、位或|3、位异或^4、位取反5、<<6、>> 数字3、4的二进制表示 数字3、4的底层表示 位与 位与 位或 位或 位异或 位异或 位取反 位取反 位左移 位左移 位右移 位右移 位运算例子 123456789101112131415161718192021222324252627282930313233 pragmas...

  5mjGlyXmoOly   2023年11月13日   31   0   0 Solidity区块链智能合约

位运算 solidity中,可以对于最底层的位进行操作。由于以太坊中需要消耗gas,因此,为了节约gas、所以对于位的操作会用到比较频繁。solidity中支持多种类型的位运算操作1、位与&2、位或|3、位异或^4、位取反5、<<6、>> 数字3、4的二进制表示 数字3、4的底层表示 位与 位与 位或 位或 位异或 位异或 位取反 位取反 位左移 位左移 位右移 位右移 位运算例子 123456789101112131415161718192021222324252627282930313233 pragmas...

  5mjGlyXmoOly   2023年11月13日   34   0   0 Solidity区块链智能合约

动态字节数组的定义 bytes变量名=newbytes(大小); 动态字节数组的属性 可以修改大小和长度 动态字节数组默认初始化为0 bytespublicname=newbytes(2);name的值一开始为0x0000 动态字节数组的赋值 1234 functionInitName() public{   name[0]=0x6a;   name[1]=0x6f; } 动态字节数组的属性 123 functiongetLength()viewpublic returns(uint...

  5mjGlyXmoOly   2023年11月13日   34   0   0 Solidity区块链智能合约

在之前,我们已经写好了一个最简单的helloworld合约,如下: 1234567891011121314151617 pragmasolidity^0.4.23;contractHelloWorld{  stringpublicname="jonson";  functiongetName()publicviewreturns(string){    returnname;  }  functionchangeName(string_name)public{&nb...

  5mjGlyXmoOly   2023年11月13日   29   0   0 Solidity区块链智能合约

pure与view代码例子 如下的一段solidity智能合约中,只要有了pure与view修饰符的函数,那么调用函数就不会消耗gas。而没有pure与view修饰的函数,如下面的change就会消耗gas。 12345678910111213141516171819 pragmasolidity^0.4.23;contractHelloWorld{  stringpublicname="jonson";  functiongetName()publicviewreturns(string){    re...

  5mjGlyXmoOly   2023年11月13日   27   0   0 Solidity区块链智能合约

整型变量 整数是现实中处理最多的单位,在solidity中的整数类型有int和uint,int类型可以存储负数,uint类型只能够存储非负数。int类型:int8,int16,int24,int32…int256uint类型:uint8,uint16,uint24,uint32…uint256 后面的数字代表的是计算机的最小存储单位:位。1个字节代表8位。类型以一个字节递增,最大到256位,也就是32个字节。intint256uintuint256 整型运算 1、加2、减3、乘4、除5、取余数6、平方 123456789101112131415161718192021222324 /...

  5mjGlyXmoOly   2023年11月13日   32   0   0 Solidity区块链智能合约

变量 存储数据的抽象单位,代表内存中的一段空间。 类型 同其他的编程语言一样,solidity中也有许多基本的类型。类型决定了存储空间的大小和解析的方式。下面列举出了solidity中基本的类型int、uint、byte、string、bool 基本类型 bool类型 这一小节中介绍基本的bool类型,bool类型只能够存储true或者false。 bool运算与运算符 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 pragmasolidity^0....

  5mjGlyXmoOly   2023年11月13日   31   0   0 Solidity区块链智能合约

数字货币 货币是用来交换、偿还债务的媒介。古代货币为金、银、贝壳等实物。现代中央银行发行的纸币等。相对于古代的一般等价物而言现在的货币本质上是由政府信用的背书。其本身并没有价值。同理、比特币与以太币本身并没有价值,但是依托于区块链网络的特性,使得其拥有货币的完美属性。包括:·便携·耐用·可分割·可识别·可替代·稀缺且难以仿冒 数字货币引入 如下是一段简单的代币代码。balanceOf映射表存储金额。构造函数,定义了初始化发行与管理者。transfer函数定义了转账操作。完成了货币存储与转移的功能。本质上,此货币就是存储在balanceOf映射表中的数字。数字本身并没有价值,只有当你认为他有...

  5mjGlyXmoOly   2023年11月13日   17   0   0 Solidity区块链智能合约

简介:上一节,我们讲过Solidity汇编语言,这个汇编语言,可以不同Solidity一起使用。这个汇编语言还可以嵌入到Solidity源码中,以内联汇编的方式使用。下面我们将从内联汇编如何使用着手,介绍其与独立使用的汇编语言的不同,最后再介绍这门汇编语言。SolidityAssembly内联汇编通常我们通过库代码,来增强语言我,实现一些精细化的控制,Solidity为我们提供了一种接近于EVM底层的语言,内联汇编,允许与Solidity结合使用。由于EVM是栈式的,所以有时定位栈比较麻烦,Solidty的内联汇编为我们提供了下述的特性,来解决手写底层代码带来的各种问题: 允许函数风格的操作...

  r5u89Y2tdVrY   2023年11月13日   34   0   0 Solidity智能合约Assembly

转账 如果在函数中涉及到以太币的转移,需要使用到payable关键词。意味着可以在调用这笔函数的消息中附带以太币。 123 functionpay()publicpayable{} this代表合约地址 this代表当前部署的合约地址 12345 function getThis()publicviewreturns(address){  returnthis;  //0x9F4c14f487B8e4E3986467c2a2aA5bDE93052666   //0x9f4c14f487b8e4...

  5mjGlyXmoOly   2023年11月13日   18   0   0 Solidity区块链智能合约

简介:在前面我们已经讲过Solidity语言的一些语法内容,在矩阵元JUICE开放平台的JIDE开发时,一定要注意LayoutinMemory和LayoutofStateVariablesinStorage,即内存变量的布局和状态变量的存储模型。内存变量的布局(LayoutinMemory) Solidity预留了3个32字节大小的槽位: 0-64:哈希方法的暂存空间(scratchspace) 64-96:当前已分配内存大小(也称空闲内存指针(freememorypointer))暂存空间可在语句之间使用(如在内联编译时使用)Solidity总是在空闲内存指针所在位置创建一个新对象,且对应...

  r5u89Y2tdVrY   2023年11月13日   47   0   0 Solidity布局变量内存

for for语句为"当型"循环结构。for语句的语法为: 123 for(表达式1;表达式2;表达式){ 语句} 说明:表达式1为循环变量赋初始值。表达式2为循环条件。表达式3为循环变量增值。 for循环打印斐波拉耶数列 123456789101112131415161718192021 pragmasolidity^0.4.23;contract forTest{  //0,1,1,2,3,5,8,13,21  uint[]publicarr=[1,1];  functiongetArr(...

  5mjGlyXmoOly   2023年11月13日   35   0   0 Solidity区块链智能合约

简介:上一节,我们讲过在JUICE平台开发智能合约的开发规范,本节我们将继续就Solidity定义的汇编语言进行更加深入的讨论。Solidity定义的汇编语言可以达到下述的目标:1.使用它编写的代码要可读,即使代码是从Solidity编译得到的。2.从汇编语言转为字节码应该尽可能的少坑。3.控制流应该容易检测来帮助进行形式验证与优化。为了达到第一条和最后一条的目标,Solidity汇编语言提供了高层级的组件比如,for循环,switch语句和函数调用。这样的话,可以不直接使用SWAP,DUP,JUMP,JUMPI语句,因为前两个有混淆的数据流,后两个有混淆的控制流。此外,函数形式的语句如mul...

  r5u89Y2tdVrY   2023年11月13日   30   0   0 Solidity智能合约

动态二维数组定义 uint[][]publicgrade=[[60,80],[40,20],[50,50]]; 获取长度 123456789 functiongetLength()viewpublicreturns(uint){  returngrade.length;} functiongetLength2()viewpublicreturns(uint){  returngrade[0].length;} 修改长度 12345678910111213141516 functionchangeLength()public...

  5mjGlyXmoOly   2023年11月13日   26   0   0 Solidity区块链智能合约

简介:上面介绍的在Solidity中嵌入的内联汇编语言也可以单独使用。实际上,它是被计划用来作为编译器的一种中间语言。本文我们将介绍开发智能合约过程中Solidity语言的开发规范和开发流程。 Solidity作为编译器的一种中间语言。在开发智能合约时需要遵守相应的开发规范和开发流程。 开发规范命名规范目录和文件 目录使用小写,请勿使用特殊符号; 库文件和合约文件统一以.sol为后缀; 合约文件名保持与合约名一致; 文件名采用驼峰命名(首字母大写); 合约、库文件命名 合约名采用驼峰命名(首字符大写),例如:UserManager、ActionManager; 方法的命名使用驼峰法(首字...