自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(21)
  • 收藏
  • 关注

原创 Solidity 智能合约间的简单调用

这里我们先创建了A合约,并且写入了两个方法,之后又创建了合约call_demo对A合约中的两个方法进行了调用;首先部署A合约,之后将A合约的地址传给call_demo,就成功实现了智能合约间的简单调用。upgrade可用于版本更新;

2023-05-18 19:34:42 329

原创 Solidity 以太坊智能合约标准-ERC721(2023版)

ERC721 定义了一种以太坊生态中不可分割的、具有唯一性的Token交互、流通的接囗规范。官网简要称为 Non-Fungible Token Standard(简称NFT标准规范),即非同质化Token(或不可替代的Token)。ERC721合约标准提供了在实现ERC721 Token 时必须要遵守的协议,要求每个ERC721标准合约需要实现ERC721接囗及ERC165接囗。

2023-05-18 18:43:54 1317

原创 Solidity 以太坊智能合约标准-ERC20(2023版)

这里的name(),symbol(),decimals()(精度)都是可选项而不是必选项;可以看到ERC20由5个function函数和2个event构成;我们需要将这些函数正之后的继承中全部实现;

2023-05-16 20:33:56 529

原创 Solidity 以太坊智能合约标准-ERC165(2023版)

ERC是Ethereum Request for Comments(以太坊征求意见提案)的缩写,代表以太坊已正式化的提案,它是由EIP(Ethereum Improvement Proposals以太坊升级提案)经过以太坊开发团队各种审议和测试后通过的一种提案,即对有用提案进行标准化,从而实现对开发者提供模版帮助以及标准限制。而其后的20\721\1155则代表提案号,ERC-20则代表第20号提案,其它提案号亦然。换句话来说,讨论一个项目, 一开始会用 EIP 提出建议, 结果与细节会定义在 ERC。

2023-05-16 18:30:09 277

原创 Solidity 智能合约基础案例——智能拍卖(2023版)

【代码】Solidity 智能合约基础案例——智能拍卖(2023版)

2023-05-16 17:54:49 635

原创 Solidity 智能合约基础案例 菠菜游戏(押大小)(2023版)

【代码】Solidity 智能合约基础案例 菠菜游戏(押大小)(2023版)

2023-05-16 17:02:26 464

原创 Solidity 智能合约基础案例——抢红包(2023版)

user:销毁时指定的受益人,如果涉及到资金问题,需要使用payable进行转换。这里有个需要注意的销毁合约的方法。

2023-05-14 16:49:15 576 2

原创 Solidity 事物控制断言与自定义函数修饰符(2023版)

一般配合断言使用,在配置业务逻辑的时候,在合约内部可能有多个条件判断,这些条件判断都会写成require或者assert。这里的自定义函数修饰符可以自定义一个标识,每次写的时候直接把这个标识拿过来直接用就可以了。...//占位符号,标识modifier的结束;

2023-05-14 15:15:04 138

原创 Solidity fallback函数和receive函数详解(2023版)

通过这两个特殊函数,我们就可以实现外部转账的功能,比如从metamask账户转账到该合约中。

2023-05-14 15:13:57 424

原创 Solidity智能合约基础案例——智能银行实现(2023版)

【代码】Solidity智能合约基础案例——智能银行实现。

2023-05-14 15:13:43 997

原创 Solidity 值传递和引用传递详解(2023版)

如果一个变量是值类型,那么当把它的值传给另一个变量时,是复制值,对新变量的操作不会影响原来的变量;如果该变量是引用类型,那么当它传值给另一个变量时,则是把该值的地址复制给新的变量。布尔类型(bool)、整型(int)、地址类型(address)、定长字节数组(bytes)、枚举类型(enums)、函数类型(function);如果一个变量是引用类型,给它赋值时可以是值,也可以是引用,这决定于该变量是Storage类型还是Memory类型。如果一个变量是值类型,给它赋值时永远是值传递!

2023-05-14 15:13:24 350

原创 Solidity 引用类型(数组,结构,映射)详解(2023版)

数组是数据类型,但更具体地说,它们是依赖于其他数据类型的数据结构。数组是指相同类型的数值组。数组有助于将这些值存储在一起,并简化迭代、排序和搜索该组中元素或子元素的过程。Solidity 提供了丰富的数组结构,可以满足不同的需求。

