-
Notifications
You must be signed in to change notification settings - Fork 7
Wallet
WIKI Home -> Wallet API
A wallet is a collection of private and public key, which are required to do any operation on your behalf.
Lets generate new wallet:
Wallet w = Wallet.createNew();And save it, so we can access it in the future
w.save(new File("wallet.json"), "pwd");Great, we have a wallet now. Let's get its address so other people can send us assets:
String address = w.getAddress(); // Used for sending assetsThere are two more different ways to get an instance of Wallet
From private key:
Wallet w1 = Wallet.createFromPrivateKey(privKeyBytes);
Wallet w2 = Wallet.createFromPrivateKey(privKeyHexString);Load from file:
Wallet w = Wallet.load(new File("wallet.json"), "pwd");Both methods save and load are overloaded with saving/loading to/from Input/Output Stream, so you can load your wallet from a network or whatever, instead of a file. Or have your own save file with other stuff contain wallet as part of it.
To submit a transaction, you need an instance on NKNTransaction. This can be obtained by
NKNTransaction tx = wallet.tx();and on this tx you can submit any of the pre-implemented transactions:
String txId;
txId = tx.transferTo(to.getAddress(), new BigDecimal(amount));
txId = tx.registerName(name);
txId = tx.subscribe(topic, bucket, duration);or submit your own, using tx.customTransaction(TransactionT)
Every transaction type has multiple methods with different arguments, all of which provide an option to add a fee to any transaction.
Explorer information that is public is packed in class NKNExplorer with following calls
NKNExplorer.queryBalance(address);
NKNExplorer.isAddressValid(address); // Doesn't require internet connection
NKNExplorer.resolveNamedAddress(name);
NKNExplorer.getSubscribers(topic, bucket);(See more in Explorer API)
and some are for your convenience accessible directly from the wallet:
BigDecimal balance = wallet.queryBalance();Beware: Both NKN nodes and this sdk are still work in progress and anything can change or stop working at any time.