A Java library for graphene blockchains such as Hive and Bitshares. This is the core of the PalmPay Point of Sale systems. GrapheneJ can also be used for your mobile apps, embedded systems, etc.
ede7265989
- Using an HttpUrl instance as a key to the map of FullNode instances, we were using simple String here before, but turned out not to be too reliable NetworkService - Introducing the NodeLatencyVerifier instance into the NetworkService, and making its use optional - In case the user opts to use the node-latency verification, the initial connection is delayed until we obtain a measurement of all nodes - Exposing a PublishSubject, this allows users of the library to get notified of the node latency measurements NetworkServiceManager - A boolean flag is now used to decide whether or not to start a NetworkService instance with the node-latency verification feature ON |
||
---|---|---|
graphenej | ||
sample | ||
.gitattributes | ||
.gitignore | ||
build.gradle | ||
gradle.properties | ||
gradlew | ||
LICENSE | ||
README.md | ||
settings.gradle |
graphenej
A Java library for mobile app Developers; Graphene/Bitshares blockchain.
Usage
In your root build.gradle, add this if you don't already have it.
allprojects {
repositories {
jcenter()
}
}
In yout app module, add the following dependency:
dependencies {
compile 'com.github.bilthon:graphenej:0.4.2'
}
Example
Very simple funds transfer
This is a simple transfer operation of 1 BTS from account bilthon-15 to bilthon-5
// Creating a transfer operation
TransferOperation transferOperation = new TransferOperationBuilder()
.setTransferAmount(new AssetAmount(UnsignedLong.valueOf(100000), new Asset("1.3.0")))
.setSource(new UserAccount("1.2.143563")) // bilthon-15
.setDestination(new UserAccount("1.2.139313")) // bilthon-5
.setFee(new AssetAmount(UnsignedLong.valueOf(264174), new Asset("1.3.0")))
.build();
// Adding operations to the operation list
ArrayList<BaseOperation> operationList = new ArrayList<>();
operationList.add(transferOperation);
// Creating a transaction instance
Transaction transaction = new Transaction(sourcePrivateKey, null, operationList);
From here on, it is just a matter of creating a websocket connection and using a custom handler called
TransactionBroadcastSequence
in order to broadcast it to the witness node.
// Setting up a secure websocket connection.
SSLContext context = null;
context = NaiveSSLContext.getInstance("TLS");
WebSocketFactory factory = new WebSocketFactory();
factory.setSSLContext(context);
WebSocket mWebSocket = factory.createSocket(FULL_NODE_URL);
mWebSocket.addListener(new TransactionBroadcastSequence(transaction, new Asset("1.3.0"), listener));
mWebSocket.connect();
The provided listener
is an instance of the class WitnessResponseListener
.