Solidity 中的地址(0)是什么

2024-05-11

谁能向我解释一下什么address(0)是在 Solidity 中吗?我在文档中找到了以下内容,但对我来说并没有真正意义:

如果目标账户是零账户(地址为0的账户),则交易创建一个新合约。如前所述,该合约的地址不是零地址,而是从发送方及其发送的交易数量(“随机数”)派生的地址。这种合约创建交易的有效负载被视为 EVM 字节码并被执行。此执行的输出将作为合约代码永久存储。这意味着,为了创建合约,您不需要发送合约的实际代码,而是发送返回该代码的代码。

http://solidity.readthedocs.io/en/develop/introduction-to-smart-contracts.html?highlight=address(0)#index-8 http://solidity.readthedocs.io/en/develop/introduction-to-smart-contracts.html?highlight=address(0)#index-8


在以太坊交易中,零账户只是一个特殊情况,用于指示正​​在部署新合约。它实际上是“0x0”设置为to原始交易中的字段。

每笔以太坊交易,无论是两个外部账户之间的转账、执行合约代码的请求,还是部署新合约的请求,都以相同的方式编码。原始交易对象看起来像这样:

transaction = {
  nonce: '0x0', 
  gasLimit: '0x6acfc0', // 7000000
  gasPrice: '0x4a817c800', // 20000000000
  to: '0x0',
  value: '0x0',
  data: '0xfffff'
};

If to设置为“0x0”以外的其他值,该请求将导致将以太币传输到该地址(如果value非零),并执行编码在data场地。请记住,该地址可以是合约,也可以是外部账户。

当。。。的时候to地址是零地址,将通过执行中的代码创建一个新合约data(这就是“返回代码的代码”的含义)。新创建的合约的地址在技术上是预先已知的,因为它基于发送者的地址和当前的随机数。该地址在挖矿后成为合约的正式地址。

有关以太坊交易的详细阅读,请查看此博客文章 https://medium.com/@codetractio/inside-an-ethereum-transaction-fa94ffca912f.

