casinocoind-ws-client-sign
v0.0.1
Published
Sign transactions locally to submit with casinocoind-ws-client
Downloads
2
Readme
casinocoind-ws-client-sign
Sign transactions locally and submit with casinocoind-ws-client
This is a ES6 module to complement casinocoind-ws-client. This module allows you to:
- Sign a transaction offline and return the
tx_blob
andtx_id
(useful for air gapped transactions) 😎 - Submit a pre-signed transaction (
tx_blob
andtx_id
) - Sign and submit a transaction 🎉
Awesome features
- If you are signing and submitting online, there's no need to enter the account
Sequence
, theLastLedgerSequence
and/or theFee
: if you don't enter them the class will find the right values for you. - Submitting a transaction (from pre-signed
tx_blob
or by signing one) returns a promise. The class will handle watching the ledger for you, so the promise will either resolve because the transaction is in a validated ledger, of reject because there of an error or the Leder Index is past the entered / auto generated LastLedgerSequence.
Samples are available over here
How to use
To use this module in vanillajs, vue-webpack, nodejs, etc.: please check the docs for casinocoind-ws-client: same thing for casinocoind-ws-client-sign.
Basic example of signing and submmitting a transaction
const casinocoindWsClient = require('casinocoind-ws-client')
const casinocoindWsClientSign = require('casinocoind-ws-client-sign')
let Seed = 'sXXXXXXXXXXXXX' // (keypair supported as well)
const Transaction = {
TransactionType: 'Payment',
Account: 'cXXXXXXXXX..',
Destination: 'cYYYYYYYYY..',
DestinationTag: 1337,
Amount: 0.25 * 1000000, // Amount in drops, so multiply (6 decimal positions)
LastLedgerSequence: null // Null = auto detect, last + 5
}
new casinocoindWsClient('wss://ws01.casinocoin.org:4443').then((Connection) => {
new casinocoindWsClientSign(Transaction, Seed, Connection).then((TransactionSuccess) => {
console.log('TransactionSuccess', TransactionSuccess)
Connection.close()
}).catch((SignError) => {
console.log('SignError', SignError.details) // .details ;)
Connection.close()
})
}).catch((ConnectionError) => {
console.log('ConnectionError', ConnectionError)
})
Errors
This class rejects a casinocoindWsClientSignError
-error. This error is identical to Error
, but adds the .details
property. In .details
additional information about the Error is available (e.g. the response from the casinocoind-server).
The following errors (....details.type
) exist:
Connectivity / Account
invalid_wsclient
subscribe_error
account_info_invalid
account_info_error
Seed / keypair
seed_invalid
keypair_invalid_keys
keypair_invalid_hex
keypair_invalid
Transaction contents
transaction_invalid
transaction_invalid_no_signed_object
invalid_transaction_json
invalid_transaction_type
invalid_transaction_jsonstring
Offline / Fee / Sequence requirements
sequence_required_offline
fee_required_offline
sequence_not_a_number
Transaction Sign / Submit / Response
transaction_error
transaction_submit_error
transaction_submit_non_tes_or_queued
sign_error
Security
This module will ALWAYS sign locally / client-side.
Your seed / secret / Private Key will NEVER be sent across the WebSocket / internet 🎉