Solidity基础
文章平均质量分 68
编程语言基础知识记录,温故而知新。
tomggo
All in web3.0
展开
-
Solidity——create和create2部署合约
部署智能合约是开发中必不可少的一个环节,常规的方式是借助像Hardhat这样的工具,通过编写ts部署脚本来实现。但在实际业务中,经常会遇到通过在合约中部署子合约的情况。比如添加Token流动池。这类需求在设计在上需要通过工厂合约来创建部署子合约来实现,它看起来就像是从一个模具厂生产的模具一样,只是每个模具的编号(子合约地址)不同。原创 2024-03-12 11:56:26 · 1080 阅读 · 1 评论 -
Solidity—— call、staticcall和delegatecall用法介绍
在一个智能合约中调用另外一个外部智能合约的函数,我们可以通过接口interface的方式进行调用。另外,还有一种比较底层的调用方法,就是使用call、staticcall和delegatecall函数。它们是一种低级、底层的调用方式,具有更大的灵活性。我们将分别进行讲解。原创 2024-01-30 16:57:09 · 1514 阅读 · 3 评论 -
solidity——默克尔树实现零成本空投
默克尔树(Merkle Tree)是一种二叉树数据结构,它使用哈希函数将大量数据块组织成树状结构,用于快速验证大型数据集的完整性。默克尔树使用哈希函数对数据块进行哈希运算。常用的哈希函数如 SHA-256,SHA-3 等。待存储的原始数据被分割成固定大小的块,每个块作为树的叶子节点,通过哈希函数生成一个哈希值。叶子节点按顺序两两配对,将它们的哈希值拼接后再次进行哈希运算,生成一个新的哈希值。这个过程一直重复,直到树的根节点生成。默克尔树的根节点是最终的哈希值,称为 Merkle 根。原创 2023-12-26 00:23:39 · 1493 阅读 · 2 评论 -
Solidity——在合约中创建合约
在链上,除了用户可以创建智能合约,智能合约同样也可以创建新的智能合约。原创 2023-12-18 23:46:15 · 619 阅读 · 0 评论 -
Solidity——storage、memory、calldata用法和区别
在Solidity中,storage和memory是用于声明和处理数据的两个关键字,它们具有不同的用途和作用域。原创 2023-10-24 22:45:02 · 693 阅读 · 1 评论 -
Solidity——关键字public、private、internal和external
在Solidity中,publicprivateinternal和external是四个不同的访问修饰符,用于限定函数或状态变量的可见性和可访问性。原创 2023-10-24 11:15:53 · 564 阅读 · 0 评论 -
Solidity——modifier关键字介绍
在Solidity中,modifier关键字用于声明修饰符,可以在函数定义时使用修饰符来添加额外的逻辑和验证规则。通过使用modifier关键字,我们可以定义各种修饰符来增强合约的功能和安全性。修饰符可以用于验证权限、检查输入参数、修改函数行为等。在函数定义时使用修饰符可以使代码更加清晰和易于维护,避免重复的验证和逻辑代码。原创 2023-10-23 22:28:29 · 190 阅读 · 0 评论 -
Solidity——library、contract、Structs和Enums区别
Library在Solidity中,librarycontractstructs和enums是不同的概念和关键字,它们在语言中具有不同的用途和特性。原创 2023-10-20 23:33:34 · 372 阅读 · 2 评论 -
Solidity——Using...For...基本用法
库函数是一组可重用的函数,它们可以被附加到不同的数据类型上以提供常用功能。这使得您可以避免在每个合约中重复编写相同的代码,从而提高了代码的可读性和维护性。在Solidity中,库函数以库的形式存在,并且可以通过指令来附加到数据类型 B 上。使用库函数并将它们附加到数据类型上是Solidity中的强大特性之一,它可以大幅提高代码的可读性和可维护性。您可以创建通用的库函数,然后在多个合约中重复使用它们,而无需重复编写相同的代码,它是对合约代码进行抽象和封装设计的一种体现。这有助于减少错误并提高智能合约的安全性。原创 2023-10-18 22:54:38 · 189 阅读 · 0 评论 -
Solidity——view和pure修饰符
在Solidity中,view和pure是两个函数修饰符,用于标识函数的特性和行为。viewview修饰符用于表示函数仅读取合约状态,不会修改任何状态变量。它是一种只读函数,用于提供数据查询和计算服务。view函数不会消耗任何Gas(燃料)并且不会修改区块链状态。它们只能调用其他view或pure函数,而不能调用普通函数。purepure修饰符表示函数既不会读取合约状态,也不会修改任何状态变量。它仅执行纯计算操作,并返回计算结果。pure函数与view函数相似,但更严格,不能读取合约状态或调用其他非纯函数。原创 2023-10-17 23:40:30 · 207 阅读 · 0 评论