0.0.1 • Published 8 years ago
casinocoind-ws-client-sign v0.0.1
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_blobandtx_id(useful for air gapped transactions) 😎 - Submit a pre-signed transaction (
tx_blobandtx_id) - Sign and submit a transaction 🎉
Awesome features
- If you are signing and submitting online, there's no need to enter the account
Sequence, theLastLedgerSequenceand/or theFee: if you don't enter them the class will find the right values for you. - Submitting a transaction (from pre-signed
tx_blobor 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_wsclientsubscribe_erroraccount_info_invalidaccount_info_error
Seed / keypair
seed_invalidkeypair_invalid_keyskeypair_invalid_hexkeypair_invalid
Transaction contents
transaction_invalidtransaction_invalid_no_signed_objectinvalid_transaction_jsoninvalid_transaction_typeinvalid_transaction_jsonstring
Offline / Fee / Sequence requirements
sequence_required_offlinefee_required_offlinesequence_not_a_number
Transaction Sign / Submit / Response
transaction_errortransaction_submit_errortransaction_submit_non_tes_or_queuedsign_error
Security
This module will ALWAYS sign locally / client-side.
Your seed / secret / Private Key will NEVER be sent across the WebSocket / internet 🎉
0.0.1
8 years ago