以太坊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解析问题对您有所帮助,还望关注下本站哦!
相关内容
相关资讯
-
【推荐】5月18日三七互娱涨502农银工业40混合基金重仓该股农银主题轮动混合基金
5月18日三七互娱(002555)涨5.02%,收盘报29.93元,换手率6.12%,成交量100.1万手,成交额29.68亿元。该股为游戏、手游、云游戏、VR&AR、动漫、创投概念热股。5月18日的资金流向
-
【推荐】5分钟读完周末重磅公告广东安居宝光电传输科技有限公司
航天信息与京东签订《合资意向书》航天信息2日晚间公告,公司与北京京东世纪贸易有限公司(简称“京东”)签署了《合资意向书》,双方约定在平等、共赢的基础上,将有意推动共同投资设立一家
-
中信信托固定收益产品中信信托固定收益类产品
大家好,关于中信信托固定收益产品很多朋友都还不太明白,不过没关系,因为今天小编就来为大家分享关于中信信托固定收益类产品的知识点,相信应该可以解决大家的一些困惑和问题,如果碰巧可以解决您的问题,还望关注下本站哦
-
海宁铝合金门窗哪家做得好
文章目录:1、无私付出只为温暖潮城 海宁硖石这个社区新居民志愿者占四成2、定的整框玻璃,收货变成两块?商家:想要整框,你得……3、特大喜讯海宁创建全国文明城市一举
-
海口:窗户高空掉落砸死女童 业主物业被判赔偿78万
中新网海口3月19日电 (符晓瓛)去年8月,海南省海口市某住宅小区窗户从高空掉落砸中一名五岁女童致其死亡。海口市秀英区人民法院19日对该起高空坠物致人死亡案作出判决,判决房屋业主以及小区物业赔偿被害人家属各项
-
做强实体经济这个发展根基——2023年中国经济高质量发展一线观察之三
新华社北京12月9日电 题:做强实体经济这个发展根基——2023年中国经济高质量发展一线观察之三新华社记者做强实体经
-
凯美特气公司?凯美特气是什么概念
今天给各位分享凯美特气公司的知识,其中也会对凯美特气是什么概念进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
-
俄侦委一年阻止多达20起青少年预谋校园袭击案
俄侦委:一年阻止多达20起青少年预谋校园袭击案俄侦委:一年阻止多达20起青少年预谋校园袭击案俄侦委:一年阻止多达20起青少年预谋校园袭击案2021年1月19日 星期二 20:51