自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 ubuntu遇到的问题

open-vm-tools 和 VMware Tools 在功能上基本相似,但 open-vm-tools 是开源的,可以在多个虚拟化平台上使用,而 VMware Tools 只能在 VMware 平台上使用。sudo apt-get install open-vm-tools-desktop //安装open-vm-tools-desktop。sudo apt-get install open-vm-tools //安装工具open-vm-tools。此时已完成root密码的设置。

2023-08-26 14:56:40 47

原创 合约漏洞--重入攻击

当然,这里还有另外一个关键的地方——call.value函数特性,当我们使用call.value()来调用代码时,执行的代码会被赋予账户所有可用的gas,这样就能保证我们的fallback函数能被顺利执行,对应的,如果我们使用transfer和send函数来发送时,代码可用的gas仅有2300而已,这点gas可能仅仅只够捕获一个event,所以也将无法进行可重入攻击,因为send本来就是transfer的底层实现,所以他两性质也差不多。

2023-08-17 09:34:37 120

原创 使用Ganache进行合约测试

这个API是用来部署合约的,contract参数传入需要部署的合约名字,args参数传入合约的构造函数需要的参数,options是一个可选参数它的值是{overwrite: true/false}, 如果 overwrite 被设置成 false, 那么当这个合约之前已经部署过了,这个deployer就不会再部署这个合约,这在当一个合约的依赖是由一个外部合约地址提供的情况下是有用的。在迁移过程中使用它调用特定合约的函数来部署新的合约,为已部署的合约做一些初始化工作等。ganache出现测试信息。

2023-08-11 20:34:58 581 1

原创 truffle简单使用

完成以上步骤后,你将会看到工程目录下有如下文件夹。NodeJS v8.9.4 或 之后的版本。truffle命令查看是否创建成功。把编译完成的合约部署到测试链中。

2023-07-28 20:36:11 71

原创 错误处理及异常

函数应该只用于测试内部错误,检查不变量,正常的函数代码永远不会产生Panic, 甚至是基于一个无效的外部输入时。语句允许我们在 Solidity 合约中捕获和处理异常,并在异常发生时执行指定的逻辑。如果条件不满足则撤销状态更改 - 用于检查由输入或者外部组件引起的错误,可以同时提供一个错误消息。如果不满足条件,则会导致Panic 错误,则撤销状态更改 - 用于检查内部错误。这样我们可以根据不同类型的错误消息执行不同的处理。块可以指定不同类型的异常,并执行相应的错误处理逻辑。这样可以处理一些无法预料的异常。

2023-07-24 10:48:57 28

原创 solidity哈希函数:keccak256

哈希函数(hash function)是一个密码学概念,它可以将任意长度的消息转换为一个固定长度的值,这个值也称作哈希(hash)。solidity最常用的哈希函数keccak256。

2023-07-22 10:18:09 525

原创 合约类型简述

递归创建依赖是指创建一个合约,而该合约又依赖于另一个合约,而后者又依赖于第三个合约,以此类推。换句话说,递归创建依赖意味着每个合约的创建都依赖于另一个待创建的合约,这种情况是不可能实现的。可以创建一个新合约。待创建合约的完整代码必须事先知道,因此递归的创建依赖是不可能的。您可以隐式地将合约转换为从他们继承的合约。),则可以调用该合约的函数。注意需要赋相同合约类型的值给它。您还可以实例化合约(即新创建一个合约对象),使用new创建合约。如果声明一个合约类型的局部变量(定义都有他自己的类型。

2023-07-20 10:17:51 41

原创 地址类型成员变量和特别函数

如果在执行过程中用光了 gas 或者因为任何原因执行失败,以太币Ether 交易会被打回,当前的合约也会在终止的同时抛出异常。是一个合约地址,它的代码(更具体来说是, 如果有receive函数, 执行 receive接受以太函数, 或者存在fallback函数,执行 Fallback回退函数函数)会跟。如果发送成功,则继续执行,如果发送失败(例如,接收地址的合约执行过程中发生了异常),则抛出异常回滚整个交易。如果在一个对合约调用中,没有其他函数与给定的函数标识符匹配fallback会被调用. 或者在没有。

2023-07-18 21:29:12 55

原创 关键字view和pure

view函数是只读函数,可以读取合约的状态,但不能修改它。pure函数是纯函数,不读取合约的状态,也不修改它。view函数可以调用其他的view函数,但不能调用pure函数。pure函数既不能调用其他的view函数,也不能调用普通的非view或pure函数。

2023-07-18 17:45:04 69

原创 错误Errors和回退revert

错误产生的数据,会通过revert操作传递给调用者,可以交由链外组件处理或在 try/catch语句中捕获它。注意,只有外部调用的错误才能被捕获。Solidity 中的错误(关键字error)提供了一种方便且省gas的方式来向用户解释为什么一个操作会失败。它可以在合约的任何地方使用,用于显式地中止函数执行并返回以及撤销对状态的更改。被触发后,当前函数的执行将立即停止,并且在调用链上的任何外部函数或合约都将收到一个异常,导致整个交易失效。error 错误名称(类型 参数名称)revent "错误信息"

2023-07-18 10:28:32 61

空空如也

空空如也

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

TA关注的人

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