合约ABI探秘

2024-06-10 18:52
文章标签 abi 合约 探秘

本文主要是介绍合约ABI探秘,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

EOA使用ABI调用
合约之间使用接口调用
自己写ABI,自己写接口

ABI探秘

  • EOA使用的ABI数据与合约间调用时调用者持有的接口时等价的,都是对合约函数签名的完整描述
  • 调用者使用ABI数据生成message中的calldata
    在这里插入图片描述

message上下文的变化

  • 合约之间的调用也模拟transaction的结构,并且叫message,变量名msg
  • 直接被外部账号调用使用的message可以认为是transaction的一个拷贝
  • Message在合约间调用时新产生。调用链条中,合约内部调用看到的是一个message,不同合约看到不同的message
    在这里插入图片描述
    举例
// SPDX-License-Identifier: GPL-3.0pragma solidity >=0.8.2 <0.9.0;contract Callee {uint public x;address public caller;address public eoaaddress;function setX(uint _x)public{caller = msg.sender;eoaaddress = tx.origin;x = _x;}
}
contract Caller{address public caller;address public eoaaddress;address calleeAddress;constructor(address _calleeAddress){calleeAddress = _calleeAddress;}function setCalleeX(uint _x)public{caller = msg.sender;eoaaddress = tx.origin;Callee callee = Callee(calleeAddress);callee.setX(_x);}}
// 外部测试合约地址:0x5B38Da6a701c568545dCfcB03FcB875f56beddC4// Caller合约地址: 0xd8b934580fcE35a11B58C6D73aDeE468a2833fa8

运行结果
在这里插入图片描述

这篇关于合约ABI探秘的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1048982

相关文章

Spring Boot 注解探秘:HTTP 请求的魅力之旅

在SpringBoot应用开发中,处理Http请求是一项基础且重要的任务。Spring Boot通过提供一系列丰富的注解极大地简化了这一过程,使得定义请求处理器和路由变得更加直观与便捷。这些注解不仅帮助开发者清晰地定义不同类型的HTTP请求如何被处理,同时也提升了代码的可读性和维护性。 一、@RequestMapping @RequestMapping用于将特定的HTTP请求映射到特定的方法上

黑神话悟空背后的技术揭秘与代码探秘

《重塑神话:黑神话悟空背后的技术揭秘与代码探秘》 引言 在国产游戏领域,《黑神话:悟空》无疑是一颗璀璨的明星,它不仅融合了深厚的中国文化元素,更在技术上实现了诸多突破,为玩家带来了前所未有的沉浸式体验。本文将深入剖析《黑神话:悟空》背后的关键技术,并通过代码案例展示其技术实现的魅力。 一、高精度动作捕捉技术 《黑神话:悟空》中的角色动作之所以如此逼真,得益于高精度动作捕捉技术的应用

浅谈NODE的NPM命令和合约测试开发工具HARDHAT

$ npm install yarn -g  # 将模块yarn全局安装 $ npm install moduleName # 安装模块到项目目录下 默认跟加参数 --save 一样 会在package文件的dependencies节点写入依赖。   $ npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置,要看 npm root -g

AI技术颠覆游戏开发:谷歌DeepMind GameNGen实时生成《DOOM》探秘

引言 近年来,生成式人工智能(AIGC)在图像和视频生成领域取得了巨大突破。然而,谁能想到,这项技术正逐渐渗透进游戏开发领域,且潜力巨大。2023年8月29日,谷歌DeepMind发布了名为《扩散模型是实时游戏引擎》(Diffusion Models Are Real-Time Game Engines)的论文,提出了全新的AI游戏生成引擎GameNGen。令人惊讶的是,GameNGen无需传统

Qlik数据集成 | Qlik 连续 14 年稳居 2024 Gartner® ABI Magic Quadrant™ 领导者

Qlik 再次当选 2024 年 Gartner® 分析和商业智能平台 Magic Quadrant™ 领导者! 近日,作为引领当今数据集成、数据质量和分析解决方案市场的行业领导者, Qlik 再次当选 2024 年 Gartner® 分析和商业智能平台 Magic Quadrant™ 领导者! 得益于 Qlik 在愿景完备性和执行能力方面的出色表现,这已经是 Qlik 第 14 年位居领导者象

VitePress 项目结构探秘:项目根与源码目录

在 VitePress 的世界里,构建文档网站变得前所未有的简单和高效。作为 Vite 生态中的一颗璀璨明珠,VitePress 专为文档网站量身打造,它利用 Markdown 文件和 Vue 组件,帮助我们快速生成静态网站。在深入使用 VitePress 之前,理解项目根和源码目录这两个核心概念至关重要。 一、项目根目录 项目根目录是 VitePress 查找 .vitepress 特殊目录

探秘发酵过程:酵母菌如何为白酒赋予不同风味?

在白酒酿造的神秘世界里,发酵过程如同一位隐形的艺术家,用其不同的笔触为白酒勾勒出千变万化的风味。而在这背后,酵母菌作为发酵的主角,发挥着至关重要的作用。今天,就让我们一起探秘发酵过程,了解酵母菌如何为豪迈白酒(HOMANLISM)赋予不同风味。 一、酵母菌:白酒风味的塑造者 在白酒的酿造过程中,酵母菌是不可或缺的生物催化剂。它们通过摄取原料中的糖分,经过复杂的生物化学反应,产生酒精和二氧化

【Rust光年纪】探秘Rust物理学计算库:全面解读六大利器

全方位解析:Rust语言中的物理学计算库比较与推荐 前言 Rust语言作为一种系统级编程语言,其在性能和安全性方面备受推崇。针对物理学计算和线性代数运算,开发者们也纷纷推出了多款优秀的库和引擎,为Rust语言提供了强大的物理计算和模拟能力。 欢迎订阅专栏:Rust光年纪 文章目录 全方位解析:Rust语言中的物理学计算库比较与推荐前言1. physics:一个用于Rust语言

飞燕草花语探秘:从清静到自由的多元寓意解读

当我们走近飞燕草,细细品味它的每一个细节,从那娇艳的花朵到那嫩绿的叶片,无不让人沉醉其中。而最令人着迷的,当属它所蕴含的丰富花语,这些花语如同一个个神秘的密码,等待着我们去解读和探寻。 一、飞燕草花语的多元阐释  飞燕草常见的花语有清静、轻盈、正义、自由等。 “清静” 这一花语,反映出飞燕草所具有的那种宁静、淡泊的气质。它不与百花争艳,独自绽放出属于自己的美丽,给人一种宁静致远的感受

FISCO BCOS Webase front 智能合约 参数不合适

一、字符串得用双引号,不能用单引号 ❌ 'hello world' ['1', '2'] ✅ "hello world" ["1", "2"]   二、引号是否对齐补齐了 ❌ ["1, "2"]