注:还有实际的Solidity代码语句address(0)这是类型变量的初始值address。然而,您发布的文档具体指的是to交易中的账户地址设置为“0x0”。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Solidity 中的地址(0)是什么 的相关文章

  • 如何在测试之间重置 Hardhat 的主网分叉?

    我正在使用 Hardhat 的主网分支在 Hardhat 中编写单元测试 但是一项测试的结果似乎会影响未来的测试并导致我的断言失败 我正在使用 Alchemy 和区块 14189520 进行分叉 例如 it Test 1 async fun
  • 如何从“Promise”对象获取值

    我开始学习以太坊和 web3js 并注意到 Web3js 上的一些功能是异步的 我想要实现的是获取钱包的帐户余额并将数据用于其他用途 我的代码如下 function getAccountBalance2 address var wei ba
  • 使用 truffle 测试以太坊事件日志

    我有一个合约的函数 它在每次调用时发出事件 我希望在每个通过的测试上发出一个事件 以下是一些测试 it should emit Error event when sending 5 ether function done var insur
  • Solidity、Solc 错误:无法构造包含(嵌套)映射的结构

    我正在使用由 npm 安装的 Solc 版本 0 7 0 当我尝试创建包含映射的结构时 收到错误 无法构造包含 嵌套 映射的结构 请检查代码 SPDX License Identifier MIT pragma solidity 0 7 0
  • 如何将struct从合约A传递到合约B?最佳实践

    我发现这样 当创建一个具有结构的通用接口时 然后合约A和B继承该具有结构的接口 但我想知道是否还有其他方法 是否存在可以更新具有结构的合约的情况 pragma experimental ABIEncoderV2 pragma solidit
  • 将三个整数编码为单个整数

    我必须将 3 个数字编码为同一个整数 我有这 3 个测量值 uint256 carLength uint256 carWidth uint256 carDepth 我想将这 3 个数字编码为同一个整数 并且可以解码 我的问题是我在这么低的水
  • web3.js如何搜索所有曾经创建的合约并查看地址

    我是 web3 js 和 Solidity 的新手 我的问题与我们在区块链上搜索的方式有关 如果我们知道合约地址 就很容易搜索特定合约 然而 我们如何使用最初用于创建合约的地址来查找和识别特定类型的合约 例如 我有一个合同 Contract
  • BigQuery/以太坊数据集 - 如何编写代码

    对于以太坊数据集 如果我知道特定合约的上个月交易 任何人都可以告诉我应该如何在 BigQuery 中编写 例如 如果我想知道合约地址 0x41dbecc1cdc5517c6f76f6a6e836adbee2754de3 上个月进行了多少笔交
  • 如何使用 Python 和 web3.py 调用智能合约函数

    我在以太坊测试网络上部署了一个合约 其中包含一些功能 并且它们在使用 Remix 界面时都恰好可以工作 当尝试在 Python 中使用 web3 py 调用这些函数时 我只能调用公共函数 并且该部分工作正常 问题是调用具有 限制 的函数 例
  • Solidity - 输入 JSON 描述的 Solidity 代码

    我想编译我的以太坊 HelloWorld sol 智能合约 在所有教程中 您都是这样做的 var solc require solc var compiledContract solc compile fs readFileSync Hel
  • 是否可以在 Solidity 智能合约创建上预留一个地址用于收税?

    我正在使用 Solidity 编程语言 并尝试实现一个合约 即每笔交易都会扣除税费 并且该税费应该转移到正在创建的合约的某个特定地址 那可能吗 是的 这是可能的 所有以太坊代币标准 ERC 20 ERC 721 仅定义一个接口和很少的其他点
  • 如何从外部资源将库连接到智能合约?

    pragma solidity 0 4 15 import ERC20 sol import SafeMath sol 如何连接安全数学 sol来自外部 非本地的 资源 虽然詹姆斯的答案是有效的 但我不建议从在线存储库链接合同的依赖项 这是
  • 如何使用 Solidity 和 Web.js 在以太坊区块链上保存和检索数据

    下面的代码仅返回收据 但我希望它返回一个数据元组 如下面的合同所示 我如何让它返回数据 我找不到关于如何保存和检索数据的好教程 我知道这是一个昂贵的用例 我只是想做一个基本的概念证明并同时学习 我在用着 电子邮件受保护 cdn cgi l
  • ERC721:转账调用者不是所有者也不是批准的

    我有一个 nftToken 合约 可以将代币铸造到 msg sender 然后我在市场合约中有一个函数 可以将 nft 从所有者转移到市场合约 但是 我收到一条错误消息 ERC721 转账调用者不是所有者也不是批准的 这是我的 nftCon
  • ERROR 发送和传输仅适用于应付地址类型的对象,不适用于地址

    function finalizeRequest uint index public restricted Request storage request requests index require request approvalCou
  • 在 Solidity 中初始化一个大的固定长度数组

    我正在以太坊上构建一个游戏作为我的第一个项目 但我面临着存储和天然气限制 我想在区块链上存储一个存储智能合约 以便在部署后查询 我确实需要使用手动插入的常量值来初始化固定长度数组 我的情况如下 contract A some states
  • 这个套利机器人真的能正常运行吗?

    我一直在研究创建某种形式的加密货币套利交易机器人 最近看到了以下视频 该视频展示了一个套利机器人 该机器人通过部署到币安智能链的智能合约上的单个函数调用来运行 我已经查看了合约的代码 但不确定它是否能真正发挥作用 或者它是否是一个骗局合约
  • web3.eth.sendSignedTransaction() 总是返回“返回错误:nonce 太低”

    I used 电子邮件受保护 cdn cgi l email protection在 Node js 中与私有区块链交互 我是按照官方文档写的代码 电子邮件受保护 cdn cgi l email protection var Web3 re
  • 如何监听单个地址尚未挖掘的传入交易?

    使用 OpenEthereum 哪个 json rpc 调用允许执行此操作 我找到了parity pubsub https openethereum github io JSONRPC parity pubsub module模块 但我不知
  • 通过python计算uniswap对地址

    我正在尝试计算 离线 即没有 http 请求 Uniswap 对的地址 带有 python web3 和 eth abi 库 基于this https uniswap org docs v2 smart contract integrati

