Steem-lib Guide [Part2]
Previous: Steem-lib Guide [Part1]
This section is about transaction construction, signing and broadcast.
Set Keys
Set a privatekey(WIF) as signingkey for an account.
var MY_ACCOUNT = "my-account-name";
var MY_KEY = "wif*****";
remote.set_key(MY_ACCOUNT, MY_KEY)
this will cache the key into the client for later use of signing. The first argument (MY_ACCOUNT) is a label for the privatekey, could be arbitrary string but is convenient/intuitive by using just account name.
Alternate set-up, using Steemit's username + password
remote.set_auth('my-account-name', 'my-dummy-password');
this method will generate all keys from username + password, and cache them into the client.
Construct a transaction
// create a tx with MY_ACCOUNT as signer
var tx = remote.transaction(MY_ACCOUNT);
tx.add_operation('transfer', {
from: MY_ACCOUNT,
to: "the-recipient-account",
amount: "1.000 STEEM",
memo: "payment for xxx"
});
// to manually set expiration, e.g. 30s.
tx.expiration = Math.ceil(Date.now()/1000 + 30);
For the full list of supported operations, have a look into operation.js
optional steps:
- tx.complete() - to auto-complete the transaction with expiration = 60s later, fill the ref_block_num and ref_block_prefix fields with infos of last-irreversible-block.
- tx.sign() - do the signing with private-key (of MY_ACCOUNT).
in the case where set_auth() method was used instead of set_key(), the client would choose the appropriate key according to result of 'get_required_signature' API.
Broadcast transaction
There are two methods to accomplish this, both doing the similar jobs:
- if the transaction is incompleted, perform tx.complete(); then tx.sign();
- send the transaction out to all connected servers.
tx.broadcast() will callback immediately when the txn got into a head-block, or if there's an error.
// show immediate result whether the tx is included in a head block
tx.broadcast(function(err, res){
// immedate result from broadcast_api.
console.log(err, res)
})
tx.submit() will not callback until the txn was seen in an irreversible-block.
tx.submit(function(err, res){
if (err) return console.log('Error:', err);
if (res) console.log('Success & Final');
});
// broadcast result is still availabe by listening to 'submitted' event.
tx.once('submitted', function(err, res){
// head-block result
console.log(err || res)
})
More Example:
Check the examples folder of the repository.
Next: Steem-lib Guide [Part3]
Leave Steem-lib Guide [Part2] to:
Read more #steem-lib posts
Best Posts From ripplerm
We have not curated any of ripplerm's posts yet. But you can encourage our curation team to review posts by visiting them regularly and by referring other readers. Because we give priority to frequently read content.
More Posts From ripplerm
- [Steemiex] A new Ripple Gateway for Steem (alpha launch)
- [Steemiex Guide] Adding New Currency-Pair (Market) in Gatehub-wallet
- [Steemiex Guide] Withdraw from Ripple-network to Steem-blockchain
- [Steemiex Guide] Deposit from Steem to Ripple-network
- [Steemiex Guide] How to set Trustlines to Steemiex
- XRP-Giveaway for Steem Users
- [Ripple-Wallet Guide] Trading / Exchange
- [Ripple-Wallet Guide] Making Payment
- [Ripple-Wallet Guide] Managing Trustlines
- [Ripple] Understanding passphrase, secret-key, and address (account).
- [Ripple-Wallet Guide #2] Account Info
- [Ripple-Wallet Guide #1] Overview, Network, Account.
- [Ripple Wallet] - Introduction.
- [Experiment] The Born of a Top Voting Bot
- [Proposal] Decoupling Curation Rewards from Post's
- Steem-lib Guide [Part3]
- Story About Farm Workers
- Steem-lib Guide [Part2]
- Steem-lib Guide [Part1]
- Steem-lib, Intro.