当前位置: 首页 > news >正文

花钱做的网站本人可以关闭吗厦门市建设局网站摇号

花钱做的网站本人可以关闭吗,厦门市建设局网站摇号,苏州万户网络,企业网络推广制作文章目录 Solidity智能合约事件(event)什么是event事件event有什么作用日志内容位于区块链的什么地方#xff1f;【重要】以太坊交易获取如何在 Solidity 中使用事件#xff1f;参考 Solidity智能合约事件(event) 什么是event EVM有一个日志功能#xff0c;用于将数据“写… 文章目录 Solidity智能合约事件(event)什么是event事件event有什么作用日志内容位于区块链的什么地方【重要】以太坊交易获取如何在 Solidity 中使用事件参考 Solidity智能合约事件(event) 什么是event EVM有一个日志功能用于将数据“写”到智能合约之外的数据结构中。其中一个重要的数据是Solidity事件。事件允许我们“打印”在区块链上的信息这种方式比在智能合约中保存到公共存储变量更容易搜索且更省gas费。 当被发送事件调用时会触发参数存储到交易的日志中一种区块链上的特殊数据结构。这些日志与合约的地址关联并记录到区块链中. Solidity event在更通用的以太坊和 EVM 中称为logsSolidity中的事件event是EVM上日志的抽象。日志是指事件保存在区块链上的数据。事件强调操作行为日志强调存储内容。 以太坊中的Events和Logs基本上算是同一个概念。Solidity和web3.js中称为Events以太坊黄皮书中称为Logs。可以理解为以太坊通过Logs实现Events事件功能。智能合约代码通过LOG 将日志写入区块链中。 事件event有什么作用 事件Event的作用的可以总结为以下几点 异步获取执行结果和前端交互 我们可以通过监听event来做到及时更新前端显示存储合约数据相比storage要便宜很多storage存储的大概价格为每32字节需要消耗20000Gas而日志存储价格大概为每字节8Gas) 事件有 3 中主要的使用场景 智能合约给用户的返回值异常触发更便宜的数据存储 日志内容位于区块链的什么地方 日志内容是交易收据Transaction Receipts的一部分整个日志内容包括Receipts的其它内容会生成一个ReceiptsRoot存储在区块的头部。而完整数据则是链下存储。 【重要】以太坊交易获取 以太坊交易信息及event、input、logs、topics等概念机制 参考URL: https://learnblockchain.cn/article/3274 当上述事件在合约中调用后我们通过其交易hash获取交易信息。从以太坊得到一条交易信息的方式有两种 eth_getTransactionByHash 返回指定交易对应的交易信息eth_getTransactionReceipt 返回指定交易对应的收据信息 eth_getTransactionByHash 返回的具体信息如下 {jsonrpc: 2.0,id: 1,result: {blockHash: 0xb0d0e3b6c5e59b7b3e7e16701f6d6cb0c3c93487415b03839e88b3f7a241c528,blockNumber: 0xd19505,from: 0xb8262c6a2dcabd92a77df1d5bd074afd07fc5829,gas: 0x10e3d,gasPrice: 0x274daee580,maxFeePerGas: 0x2d48ddd9f1,maxPriorityFeePerGas: 0x6ccc91d0,hash: 0xae2a33da8396a6bc40e874b0f32b9967113a3dbf071ab1290c44c62d86873d36,input: 0xa9059cbb000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7000000000000000000000000000000000000000000000000000000016512c902,nonce: 0x14,to: 0xdac17f958d2ee523a2206206994597c13d831ec7,transactionIndex: 0x71,value: 0x0,type: 0x2,accessList: [],chainId: 0x1,v: 0x1,r: 0xa1d7455286525df11602aab34e9e8ab21b092e2c7853a0d6beca0dfb2a78b2e8,s: 0x75a485b8c378173a829b27a2e55312311fdb33c68ae65f4c74e5f9cc0a748e0d} }eth_getTransactionReceipt {jsonrpc: 2.0,id: 1,result: {blockHash: 0xb0d0e3b6c5e59b7b3e7e16701f6d6cb0c3c93487415b03839e88b3f7a241c528,blockNumber: 0xd19505,contractAddress: null,cumulativeGasUsed: 0x6c847e,effectiveGasPrice: 0x274daee580,from: 0xb8262c6a2dcabd92a77df1d5bd074afd07fc5829,gasUsed: 0xa169,logs: [{address: 0xdac17f958d2ee523a2206206994597c13d831ec7,topics: [0xddf252ad1be2c89b69c2b068fc378daa952ba7f163c4a11628f55a4df523b3ef,0x000000000000000000000000b8262c6a2dcabd92a77df1d5bd074afd07fc5829,0x000000000000000000000000dac17f958d2ee523a2206206994597c13d831ec7],data: 0x000000000000000000000000000000000000000000000000000000016512c902,blockNumber: 0xd19505,transactionHash: 0xae2a33da8396a6bc40e874b0f32b9967113a3dbf071ab1290c44c62d86873d36,transactionIndex: 0x71,blockHash: 0xb0d0e3b6c5e59b7b3e7e16701f6d6cb0c3c93487415b03839e88b3f7a241c528,logIndex: 0xa0,removed: false}],logsBloom: 0x00000000000000000000000000000000000000000000000000000000000800000000000000000000000000000000010000000000000000000000000000000000000000000000000000000008000000000080000000000000000000000000000000000000000000000000000000000000000000200000000000000010000000000000000000000000000000000000000000000000000000000000000000100000000000000000000000000080000000000000000000000000000000000000004000000002000000000000000000000000000000020000000000000000000000000000000000000000000000000000000000000000000000000000000000000200,status: 0x1,to: 0xdac17f958d2ee523a2206206994597c13d831ec7,transactionHash: 0xae2a33da8396a6bc40e874b0f32b9967113a3dbf071ab1290c44c62d86873d36,transactionIndex: 0x71,type: 0x2} }不同于比特币以太坊作为智能合约平台。每一笔交易作为消息在以太坊虚拟机中执行时均会获得一个交易回执信息(Receipt)。 getTransaction返回结果中包含input而getTransactionReceipts返回结果中包含logs。 如何在 Solidity 中使用事件 solidity中使用关键字event来定义事件其中参数列表就是需要保存到区块链上的数据。 在 solidity 中如何定义事件 事件在函数外部定义事件名必须和函数名称有所区分事件名称必须是大写为了减少混淆事件名称至少得 2 个字母和函数名称不一样 事件的声明由event关键字开头然后跟事件名称括号里面写好事件需要记录的变量类型和变量名。以ERC20代币合约的Transfer事件为例 event Transfer(address indexed from, address indexed to, uint256 value);在这个事件中有两种参数有索引的和无索引的。索引参数也被称为“主题”是事件中的可搜索参数。 每个事件最多有3个带indexed的变量Transfer事件共记录了3个变量fromto和value分别对应代币的转账地址接收地址和转账数量。同时from和to前面带着indexed关键字表示很重要程序可以轻松的筛选出特定转账地址和接收地址的转账事件。 一个事件可以分解为 Address地址发出事件的合约或账户的地址。 当前交易被调用的合约地址Topics主题事件的索引参数。Data数据事件的非索引参数的ABI编码或“哈希”。由于我们知道合约的ABI因为我们在Etherscan上验证了合约我们可以在“Dec”或“Decoded”模式下查看它或者在其原始的“hex”、“Hexidecimal”或 “Encoded”模式下查看。如果我们没有验证过合约我们就无法看到解码的版本。 如何来使用事件 在函数内部通过 emit 关键词后面跟上事件的名称和事件所需的参数(如果有的话)。 如果函数会触发事件则不能将其定义为view或pure。这是因为触发事件会将数据写入区块链到日志中。 匿名事件 在 solidity 中事件可以是匿名的。默认情况下所有的事件都会有一个主题,来自定义时候的函数名称。使用 anonymous 来记录一个没有主题的事件。匿名事件也会成为 ABI 的一部分。 event Message(address _recipient,string _message ) anonymous;如果事件声明为anonymous在合约 ABI 中事件的anonymous字段将标记为true。 匿名事件的使用成本更低。但是匿名事件不能通过名称去筛选只能通过合约地址。 参考 web3.js与智能合约交互监听合约事件 参考URL: https://www.b2bchain.cn/8083.html web3j开发以太坊过滤器(filter)和智能合约事件(event) 参考URL: https://blog.csdn.net/rejames/article/details/81294638 智能合约Solidity教程-事件和日志一 参考URL: https://blog.csdn.net/weixin_34252090/article/details/88720360 [强烈推荐写的很详细]以太坊交易信息及event、input、logs、topics等概念机制 参考URL: https://learnblockchain.cn/article/3274
http://www.hkea.cn/news/14504860/

