文章是本人学习过程翻译,原文来自官方文档: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)的项目会选择使用这个模块而不是编写自己的实现。
网友评论