/KEthereum

Kotlin library for Ethereum

Primary LanguageKotlinMIT LicenseMIT

Mission statement

This is a Kotlin library for Ethereum. It is striving towards being 100% Kotlin (the code in the lib is Kotlin anyway - but also trying to not drag in JVM dependencies). This is done in order to enable multi-platform support in the future. Currently this library is mainly used in JVM projects but could this way also target e.g. JavaScript and WebAssembly that are broadly used in the web3 space. Another core principle of this library is to be as modular as possible. Ethereum has a wide range of use-cases and should not be supported by huge monolithic libraries. With KEthereum you can pick and choose the modules you need and keep the footprint of the library small this way.

Module overview

Name Description Status Documentation
abi Application Binary Interface (ABI) for contracts beta
abi_codegen Kotlin code generation from ABIs beta
abi_filter Functions for filtering ABIs beta
blockscout BlockScout BlockExplorer helper functions beta
bloomfilter Space-efficient probabilistic data structure beta
eip137 Model and functions for ENS NameHash beta
eip155 TX signing with Simple replay attack protection production example code
eip191 Functions to sign data via signed data standard beta
eip712 Ethereum typed structured data hashing and signing experimental
ens ENS (Ethereum Name Service) functionality beta README
erc1328 WalletConnect Standard URI Format beta
erc1450 ERC-20 extension - e.g. including token minting beta example code
erc181 ENS reverse resolution of addresses beta
erc20 Contract wrapper for the ERC20 Token standard beta
erc55 Mixed-case checksum address encoding production README
erc634 Storage of text records in ENS beta README
erc67 Standard URI scheme for transactions beta
erc681 URL Format for Transaction Requests (successor of ERC67) beta
erc831 URI Format for Ethereum (used by 681, 961, ..) beta
erc961 URI standard for tokens beta
etherscan EtherScan BlockExplorer function beta
example_cli CLI App to demo KEthereum functionality demonstration example code
extensions_kotlin Extension functions for Kotlin types beta
extensions_transactions Extension functions for the Transaction class beta
flows Coroutine flows for blocks and transactions beta example code
keccak_shortcut Proxy extension function for keccak hashing beta
keystore Storage for wallet files (e.g. to use the geth keystore) beta
metadata Model and parser for contract metadata beta
method_signatures Functionality for method signatures (4byte repository,..) beta
model Data-/Inline-Classes and constants beta
rlp Recursive Length Prefix (RLP) encoder/decoder beta
rpc Remote Procedure Calls (RPC) abstraction beta
rpc_min3 Minimal INCUBED (IN3) RPC experimental README
test_data Data used in KEthereum tests production -
types Handling of EVM types (e.g. used code from abi_codegen ) beta
uri_common Used by several URI modules (681, 1328, 961, ..) beta
wallet functions for keys from and to JSON wallet files beta

Projects that use KEthereum

Links

Get it

KEthereum is available via jitpack:

License

MIT