LTO API
Client for LTO Network. Integration for both public blockchain and private event-chain.
Installation
npm install lto-api --save
Usage
const LTO = require('lto-api').LTO;
const lto = new LTO();
Account
Creation
You can create a new random seed with keypair (ed25519):
const account = lto.createAccount();
console.log(account.phrase);
console.log(account.sign);
Recovery
It's also possible to recover a keypair from an existing seed:
const phrase = 'satisfy sustain shiver skill betray mother appear pupil coconut weasel firm top puzzle monkey seek';
const seed = lto.seedFromExistingPhrase(phrase);
console.log(account.phrase);
console.log(account.sign);
Seed Encryption
Your seed can be encrypted:
const phrase = 'satisfy sustain shiver skill betray mother appear pupil coconut weasel firm top puzzle monkey seek';
const account = lto.seedFromExistingPhrase(phrase);
const password = 'verysecretpassword';
const encrypted = account.encrypt(password);
console.log(encrypted);
or
const phrase = 'satisfy sustain shiver skill betray mother appear pupil coconut weasel firm top puzzle monkey seek';
const password = 'verysecretpassword';
const encrypted = lto.encryptSeedPhrase(phrase, password);
console.log(encrypted);
Decryption
To decrypt your seed:
const encryptedSeed = 'U2FsdGVkX18tLqNbaYdDu5V27VYD4iSylvKnBjMmvQoFFJO1KbsoKKW1eK/y6kqahvv4eak8Uf8tO1w2I9hbcWFUJDysZh1UyaZt6TmXwYfUZq163e9qRhPn4xC8VkxFCymdzYNBAZgyw8ziRhSujujiDZFT3PTmhhkBwIT7FMs=';
const password = 'verysecretpassword';
const phrase = lto.decryptSeedPhrase(encryptedSeed);
console.log(phrase);
EventChain
Create an event chain
const chain = account.createEventChain();
Create and sign an event and add it to an existing event chain
const EventChain = require('lto-api').EventChain;
const Event = require('lto-api').Event;
const body = {
"$schema": "http://specs.livecontracts.io/01-draft/12-comment/schema.json#",
"identity": {
"$schema": "http://specs.livecontracts.io/01-draft/02-identity/schema.json#",
"id": "1bb5a451-d496-42b9-97c3-e57404d2984f"
},
"content_media_type": "text/plain",
"content": "Hello world!"
};
const chain = new EventChain('JEKNVnkbo3jqSHT8tfiAKK4tQTFK7jbx8t18wEEnygya');
chain.addEvent(new Event(body).signWith(account));
HTTPSignature
Create a signature for an http request
const headers = {
date: (new Date("April 1, 2018 12:00:00")).toISOString()
};
const request = new Request('http://example.com', 'get', headers);
const httpSign = new HTTPSignature(request, ['(request-target)', 'date']);
const signatureHeader = httpSign.signWith(account);