- 博客(21)
- 收藏
- 关注
原创 Solidity 智能合约间的简单调用
这里我们先创建了A合约,并且写入了两个方法,之后又创建了合约call_demo对A合约中的两个方法进行了调用;首先部署A合约,之后将A合约的地址传给call_demo,就成功实现了智能合约间的简单调用。upgrade可用于版本更新;
2023-05-18 19:34:42
394
1
原创 Solidity 以太坊智能合约标准-ERC721(2023版)
ERC721 定义了一种以太坊生态中不可分割的、具有唯一性的Token交互、流通的接囗规范。官网简要称为 Non-Fungible Token Standard(简称NFT标准规范),即非同质化Token(或不可替代的Token)。ERC721合约标准提供了在实现ERC721 Token 时必须要遵守的协议,要求每个ERC721标准合约需要实现ERC721接囗及ERC165接囗。
2023-05-18 18:43:54
1511
原创 Solidity 以太坊智能合约标准-ERC20(2023版)
这里的name(),symbol(),decimals()(精度)都是可选项而不是必选项;可以看到ERC20由5个function函数和2个event构成;我们需要将这些函数正之后的继承中全部实现;
2023-05-16 20:33:56
619
原创 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
338
原创 Solidity 智能合约基础案例 菠菜游戏(押大小)(2023版)
【代码】Solidity 智能合约基础案例 菠菜游戏(押大小)(2023版)
2023-05-16 17:02:26
544
原创 Solidity 智能合约基础案例——抢红包(2023版)
user:销毁时指定的受益人,如果涉及到资金问题,需要使用payable进行转换。这里有个需要注意的销毁合约的方法。
2023-05-14 16:49:15
686
2
原创 Solidity 事物控制断言与自定义函数修饰符(2023版)
一般配合断言使用,在配置业务逻辑的时候,在合约内部可能有多个条件判断,这些条件判断都会写成require或者assert。这里的自定义函数修饰符可以自定义一个标识,每次写的时候直接把这个标识拿过来直接用就可以了。...//占位符号,标识modifier的结束;
2023-05-14 15:15:04
183
原创 Solidity fallback函数和receive函数详解(2023版)
通过这两个特殊函数,我们就可以实现外部转账的功能,比如从metamask账户转账到该合约中。
2023-05-14 15:13:57
532
原创 Solidity 值传递和引用传递详解(2023版)
如果一个变量是值类型,那么当把它的值传给另一个变量时,是复制值,对新变量的操作不会影响原来的变量;如果该变量是引用类型,那么当它传值给另一个变量时,则是把该值的地址复制给新的变量。布尔类型(bool)、整型(int)、地址类型(address)、定长字节数组(bytes)、枚举类型(enums)、函数类型(function);如果一个变量是引用类型,给它赋值时可以是值,也可以是引用,这决定于该变量是Storage类型还是Memory类型。如果一个变量是值类型,给它赋值时永远是值传递!
2023-05-14 15:13:24
505
原创 Solidity 引用类型(数组,结构,映射)详解(2023版)
数组是数据类型,但更具体地说,它们是依赖于其他数据类型的数据结构。数组是指相同类型的数值组。数组有助于将这些值存储在一起,并简化迭代、排序和搜索该组中元素或子元素的过程。Solidity 提供了丰富的数组结构,可以满足不同的需求。
2023-05-13 17:27:56
568
原创 Solidity 函数原型与循环语句详解(2023版)
function是函数声明的关键字;func_name自定义函数名称,与我们习惯的函数命名规范没有区别;paramlist参数列表,可以0或多个参数,格式是:参数类型 参数名称;modifiers函数的修饰符,非常关键;returns返回值关键字,看到s应该能想到可以返回多个值;returnlist返回值类型列表;
2023-05-13 16:08:09
149
原创 Solidity 基础数据类型详解(2023版)
1.1 整形整数有助于将数字存储在合约中。Solidity 提供以下两种类型的整数:有符号的整数:带符号的整数可以同时具有负值和正值。无符号整数:无符号整数只能保持正值和零。除正值和零值以外,它们也可以保持负值。对于每种类型,Solidity 都有多种类型的整数。Solidity 提供了 uint8 类型来表示8位无符号整数,并且以8的倍数表示,直到达到256。总之,可以声明32个不同的具有8的倍数的无符号整数,例如 uint8、uint16、unit24、uint256 位。
2023-05-13 15:26:01
417
原创 Solidity 接口与继承详解(2023版)
接口(interface):如果我们合约需要和区块链上其他合约会话,则需定义interface。外部合约使用函数可直接读取其中数据。也就是说interface是用于定义合约接口,无需实现接口内定义的函数。
2023-05-13 15:00:56
701
原创 Solidity 函数选择器和接口ID详解(2023版)
标准定义:一个函数调用数据的前 4 字节,指定了要调用的函数。这就是某个函数签名的 Keccak 哈希的前 4 字节(高位在左的大端序) (译注:这里的“高位在左的大端序“,指最高位字节存储在最低位地址上的一种串行化编码方式,即高位字节在左)。这种签名被定义为基础原型的规范表达,基础原型即是函数名称加上由括号括起来的参数类型列表,参数类型间由一个逗号分隔开,且没有空格。对函数进行哈希运算,得到的哈希值前4位,也可以使用selector来获取;
2023-05-13 11:30:24
548
1
原创 Solidity library库的使用详解(2023版)
库是智能合约的精简版。就像智能合约一样,我们可以在其他合约中使用库的函数。但与智能合约不同的是,库不能有任何状态变量,它们也不能继承其他合约。这个库的目的很简单,这些库位于区块链上,包含可以被其他合约使用的代码。library用于定义合约库;库合约可以被其他合约引用并使用其提供的方法;参考库:http://github.com/OpenZeppelin/openzeppelin-contracts(OpenZeppelin Contracts 是一个用于安全智能合约开发的库。
2023-05-13 11:02:34
1010
1
原创 Solidity abstract关键字的使用详解(2023版)
用于定义抽象合约,供其他合约继承使用抽象合约将合约的定义与其实现脱钩,从而提供了更好的可拓展性;简化了诸如Template方法的模式,并消除了代码重复;如果未实现合约中的至少一项功能,则需要将合约标记为抽象;即使实现了所有功能,合约也可以被标记为抽象的;抽象合约不能实例化;如果合约继承自抽象合约,并且没有通过覆盖实现所有未实现的功能,则也需要将其标记为抽象;抽象合同不能覆盖未实现的函数;
2023-05-13 10:41:51
259
1
原创 Solidity 合约调试和event事件(2023版)
目前主流的定义:事件是以太坊虚拟机(EVM)日志基础设施提供的一个便利接口。当被发送事件(调用)时,会触发参数存储到交易的日志中(一种区块链上的特殊数据结构)。这些日志与合约的地址关联,并记录到区块链中。换句话来说区块链是打包一系列交易的区块组成的链条,每一个交易“收据”会包含0到多个日志记录,日志代表着智能合约所触发的事件。event相当于solidity的日志存储成本上来说,event比storage更便宜event可以被客户端程序订阅使用emit触发event事件。
2023-05-13 10:22:31
577
1
空空如也
为什么启动geth后,personal模块没有启动
2023-04-08
TA创建的收藏夹 TA关注的收藏夹
TA关注的人