随机推荐

  • Javascript 闭包与 PHP 闭包,有什么区别?

    JS 中的闭包和 PHP 中的闭包有什么区别 它们的工作方式几乎相同吗 在 PHP 中编写闭包时有什么需要注意的注意事项吗 一个区别是两者如何处理存储执行匿名函数的上下文 JavaScript var a 1 var f function
  • 覆盖 Predef 的隐式转换

    我有多个返回 java lang Integer 的方法 然后使用 Scala 的 Predef 隐式转换将其隐式转换为 Int 下面是它的编写方式there https github com scala scala blob v2 11
  • 在 SQL Server 中选择条件的值[重复]

    这个问题在这里已经有答案了 在查询选择中 我想显示字段是否满足条件的结果 想象一下我有一张名为stock 该表有一列告诉我库存中每种商品的数量 我想做的是这样的 SELECT stock name IF stock quantity lt
  • codeStyleSettings.xml 始终由 Android Studio 修改

    使用Android Studio 1 3 2 不断修改 idea codeStyleSettings xml以添加以下部分
  • 使用 Perl 分割大文本文件

    我必须将一个 1 8Tb 的大文本文件分成两部分 我只需要文件的后半部分 该文件有 n作为记录分隔符 I tried perl ne print if gt line to start from test txt gt result txt
  • onclick 调用 hide-div 函数不起作用

    我一直在与这段简单的代码作斗争 我正在尝试使用
  • Javascript:将 JSON 字符串转换为 ES6 映射或其他形式以保留键的顺序

    ES6 或后续版本 Javascript 或 TypeScript 中是否有原生 内置 方法将 JSON 字符串转换为 ES6 映射 或者可以选择要实现的自制解析器 目标是保留 JSON 字符串编码对象的键顺序 Note 我故意不使用 解析
  • 用于保护网站安全(使用 SSL)时,数字证书如何工作?

    请帮助我了解整个过程是如何进行的 据我了解 Web 浏览器包含 verisign Entrust Comodo 等证书颁发机构 CA 的根证书 但是当用户访问安全页面时到底会发生什么 Web 浏览器是否向 CA 服务器发送请求来验证证书 还
  • Scala Function.tupled 和 Function.untupled 等效于变量 arity,或者使用元组调用变量 arity 函数

    昨晚我试图围绕接受和调用通用函数做一些事情 即类型在调用站点上已知 但可能因调用站点而异 因此定义应该是跨参数通用的 例如 假设我有一个函数f A B C gt Z 其实这样的还有很多fs 我事先不知道 所以我无法确定类型或数量A B C
  • PHP 在 IIS7 上未报告任何错误

    我正在使用我们的 XAMPP 设置作为测试服务器来开发 PHP 应用程序 一旦应用程序准备好部署 我必须将其上传到客户端的服务器 问题是客户端的服务器正在运行 IIS 7 每次出现 PHP 错误时 它只会显示一个空白页面 现在 我的应用程序
  • 在 Amazon EMR 上使用 java 中的 hbase 时遇到问题

    因此 我尝试使用作为 MapReduce 步骤启动的自定义 jar 来查询 Amazon ec2 上的 hbase 集群 我的 jar 在地图函数内 我这样调用 Hbase public void map Text key BytesWri
  • 省略号列表[...]并将列表连接到自身[重复]

    这个问题在这里已经有答案了 EDIT 我在最初的例子中很粗心 当我添加列表时不会发生该行为A本身 而是当我添加一个列表时含有 list A to A本身 请参阅下面更正的示例 我试图理解省略号如何列出 那些显示为 当你有一个列表引用本身时发
  • Java-忽略字符串中的分隔符

    我有一个使用管道符号 作为分隔符的字符串 但是 字符串数据也contains管道符号 有没有办法忽略这个 Example name address age John 123 Wood Road Street London 25 因此 当我这
  • redis - 使用哈希

    我正在使用 redis 为我的 Web 应用程序实现社交流和通知系统 我是 redis 的新手 我对哈希值及其效率有一些疑问 我读过这篇很棒的文章Instagram 帖子 http instagram engineering tumblr
  • 使用 C# 将 DateTime 转换为字符串的魔术字符串

    今天我遇到了一个讨厌的错误 该任务非常简单 我所需要做的就是将 DateTime 对象转换为字符串 yyyymmdd 格式 yyyymmdd 部分在外部软件供应商的开发文档中进行了说明 因此 我方便地从他们的文件中复制了字符串并粘贴到我的代
  • 从 iframe 访问 Session 变量

    我有一个 jsp 我在其中设置了会话变量 但是 当我尝试读取另一个 jsp 中的会话变量 user 时 该变量已加载到 iframe 同一主机 服务器等 中 然后我得到 NullPointerException 如何在 iframe 中获取
  • C# - 挂钩现有 COM 对象

    假设我们有一个现有进程 或应用程序 它从 ocx 文件 例如 MyCOMLibrary ocx 调用 COM 对象 有没有办法编写一个 C 库来精确复制 ocx 文件 这样原始应用程序就可以调用您的 C 代码而不是原始 COM 对象 当然
  • 如何在 Jersey 容器中配置欢迎文件 (HTML/JSP)

    我有一个 Jersey RESTful Web 服务项目 我已经在中配置了 Jersey 容器web xml一切正常 在同一个项目中 我引入了一个 HTML 页面并包含在
  • 显示 Facebook 墙上我网站上的帖子

    我正在建立我的网站 我想做的事情如下 我想在我的网页上展示我最近在 Facebook 墙上发布的帖子 但只是我自己的帖子 不是其他人都只是我的 Here s an example of how I would like to do it 我
  • Solidity 中的地址(0)是什么

    谁能向我解释一下什么address 0 是在 Solidity 中吗 我在文档中找到了以下内容 但对我来说并没有真正意义 如果目标账户是零账户 地址为0的账户 则交易创建一个新合约 如前所述 该合约的地址不是零地址 而是从发送方及其发送的交