数组字面量特点 1、数组字面量类似与一个常量数组,不能修改大小和长度,例如[1,2,3]2、数组字面量满足最小匹配原则,意味着[1,2,3]存储的类型为uint8,[256,2,3]存储的类型为uint16。Solidity会自动的匹配最小的能够容纳的类型3、如果要改变类型的大小,如[1,2,3]中类型为uint256,那么我们可以强制转换为[uint(1),2,3]。 代码例子如下 1234567891011121314151617181920212223242526272829303132333435 pragmasolidity^0.4.23;contractArrayLite...

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

地址 solidity语言中有账户的概念,solidity语言中有两类账户。一类是合约账户、一类是外部账户。账户都有地址。地址为160位。 定义地址 addresspublicaccount1=0x4B0897b0513fdC7C541B6d9D7E929C4e5364D2dB;addresspublicaccount2=0xCA35b7d915458EF540aDe6068dFe2F44E8fa733c; address底层以uint160存储 123456 functionchangeIt()viewpublicreturns(uint160){  retur...

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

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

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

solidity中的全局属性 block.blockhash(uintblockNumber)returns(bytes32):返回给定区块号的哈希值,只支持最近256个区块,且不包含当前区块。在版本0.4.22中弃用并被替换为。blockhash(uintblockNumber)block.coinbase(address):当前块矿工的地址。block.difficulty(uint):当前块的难度。block.gaslimit(uint):当前块的gaslimit。block.number(uint):当前区块的块号。block.timestamp(uint):当前块的Unix时间戳...

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

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

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

base58 Base58是用于Bitcoin中使用的一种独特的编码方式,主要用于产生Bitcoin的钱包地址。相比Base64,Base58不使用数字"0",字母大写"O",字母大写"I",和字母小写"l",以及"+“和”/"符号。 设计Base58主要的目的是:避免混淆。在某些字体下,数字0和字母大写O,以及字母大写I和字母小写l会非常相似。不使用"+“和”/"的原因是非字母或数字的字符串作为帐号较难被接受。没有标点符号,通常不会被从中间分行。大部分的软件支持双击选择整个字符串。 base58编码 12345678910111213141516171819202122232425...

  5mjGlyXmoOly   2023年11月13日   21   0   0 Go区块链

安装solc编译器 1 >npminstall--savesolc solc编译智能合约 12345678910111213141516171819202122232425262728293031323334353637383940 constpath=require('path');constfs=require('fs');constsolc=require('solc');//获取文件路径跨平台constfilepath=path.resolve(__dirname,'contracts','HelloWorld.sol');//打印出路径/Users/jac...

  5mjGlyXmoOly   2023年11月13日   26   0   0 Go区块链

压缩公钥 公钥一般来说是椭圆曲线上的x,y坐标拼接在一起的。压缩的公钥其实就是x的坐标。 WIF私钥产生 本文链接:&nbsp;https://dreamerjonson.com/2018/12/09/golang-39-blockchain-generateprivatekeywif/ 版权声明:&nbsp;本博客所有文章除特别声明外,均采用&nbsp;CCBY4.0CN协议&nbsp;许可协议。转载请注明出处! <!-本文包含:- <!--

  5mjGlyXmoOly   2023年11月13日   24   0   0 Go区块链

转账的3种方式 123 address.transfer()address.send()address.call.value().gas()() 转账transfer 12345678910 functiontransfer(address_address)publicpayable{&nbsp;&nbsp;_address.transfer(msg.value);}&nbsp;functiontransfer2(address_address)publicpayable{&nbsp;&nbsp;_address.transfer(101018);} 转账send ...

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

mapping mapping是一张表,存储key-value对。更准确的说,mapping是一张hash映射表,内部并没有存储真实的key值。 mapping用例 下面的案例模拟了一个登陆网站,将地址与id绑定在一起。id又与姓名绑定在一起。 123456789101112131415161718192021222324 pragmasolidity^0.4.23;contractmappingTest{&nbsp;&nbsp;uintid=0;&nbsp;mapping(address=&gt;uint)idmap;//将地址与id绑定在一起&nbsp;mapping(uint=...

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

函数的一般形式 1 function(&lt;parametertypes&gt;){public|internal|external}[pure|constant|view|payable][returns(&lt;returntypes&gt;)] 函数的作用 1、与区块链交互2、本地执行3、封装代码 带参数函数 1234567 uintpublicnum;stringpublicname;functionsetparam(uint_num,string_name)public{&nbsp;&nbsp;num&nbsp;=_num;&nbsp;&nbsp;name=_...

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

函数返回值一般形式 12345678910 function&nbsp;resValue()purepublicreturns(uint){&nbsp;&nbsp;uinta=10;&nbsp;&nbsp;returna;}function&nbsp;recieveValue()purepublicreturns(uint){&nbsp;&nbsp;uintb;&nbsp;&nbsp;b=resValue();&nbsp;&nbsp;returnb;} 函数命名返回值 12345678910111213 //1、直接赋值、不需要return返回functionresVal...

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

函数重名与函数作用域问题 1、当状态变量中已经有了一个变量a、状态变量中就不能够再有一个同名的状态变量。2、当状态变量中和函数体内部已经有了都有一个同名的函数的时候,默认处理的是函数体内部的变量。也就是说,变量的操作和其他语言一样,仍然满足就近原则。 12345678910 uintpublica=100;uintb=200;//&nbsp;uintpublica=999;&nbsp;当状态变量中已经有了一个变量a、状态变量中就不能够再有一个同名的状态变量。functionscopeTest()pure&nbsp;publicreturns(uint){&nbsp;&nbsp;uin...

  5mjGlyXmoOly   2023年11月02日   56   0   0 solidity智能合约区块链

状态变量的值拷贝问题 如下例子中,将状态变量a的值赋值给状态变量b。a与b都是以太坊虚拟机storage中不同的两个空间,所以当调用change方法修改b的值的时候,不会影响到a空间中的值。 1234567 uintpublica=100;uintpublicb=a;functionchange()public{&nbsp;&nbsp;b=999;} 函数体内部变量的值拷贝 在函数体内部,将状态变量a的值赋值给状态变量b。a与b都是以太坊虚拟机栈中不同的两个空间。所以当修改b的值的时候,不会影响到a空间中的值。 123456 functionchange2()public...

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

构造函数的作用 构造函数是特殊的函数,在部署合约的时候,就会被调用。而且只能够在此时被调用。常常用于对于某一些状态变量的初始化。 构造函数 在老版本的solidity编译器中,构造函数是和合约名字同名的 1234567891011 contract&nbsp;ontractinit{uintpublica;//无参数的构造函数functionontractinit()public{&nbsp;&nbsp;a=100;}//带参数的构造函数&nbsp;functionontractinit(uint_a,uint_b)public{&nbsp;&nbsp;a=_a;} 新版本的s...

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

函数modifire 函数modifire用于在执行函数前,执行某些初始化的操作。例如权限的判断。modifire可以起到封装的作用,简化代码的书写。 modifire的定义 添加modifire关键字,在花括号内部输入语句,并在最后加上下划线_。 1234 modifier&nbsp;函数名(){&nbsp;语句;&nbsp;&nbsp;_;} modifire使用 modifire的使用方法是,将modifer的名字加在函数修饰符与返回值之间,如下所示 12345678910111213 modifierOnlyOwner(){require(msg.senderow...

  5mjGlyXmoOly   2023年11月02日   44   0   0 区块链solidity智能合

带参modifire modifire还可以带参数,如下面的例子,模拟了游戏中的升级操作。如果玩家等级达到2级,就可以修改名字。如果玩家等级达到10级,就可以修改DNA。通过带参数的modifire实现对于代码的封装。 12345678910111213141516171819202122 pragmasolidity^0.4.23;contract&nbsp;modifiererParam{&nbsp;&nbsp;uintpubliclevel=9;&nbsp;&nbsp;stringpublicname;&nbsp;&nbsp;uintpublicDNA;&nbsp;&nbsp;...

  5mjGlyXmoOly   2023年11月02日   54   0   0 solidity智能合约区块链

继承 继承是面向对象语言的重要特征。继承是为了模拟现实中的现象,并且可以简化代码的书写。例如猫与够都属于动物。他们都继承动物的某些特征。 继承语法 当前合约继承父类合约的属性和方法。 123456789101112131415161718192021222324252627 contract&nbsp;合约名&nbsp;is&nbsp;父类合约名{}&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;继承例子下面的例子中。直接部署son合约后,son合约继承...

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

自动生成函数 public属性的状态变量会自动的生成同名的函数。如果有何其一样的函数定义,则会替换掉默认的函数。 一般类型如int、bytes32、bool类型的函数会自动的生成同名的函数。但是要注意的是,生成的函数的属性为external属性。 12345 uintpublicnum=100;自动生成的函数为:&nbsp;functionnum()externalpurereturns(uint){&nbsp;&nbsp;&nbsp;return200;&nbsp;} 动态数组与mapping类型函数会自动生成带参数的函数: 12345 mapping(uint=&gt...

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

连续继承 合约可以被连续的继承,在下面的合约中,father继承了grandfather、son继承了father。那么son也同样继承了grandfather中的状态变量和方法。 12345678910111213 contractgrandfather{&nbsp;&nbsp;uintpublic&nbsp;money=10000;&nbsp;&nbsp;functiondahan()publicpurereturns(string){&nbsp;&nbsp;&nbsp;&nbsp;return"dahan";&nbsp;&nbsp;}}contractfatherisgrand...

  5mjGlyXmoOly   2023年11月02日   41   0   0 Solidity区块链智能合约
关注 更多

空空如也 ~ ~

粉丝 更多

空空如也 ~ ~