以太坊abi以太坊abi解析
其实以太坊abi的问题并不复杂,但是又很多的朋友都不太了解以太坊abi解析,因此呢,今天小编就来为大家分享以太坊abi的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析吧!
本文目录
iOS应用程序如何调用以太坊智能合约以太坊的ABI编码区块链和智能合约,以太坊开发,183位开发者整理,知识体系汇总智能合约abi弄不出来怎么办iOS应用程序如何调用以太坊智能合约以太坊智能合约有各种各样的用例,但到目前为止,从你的iOS应用程序中调用它们非常困难。不过如果使用以太坊iOS开发套件和EtherKit,这种情况会改善很多,你可以立即开始使用。在本教程结束时,你将能够调用其ABI(应用程序二进制接口)中定义的任何公共合约函数。
对于这个项目,我们将使用Xcode10.0和ContractCodegen0.1。我们还建议使用iOSMVVM项目模板,但为了使本教程简单,我们将使用正常的iOS项目结构。
以太坊的ABI编码ABI全称ApplicationBinaryInterface,是调用智能合约函数以及合约之间函数调用的消息编码格式定义,也可以理解为智能合约函数调用的接口说明.类似Webservice里的SOAP协议一样;也就是定义操作函数签名,参数编码,返回结果编码等。
使用ABI协议时必须要求在编译时知道类型,即强类型相关.
当一个智能合约编译出来后,他的abi接口定义就确定了.比如下面的智能合约:
生成的字节码:
生成的abi定义:
可以看出,生成abi包含了2个定义:函数lotus,事件Log_lotus,各个字段含义见上.根据该abi定义,就可以生成调用该智能合约函数的abi格式的数据了.
格式简单的可以表示为:函数选择器+参数编码
一个函数调用的前四个字节数据指定了要调用的函数签名。计算方式是使用函数签名的keccak256的哈希,取4个字节。
函数名如果有多个参数使用,隔开,要去掉表达式中的所有空格。在geth客户端,通过命令可以得到hash:
由于前面的函数签名使用了四个字节,参数的数据将从第五个字节开始。
根据参数类型,编码规则有所区别:
除了bytes,和string,其他类型的数据不足32字节长度的需要加0补足32字节.动态长度的编码在例子中介绍.
函数:functionbaz(uint32x,booly):
调用:baz(69,true)
生成的数据如下:
返回结果是一个bool值,在这里,返回的是false:
函数:f(uint,uint32[],bytes10,bytes)
调用:(0x123,[0x456,0x789],"1234567890","Hello,world!")
函数选择器:bytes4(sha3("f(uint256,uint32[],bytes10,bytes)"))
对于固定大小的类型值uint256和bytes10,直接编码值。
对于动态内容类型值uint32[]和bytes,我们先编码偏移值,偏移值是整个值编码的开始到真正存这个数据的偏移值(这里不计算头四个用于表示函数签名的字节)。
所以参数编码数据依次为:
尾部部分的第一个动态参数,[0x456,0x789]编码拆解如下:
最后我们来看看第二个动态参数的的编码,Hello,world!。
所以最终结果是:
区块链和智能合约,以太坊开发,183位开发者整理,知识体系汇总在以太坊上开发应用程序的可用工具、组件、模式和平台的指南。
此列表的创建是由ConsenSys的产品经理推动的,他们认为需要在新的和有经验的区块链开发人员之间更好地共享工具、开发模式和组件。
开发智能合约
智能合约语言
构架
IDE
其他工具
测试区块链网络
测试以太水龙头
前端以太坊API
后端以太坊API
引导程序/开箱即用工具
以太坊ABI(应用程序二进制接口)工具
以太坊客户端
贮存
Mahuta-具有附加搜索功能的IPFS存储服务,以前称为IPFS-Store
OrbitDB-IPFS之上的去中心化数据库
JSIPFSAPI-IPFSHTTPAPI的客户端库,用JavaScript实现
TEMPORAL-易于使用的API到IPFS和其他分布式/去中心化存储协议
PINATA-使用IPFS的最简单方法
消息传递
测试工具
安全工具
监控
其他杂项工具
Cheshire-CryptoKittiesAPI和智能合约的本地沙箱实现,可作为TruffleBox使用
ERCs-以太坊评论请求存储库
ERC-20-可替代资产的原始令牌合约
ERC-721-不可替代资产的令牌标准
ERC-777-可替代资产的改进令牌标准
ERC-918-可开采令牌标准
流行的智能合约库
可扩展性
支付/状态通道
等离子体
侧链
POA桥
POA桥用户界面
POA桥梁合同
ZK-SNARK
ZK-STARK
预构建的UI组件
以上内容,来自git库:
github.com/ConsenSys/ethereum-developer-tools-list
我是鱼歌,一个在深圳创业的全栈程序员,主攻区块链,元宇宙和智能合约,附加小程序和app开发。
[祈祷]
智能合约abi弄不出来怎么办一般来说,部署智能合约的步骤为:
1启动一个以太坊节点(例如geth或者testrpc)。
2使用solc编译智能合约。=>获得二进制代码。
3将编译好的合约部署到网络。(这一步会消耗以太币,还需要使用你的节点的默认地址或者指定地址来给合约签名。)=>获得合约的区块链地址和ABI(合约接口的JSON表示,包括变量,事件和可以调用的方法)。(译注:作者在这里把ABI与合约接口弄混了。ABI是合约接口的二进制表示。)
4用web3.js提供的JavaScriptAPI来调用合约。(根据调用的类型有可能会消耗以太币。)
好了,文章到这里就结束啦,如果本次分享的以太坊abi和以太坊abi解析问题对您有所帮助,还望关注下本站哦!
相关内容
相关资讯
-
快手涨粉丝1元100卡盟快手涨粉丝1元100活粉
大家好,今天来为大家分享快手涨粉丝1元100卡盟的一些知识点,和快手涨粉丝1元100活粉的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一
-
去银监局还是银行工作去银监局还是银行工作比较好
其实去银监局还是银行工作的问题并不复杂,但是又很多的朋友都不太了解去银监局还是银行工作比较好,因此呢,今天小编就来为大家分享去银监局还是银行工作的一些知识,希望可以帮助到大家,下面我们一起来看看这个问题的分析
-
信托资产管理特点信托资产管理特点包括
今天给各位分享信托资产管理的知识,其中也会对特点包括进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!本文目录信托的优缺点及建议
-
中国农业银行系统异常中国农业银行状态异常
大家好,今天来为大家分享中国农业银行系统异常的一些知识点,和中国农业银行状态异常的问题解析,大家要是都明白,那么可以忽略,如果不太清楚的话可以看看本篇文章,相信很大概率可以解决您的问题,接下来我们就一起来看看
-
【推荐】中远海运控股股份有限公司关于变更境内审计机构签字会计师的公告-中远保险经纪公司
证券代码:601919 证券简称:中远海控 公告编号:临2021-007本公司董事会及全体董事保证本公告内容不存在任何虚假记载、误导性陈述或者重大遗漏,并对其内容的真实性、准确性
-
【推荐】中字头板块走强,招商蛇口领涨,央企股东回报ETF(560070)上涨2.47%-股东资讯的股票
截至6月27日 14:49,中证国新央企股东回报指数强势上涨2.42%,成分股招商蛇口上涨6.63%,中材国际上涨6.51%,中钢国际上涨6.5%,中国中铁,中国交建等个股跟涨。央企股东回报ETF(56007
-
【推荐】中央汇金公司一季度投资收益1729.99亿元-中央汇金有多少钱
【大河财立方消息】6月30日,中央汇金公司披露财务报告,2022年实现投资收益5568.62亿元,期末资产总额6.37万亿元。2023
-
【推荐】5月18日三七互娱涨502农银工业40混合基金重仓该股农银主题轮动混合基金
5月18日三七互娱(002555)涨5.02%,收盘报29.93元,换手率6.12%,成交量100.1万手,成交额29.68亿元。该股为游戏、手游、云游戏、VR&AR、动漫、创投概念热股。5月18日的资金流向