06-web3j的ABI


文章是本人学习过程翻译,原文来自官方文档:https://web3j.readthedocs.io/en/latest/#

官网:https://web3j.io/

官方GitHub:https://github.com/web3j/web3j

官方demo:https://github.com/web3j/web3j/tree/master/integration-tests

文档版本v3.4.0。


Application Binary Interface

ABI是一种数据编码方案用于处理Ethereum智能合约。ABI中定义的类型和solidity是一样的。比如uint8…,uint256,int8,…,int256,bool,string,等等。
web3j的ABI模块提供了所有ABI规范支持,包括:

  • 所有ABI类型的Java实现,包括转换本地Java类型
  • function和event支持
  • 丰富的单元测试

类型映射(Type mappings)

web3j提供的本地java类型与ABI转换如下:

  • boolean -> bool
  • BigInteger -> uint/int
  • byte[] -> bytes
  • String -> string and address types
  • List<> -> dynamic/static array

深入介绍

请参阅各种编码/解码的ABI单元测试的例子。
一个完整的ABI规范在Solidity documentation

依赖(Dependencies)

这是一个非常轻量级的模块,只依赖于 Bouncy Castle第三方库用来加密hash(Spongy Castle在Android上)。其他希望与Ethereum ABI交互(JVM或Android)的项目会选择使用这个模块而不是编写自己的实现。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容