草庐IT

solidity

全部标签

solidity注解标签

在solidity语言中注释符为//注解符为/*内容*/ 或者是///内容 注解中含有这几个标签给予我们使用 @title一个应该描述合约/接口的标题contract,library,interface@author作者的名字contract,library,interface@notice向终端用户解释这个东西的作用contract,library,interface,function,publicstatevariable,event@dev向开发人员解释任何额外的细节contract,library,interface,function,statevariable,event@param

solidity 引用类型修饰符memory、calldata与storage 常量修饰符Constant与Immutable区别

在solidity语言中引用类型修饰符(引用类型为存储空间不固定的数值类型)memory、calldata与storage,它们只能修饰引用类型变量,比如字符串、数组、字节等...memory适用于方法传参、返参或在方法体内使用,使用完就会清除掉,释放内存calldata仅适用于方法传参,修饰该变量的值不能修改storage仅适用于方法体内,而且它的指针必须指向链上数据。使用完,链上数据将保存最新状态 常量修饰符constant编译前已经确定,编译后不能再修改常量的值constant它不是状态变量,所以它不储存在插槽(Slot)里面,获取该常量的方法修饰必须是Pure,而不是Viewimmut

solidity注解标签

在solidity语言中注释符为//注解符为/*内容*/ 或者是///内容 注解中含有这几个标签给予我们使用 @title一个应该描述合约/接口的标题contract,library,interface@author作者的名字contract,library,interface@notice向终端用户解释这个东西的作用contract,library,interface,function,publicstatevariable,event@dev向开发人员解释任何额外的细节contract,library,interface,function,statevariable,event@param

solidity部分修饰符的使用以及合约的部分调用方法

Viewpure修饰符:使用view与pure不需要gweiview:不能修改链上数据只能访问pure:不能访问链上数据,被修饰的方法里的变量只能在方法内使用contract ViewPureExample{  uint public age;   function increaseAge() public{    age++;}   function GetViewAge() public view returns(uint){ //view修饰    //age++;//不可修改变量    return age;} function GetPureAge(uint age) public 

solidity部分修饰符的使用以及合约的部分调用方法

Viewpure修饰符:使用view与pure不需要gweiview:不能修改链上数据只能访问pure:不能访问链上数据,被修饰的方法里的变量只能在方法内使用contract ViewPureExample{  uint public age;   function increaseAge() public{    age++;}   function GetViewAge() public view returns(uint){ //view修饰    //age++;//不可修改变量    return age;} function GetPureAge(uint age) public 

solidity简单的ERC20代币实现

//SPDX-License-Identifier:GPL-3.0pragmasolidity>=0.7.0import"hardhat/console.sol";//ERC20同质化代币,每个代币的本质或性质都是相同//ETH是原生代币,它不是ERC20代币,它们两是不能协同工作。所以需要将ETH转换成WETH(ERC20)//ERC20必须实现相应的接口(规范),参见https://eips.ethereum.org/EIPS/eip-20//totalSupply代币发行总供应量,它即可以固定不变,又可以根据业务需求而改变//totalSupply代币发行总供应量是否可变,取决于合约是否

solidity简单的ERC20代币实现

//SPDX-License-Identifier:GPL-3.0pragmasolidity>=0.7.0import"hardhat/console.sol";//ERC20同质化代币,每个代币的本质或性质都是相同//ETH是原生代币,它不是ERC20代币,它们两是不能协同工作。所以需要将ETH转换成WETH(ERC20)//ERC20必须实现相应的接口(规范),参见https://eips.ethereum.org/EIPS/eip-20//totalSupply代币发行总供应量,它即可以固定不变,又可以根据业务需求而改变//totalSupply代币发行总供应量是否可变,取决于合约是否

为什么 Solidity 应该是你的第一个 Web3 语言?

即使这是一个热门问题,也没有最好的编程语言。只有最适合特定需求的语言。例如,JavaScript为Web2提供动力,而C编程语言仍然是低级系统编程的最佳语言。同样,您会发现R、Python和Java以及许多其他命令式和函数式编程语言往往提供最适合特定目的的功能。说到这一点,Web3尽管处于初期阶段,但已经采用或设计了语言来满足其需求。考虑到当前存在的区块链数量,您可以从中开始使用。Web3开发中使用的流行编程语言不仅仅是有许多区块链,而且这些平台在处理区块链三难困境时有不同的方法。这最终导致使用不同的编程语言,这些语言非常适合实现这些特定的方法。说到这里,以下是Web3开发中使用的5种流行编程

为什么 Solidity 应该是你的第一个 Web3 语言?

即使这是一个热门问题,也没有最好的编程语言。只有最适合特定需求的语言。例如,JavaScript为Web2提供动力,而C编程语言仍然是低级系统编程的最佳语言。同样,您会发现R、Python和Java以及许多其他命令式和函数式编程语言往往提供最适合特定目的的功能。说到这一点,Web3尽管处于初期阶段,但已经采用或设计了语言来满足其需求。考虑到当前存在的区块链数量,您可以从中开始使用。Web3开发中使用的流行编程语言不仅仅是有许多区块链,而且这些平台在处理区块链三难困境时有不同的方法。这最终导致使用不同的编程语言,这些语言非常适合实现这些特定的方法。说到这里,以下是Web3开发中使用的5种流行编程

Move语言安全性分析及合约审计要点之逻辑校验漏洞

1、逻辑校验漏洞智能合约开发的业务相关逻辑设计复杂,涉及的经济学计算和参数较多,不同项目和协议之间可组合性极其丰富,很难预测,非常容易出现安全漏洞。在Solidity智能合约中,我们总结了4种类型的逻辑校验漏洞:(1)未校验返回值(2)未校验相关计算数据公式(3)未校验函数参数(4)未规范使用require校验同样地,我们将从这4个方面分析Move合约中是否存在这些逻辑检验漏洞以及其可能性和危害。1.1 未校验返回值不检查消息调用的返回值,即使被调用的函数返回一个异常值,执行逻辑仍然会继续进行,只是该函数的调用并没有实现正确的逻辑,这会导致整个交易得不到正确的结果,甚至会威胁到数字资产的安全性