factomjs-util
v0.1.8
Published
a collection of utility functions for Factom
Downloads
18
Readme
SYNOPSIS
A collection of utility functions for factom. It can be used in node.js or can be in the browser with browserify.
Precompiled for Web
Use dist/factomjs-util.js
and use like so:
// There is a require function to act similar to node
var fctUtils = require('factomjs-util');
// Use like normal
var p = fctUtils.randomPrivateKey()
// ...
Things you can do
Making a factoid transaction
// This is the transaction object
var t = new fctUtils.Transaction()
// We will need the private key for the inputs later. Input and output is in factoshis
t.addInput('FA2THnSmkrf7veBZ21u5bkT3xqKM3DBd8nQwByyNK3J4XEk16Byb', 100000)
t.addOutput('FA2bEwF9UB2WCYhqPXxKknHyxoju4g6Uwoa7jw3cHCfQuPNz75yo', 100000)
var ok = t.addFee("FA2THnSmkrf7veBZ21u5bkT3xqKM3DBd8nQwByyNK3J4XEk16Byb", 1000)
if(!ok) {
// The fee was not added for some reason. Like address not found in transaction or something
}
// You do not need to do this, but it timestamps the transaction to 'now'. You should do this before you sign and send
// if the build process takes a lot of time
t.updateTime()
t.sign('Fs2aMCyRrHnaBHbf1Y51LJ7vaUkQrLdRJ7krdbrVs7W9DbCHJWxW')
var txHex = fctUtils.bufferToHex(t.MarshalBinary())
// txHex is what goes in the submit api call
Address manipulation
// Let's get a new address
var sec = fctUtils.randomPrivateKey()
// Get the public key
var pub = fctUtils.privateKeyToPublicKey(sec)
// These are not human readable addresses, to get those:
// To get the Fs...
var humanSecret = fctUtils.privateFactoidKeyToHumanAddress(sec)
// To get the Fa...
var humanPublic = fctUtils.publicFactoidKeyToHumanAddress(pub)
// If given a Fs... and you want the private key to get the public key:
sec = fctUtils.privateHumanAddressStringToPrivate("Fs1KWJrpLdfucvmYwN2nWrwepLn8ercpMbzXshd1g8zyhKXLVLWj")
// Then to get the Fa...
pub = fctUtils.privateKeyToPublicKey(sec)
humanPublic = fctUtils.publicFactoidKeyToHumanAddress(pub)
console.log(humanPublic) // FA1zT4aFpEvcnPqPCigB3fvGu4Q4mTXY22iiuV69DqE1pNhdF2MC
Functions
The factom specific functions are: The factom specific functions are:
privateKeyToPublicKey : Gets the public keypair for a private key
publicFactoidKeyToHumanAddress : Public key to 'FA...'
privateFactoidKeyToHumanAddress : Private key to 'Fs...'
publicECKeyToHumanAddress : Public key to 'EC...'
privateECKeyToHumanAddress : Public key to 'Es...'
privateHumanAddressStringToPrivate : 'Fs...' or "Es..." to private key
isValidAddress : Returns true if given string is a valid address.
Inspired By
This is based off of the etheruem js library, but for Factom
https://github.com/ethereumjs/ethereumjs-util