A Java library for interacting with the Waves blockchain.
Supports node interaction, offline transaction signing and creating addresses and keys.
Use the codes below to add WavesJ as a dependency for your project.
<dependency>
<groupId>com.wavesplatform</groupId>
<artifactId>wavesj</artifactId>
<version>1.2.3</version>
</dependency>
compile group: 'com.wavesplatform', name: 'wavesj', version: '1.2.3'
libraryDependencies += "com.wavesplatform" % "wavesj" % "1.2.3"
This library's page at Maven Central
Create an account from a private key ('T' for testnet):
String seed = Crypto.getRandomSeedPhrase();
PrivateKey privateKey = PrivateKey.fromSeed(seed);
PublicKey publicKey = PublicKey.from(privateKey);
Address address = Address.from(publicKey);
Create a Node and learn a few things about blockchain:
Node node = new Node(Profile.MAINNET);
System.out.println("Current height is " + node.getHeight());
System.out.println("My balance is " + node.getBalance(address));
System.out.println("With 100 confirmations: " + node.getBalance(address, 100));
Send some money to a buddy:
Address buddy = new Address("3N9gDFq8tKFhBDBTQxR3zqvtpXjw5wW3syA");
node.broadcast(TransferTransaction.builder(buddy, Amount.of(1_00000000, Asset.WAVES)).getSignedWith(privateKey));
Set a script on an account. Be careful with the script you pass here, as it may lock the account forever!
Base64String script = node
.compile("{-# CONTENT_TYPE EXPRESSION #-} sigVerify(tx.bodyBytes, tx.proofs[0], tx.senderPublicKey)")
.script();
node.broadcast(new SetScriptTransaction(publicKey, script).addProof(privateKey));