2023-05-13 17:27:56 498

原创 Solidity 充值,提现及转账操作(2023版)

【代码】Solidity 充值,提现及转账操作(2023版)

2023-05-13 16:42:08 977

原创 Solidity 函数原型与循环语句详解(2023版)

function是函数声明的关键字;func_name自定义函数名称,与我们习惯的函数命名规范没有区别;paramlist参数列表,可以0或多个参数,格式是:参数类型 参数名称;modifiers函数的修饰符,非常关键;returns返回值关键字,看到s应该能想到可以返回多个值;returnlist返回值类型列表;

2023-05-13 16:08:09 102

原创 Solidity 内建对象详解(2023版)

内建对象可以分为两个,分别为block和msg;

2023-05-13 15:47:48 144

原创 Solidity 基础数据类型详解(2023版)

1.1 整形整数有助于将数字存储在合约中。Solidity 提供以下两种类型的整数:有符号的整数:带符号的整数可以同时具有负值和正值。无符号整数:无符号整数只能保持正值和零。除正值和零值以外,它们也可以保持负值。对于每种类型,Solidity 都有多种类型的整数。Solidity 提供了 uint8 类型来表示8位无符号整数,并且以8的倍数表示,直到达到256。总之,可以声明32个不同的具有8的倍数的无符号整数,例如 uint8、uint16、unit24、uint256 位。

2023-05-13 15:26:01 328

原创 Solidity 接口与继承详解(2023版)

接口(interface):如果我们合约需要和区块链上其他合约会话,则需定义interface。外部合约使用函数可直接读取其中数据。也就是说interface是用于定义合约接口,无需实现接口内定义的函数。

2023-05-13 15:00:56 530

原创 Solidity 函数选择器和接口ID详解(2023版)

标准定义:一个函数调用数据的前 4 字节,指定了要调用的函数。这就是某个函数签名的 Keccak 哈希的前 4 字节(高位在左的大端序) (译注:这里的“高位在左的大端序“,指最高位字节存储在最低位地址上的一种串行化编码方式,即高位字节在左)。这种签名被定义为基础原型的规范表达,基础原型即是函数名称加上由括号括起来的参数类型列表,参数类型间由一个逗号分隔开,且没有空格。对函数进行哈希运算,得到的哈希值前4位,也可以使用selector来获取;

2023-05-13 11:30:24 434 1

原创 Solidity library库的使用详解(2023版)

库是智能合约的精简版。就像智能合约一样,我们可以在其他合约中使用库的函数。但与智能合约不同的是,库不能有任何状态变量,它们也不能继承其他合约。这个库的目的很简单,这些库位于区块链上,包含可以被其他合约使用的代码。library用于定义合约库;库合约可以被其他合约引用并使用其提供的方法;参考库:http://github.com/OpenZeppelin/openzeppelin-contracts(OpenZeppelin Contracts 是一个用于安全智能合约开发的库。

2023-05-13 11:02:34 785 1

原创 Solidity abstract关键字的使用详解(2023版)

用于定义抽象合约,供其他合约继承使用抽象合约将合约的定义与其实现脱钩,从而提供了更好的可拓展性;简化了诸如Template方法的模式,并消除了代码重复;如果未实现合约中的至少一项功能,则需要将合约标记为抽象;即使实现了所有功能,合约也可以被标记为抽象的;抽象合约不能实例化;如果合约继承自抽象合约,并且没有通过覆盖实现所有未实现的功能,则也需要将其标记为抽象;抽象合同不能覆盖未实现的函数;

2023-05-13 10:41:51 192 1

原创 Solidity 合约调试和event事件(2023版)

目前主流的定义:事件是以太坊虚拟机(EVM)日志基础设施提供的一个便利接口。当被发送事件(调用)时,会触发参数存储到交易的日志中(一种区块链上的特殊数据结构)。这些日志与合约的地址关联,并记录到区块链中。换句话来说区块链是打包一系列交易的区块组成的链条,每一个交易“收据”会包含0到多个日志记录,日志代表着智能合约所触发的事件。event相当于solidity的日志存储成本上来说,event比storage更便宜event可以被客户端程序订阅使用emit触发event事件。

2023-05-13 10:22:31 476 1

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除