- 浏览: 761423 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (1045)
- 数据结构 (36)
- UML与设计模式 (42)
- c++ (87)
- rust (36)
- Qt (41)
- boost模板元编程 (43)
- Linux (77)
- 汇编 (4)
- 其它 (2)
- 烹饪 (3)
- unix c / socket (73)
- 软件工程 (4)
- shell (53)
- Python (37)
- c++ primer 5th(c++11) (22)
- 数据库/MySQL (27)
- 数据存储 (4)
- lisp (7)
- git (4)
- Utility (3)
- CDN与DNS (54)
- Http (53)
- php (7)
- nginx/lua/openresty (41)
- redis (11)
- TCP/IP (16)
- 互联网 (6)
- kernel (2)
- go (34)
- 区块链 (43)
- 比特股 (13)
- 以太坊 (23)
- 比特币 (23)
- 密码学 (10)
- EOS (53)
- DAG (1)
- docker (1)
- filecoin (7)
- solidity (65)
- ipfs (8)
- 零知识证明 (1)
- openzeppelin (3)
- java (1)
- defi (7)
- Ton (0)
最新评论
// contracts/Box.sol // SPDX-License-Identifier: MIT pragma solidity ^0.8.0; import "@openzeppelin/contracts/utils/Address.sol"; import "hardhat/console.sol"; contract MyTestContract { function foo(uint i) view external { console.log("foo",i); } function testContract() external{ console.log("test is contract:"); console.logBool(Address.isContract(msg.sender)); } } contract TestAddress { using Address for address; //在构造函数中让另一个合约去判断msg.sender是否是合约会失败,因为构造的时候 constructor(){ MyTestContract f = new MyTestContract(); f.testContract(); } function testAddress(address addr) external { Address.functionCall(addr, abi.encodeWithSignature("foo(uint256)",1), "foo call reverted"); } function testContract() external{ MyTestContract f = new MyTestContract(); console.logBool(Address.isContract(address(f))); } }
const { ethers } = require("hardhat") contractName = "TestAddress"; contractName2 = "MyTestContract"; describe(contractName, function () { it("test ", async function () { const Contract2 = await ethers.getContractFactory(contractName2); const contract2 = await Contract2.deploy(); const Contract = await ethers.getContractFactory(contractName); const contract = await Contract.deploy(); await contract.testAddress(contract2.address); await contract.testContract(); }); });
TestAddress
false
foo 1
true
发表评论
-
TypeError:ethers_1.getAddress
2024-04-29 10:45 236package.json 添加:"@nomicfou ... -
solidity
2023-02-25 14:23 12一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
solidity
2023-02-25 14:23 11一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
solidity
2023-02-25 14:23 243一.solidity 1.EVM 不是基于寄存器的,而是基于栈 ... -
Address
2023-02-23 10:54 5// contracts/Box.sol // SPDX ... -
Beacon
2023-02-20 11:45 219Beacon a.Implementation地址并不存放在P ... -
UUPS
2023-02-17 16:16 251a.Proxy直接把所有的请求都通过delegatecall丢 ... -
Transparent
2023-02-16 15:44 203Transparent: a.如果Proxy合约发现自己被Pr ... -
string转bytes
2023-02-16 11:04 277const data = Buffer.from(''); ... -
hardhat命令
2023-02-13 09:58 3311.前置准备,运行一个新项目 mkdir my-project ... -
multicall
2023-01-31 20:11 198multicall的solidity调用与ethers.js调 ... -
检查是否是721
2023-01-31 15:18 153// SPDX-License-Identifier: M ... -
EVM操作码
2023-01-25 10:33 2902.栈和内存操作码 2.1 POP:取出栈顶元素 2.2 PU ... -
计算合约地址
2023-01-19 11:27 242EVM会根据发送者地址和nonce经过RLP编码后再进行kec ... -
标准修饰符
2023-01-18 17:03 1541.internal:类似c++中的protected,通过J ... -
ABI编码函数
2023-01-17 10:40 3011. abi.encode()returns(bytes):对 ... -
数据位置
2023-01-17 10:24 1751.函数参数包括返回的参数默认是memory 2.局部变量默认 ... -
随机数
2023-01-17 10:06 193https://www.paradigm.xyz/2023/0 ... -
extcodesize
2023-01-16 11:16 281extcodesize取出的byte code长度,若长度大于 ... -
Elevator
2023-01-13 10:48 203Elevator.sol // SPDX-License- ...
相关推荐
import inet.ipaddr.IPAddressString; import inet.ipaddr.ipv6.IPv6Address; import org.tinyradius.util.RadiusException; tinyradius-java 所需库 IPAddress-master.zip\IPAddress-master\IPAddress\dist\IP...
### Access Violation at Address 00000000 - 解决方法 在软件开发与维护过程中,遇到“Access violation at address 00000000.Read of adress 00000000”这类错误是常见的问题之一。这种类型的错误通常发生在程序...
### Access Violation at Address 故障的解决方法 #### 一、引言 在使用Windows 7操作系统的过程中,用户可能会遇到“Access violation at address”这一类错误提示。这类错误通常出现在使用某些特定软件或应用...
Download from your IP address is not allowed 百度网盘永久连接: QT下载: qt-opensource-linux-x64-5.8.0.run: 链接:https://pan.baidu.com/s/1sQ3tqPaWdDnmhBYAc_XR7g qt-opensource-linux-x64-5.13.1....
% >> rtw.asap2SetAddress('model.a2l', 'model.elf'); % % 2) Using DWARF debug information file to update ECU addresses % >> !readelf -wi model.elf > model_debug.dwarf; % >> rtw.asap2SetAddress('model....
《网卡物理地址管理——Change MAC Address V2.6.0.82 汉化绿色版详解》 在IT领域,网络通信是至关重要的,而每个网络设备都有一个独特的标识,那就是MAC(Media Access Control)地址,也被称为网卡物理地址。在...
在IT行业中,IP Address Control是一种常见的工具或组件,主要用于管理和控制网络设备的IP地址分配,以确保网络资源的有效利用和安全。在这个特定的实例中,我们聚焦于在VC++(Visual C++)环境下如何有效使用IP ...
### Linux下Socket编程的端口问题 (Bind(): Address already in use) #### 一、问题背景与常见场景 在进行Linux下的网络编程时,经常会遇到端口绑定失败的问题,尤其是在使用`bind()`函数尝试绑定端口时,可能会...
总结来说,"IP Address控件编辑IP地址.rar"压缩包提供了在VC++6.0环境中使用IP Address控件的实例,帮助开发者了解如何在对话框中添加和控制IP Address控件,以及如何与之交互以满足网络通信编程的需求。通过学习和...
`IP Address`控件就是为此目的设计的,它允许用户以直观且易于理解的四段式(如192.168.1.1)方式输入IP地址。在本文中,我们将深入探讨如何在VC++中使用`IP Address`控件来编辑IP地址,并介绍相关的编程技术。 ...
《Exchange全球地址导出工具AddressMagic深度解析》 在企业级通信系统中,Microsoft Exchange Server作为一款强大的邮件服务器,为企业提供了高效、安全的邮件管理方案。然而,与之配套的Outlook客户端虽然功能强大...
TMAC Technitium MAC Address Changer是一款强大的网络配置工具,专为用户提供了便捷的MAC地址修改功能。MAC(Media Access Control)地址,也被称为物理地址,是设备在网络上的唯一标识,通常由网络适配器(如无线...
《jQuery.address.js插件详解与应用实践》 jQuery.address.js是一款强大的URL地址管理插件,由Asual公司开发,主要用于实现页面内的锚点链接、页面无刷新跳转以及历史记录管理等功能。它使得Web应用程序在不刷新...
在USB枚举过程中,SetAddress操作是一个关键步骤,它负责给USB设备分配一个独一无二的地址,以便主机识别和管理。 本文讨论了在USB枚举时遇到的一个具体问题——在SetAddress之后设备没有响应,导致枚举失败。这种...
"Advanced IP Address Calculator"是一款专为此目的设计的强大工具,它允许用户根据子网数量和计算机数量进行精确的网络规划。 首先,我们需要理解IP地址的基本概念。IP地址(Internet Protocol Address)是互联网...
《Address Magic Personal Edition 2.7.0:高效管理邮件地址的利器》 在信息化高度发展的今天,电子邮件已经成为人们日常沟通的重要工具。然而,随着联系人数量的增多,管理大量的邮件地址变得日益繁杂。此时,一款...
Nacos Address Server是一款重要的组件,它是阿里巴巴开源的分布式服务治理平台Nacos的核心组成部分。Nacos主要用于提供服务发现、配置管理和服务管理等功能,广泛应用于微服务架构中。在1.1.0版本中,Nacos Address...
在提供的压缩包文件"StartAddress"中,可能包含了一个示例项目或代码片段,演示了如何在VS2008环境中实现这个功能。你可以解压文件并查看源码,以更深入地理解这个过程。通过实践和学习这个示例,你可以更好地掌握...
** Ripple Address Codec:前端开发中的XRP地址处理库** 在区块链技术中,Ripple(XRP)是一种流行的数字货币,其地址是由特定的编码规则生成的。`ripple-address-codec`是一个专门为前端开发者设计的开源库,它...