Skip to content

Latest commit

History

104 Commits

Folders and files

NameName
Last commit message
Last commit date

Repository files navigation

EOS Java API Wrapper

Note: This library is not actively updated. Some adjustments may be required to work with the latest version of EOSIO.

A Java implementation of the EOS RPC Calls. Under the MIT Licence.

Created by eos42.

The api documentation can be found in the official eos developers portal: https://developers.eos.io/eosio-nodeos/reference

All but the following queries are supported:

  1. CHAIN
  • get_header_block_state
  • get_producers
  • push_block
  1. WALLET
  • set_dir
  • set_eosio_key
  1. NET
  • connect
  • disconnect
  • connections
  • status
  1. PRODUCER
  • pause
  • resume
  • paused

Requirements

  • Java 8
  • Maven

Installation

Install using maven build tool. The artifact will need to be published locally.

Currently the artifiac is not in the official maven repositories. If you want to use it in a maven build, you can add the following repository

<repository>
<id>jitpack.io</id>
<url>https://jitpack.io</url>
</repository>

and dependency

<dependency>
<groupId>com.github.EOSEssentials</groupId>
<artifactId>eos-java-rpc-wrapper</artifactId>
<version>master</version>
</dependency>

Configuration

Create a new instance of EosApiClient using the EosApiClientFactory, this will require a baseurl to be passed in.

This will use the same base url for all three api endpoints (history/chain/wallet).

EosApiRestClienteosApiRestClient = EosApiClientFactory.newInstance("http://127.0.0.1:8888").newRestClient();

If you want to use separate urls for those endpoints (e.g. you have a local wallet):

EosApiRestClienteosApiRestClient = EosApiClientFactory.newInstance(
walletBaseUrl, chainBaseUrl, historyBaseUrl).newRestClient();

Example Usage

Creating a wallet
eosApiRestClient.createWallet("walletName");

Getting a block

eosApiRestClient.getBlock("blockNumberOrId")

Signing and pushing a transaction

/* Create the rest client */EosApiRestClienteosApiRestClient = EosApiClientFactory.newInstance("http://127.0.0.1:8888").newRestClient();
/* Create the json array of arguments */Map<String, String> args = newHashMap<>(4);
args.put("from", "currency");
args.put("to", "eosio");
args.put("quantity", "44.0000 CUR");
args.put("memo", "My First Transaction");
AbiJsonToBindata = eosApiRestClient.abiJsonToBin("currency", "transfer", args);```
/* Get the head block */Blockblock = eosApiRestClient.getBlock(eosApiRestClient.getChainInfo().getHeadBlockId());
/* Create Transaction Action Authorization */TransactionAuthorizationtransactionAuthorization = newTransactionAuthorization();
transactionAuthorization.setActor("currency");
transactionAuthorization.setPermission("active");
/* Create Transaction Action */TransactionActiontransactionAction = newTransactionAction();
transactionAction.setAccount("currency");
transactionAction.setName("transfer");
transactionAction.setData(data.getBinargs());
transactionAction.setAuthorization(Collections.singletonList(transactionAuthorization));
/* Create a transaction */PackedTransactionpackedTransaction = newPackedTransaction();
packedTransaction.setRefBlockPrefix(block.getRefBlockPrefix().toString());
packedTransaction.setRefBlockNum(block.getBlockNum().toString());
packedTransaction.setExpiration("2018-05-10T18:38:19");
packedTransaction.setRegion("0");
packedTransaction.setMax_net_usage_words("0");
packedTransaction.setActions(Collections.singletonList(transactionAction));
/* Sign the Transaction */SignedPackedTransactionsignedPackedTransaction = eosApiRestClient.signTransaction(packedTransaction, Collections.singletonList("EOS7LPJ7YnwYiEHbBLz96fNkt3kf6CDDdesV5EsWoc3u3DJy31V2y"), "chainId");
/* Push the transaction */PushedTransaction = eosApiRestClient.pushTransaction("none", signedPackedTransaction);

Notes

  • All methods are synchronous and blocking.
  • All methods will throw a catchable EOSApiException.

Releases

Packages

Used by

Contributors

Languages