相关文章:

  • 亿玛酷网站建设wordpress阅读主题
  • 上海健康证查询网址搜索引擎优化怎么做的
  • 学ui可以做网站么网站功能建设与栏目划分
  • 西安公司网站建设域名抢注网站是怎么
  • 做网站用什么代码搭建网站费用
  • 电商网站建设前的市场分析内容wordpress文件执行顺序
  • 网站后台上传图片 不可用iframe网站后台模板
  • 给企业建设网站的意义wordpress 登录后页面空白页
  • 电子商务网站建设的步骤一般为(公路建设查询网站
  • 网站备案状态查询wordpress乱码
  • 团队协同网站开发云虚拟主机和网站建设
  • 网站建设打造百度自媒体怎么注册
  • 网站总体设计方案深圳优化网站公司
  • 兰州启点网站建设做相册的网站dw
  • 湛江网站网站建设上海外贸公司27号
  • 公司网站开源源码网站建设续费是什么费用
  • 淘宝网站c 设计怎么做的码支付wordpress前端
  • 义乌网站建设费用多少php网站开发设计论文
  • 新安网站建设潍坊外贸网站优化
  • 湖北智能网站建设找哪家美丽乡村 网站建设
  • 哪个公司的网站制作asp做网站的步骤
  • 网站模板建设报价深圳画册设计推荐
  • 做耳标网站faq插件 wordpress
  • 网站设计开发新乡网站建设加盟电话
  • 如何建立一个学校网站网站建设优化广告流量
  • 网站免费源码大全不用下载新网站如何做百度关键词
  • 网站建设公告jsp网站开发学习心得
  • 西安网站建立网站如何做网站名称
  • 网站规划与网页设计总结福建漳发建设有限公司网站
  • 网站域名怎样注销soso搜索引擎