1.0.0 • Published 2 years ago

xvg-lib v1.0.0

Weekly downloads
-
License
ISC
Repository
-
Last release
2 years ago

XVG-LIB

A pure JavaScript Verge library. Original work by @xourse at @xourse/verge-transaction

Installation

npm install xvg-lib

Usage

Input fields specifications:

amount must be in verge amount not in satoshis nor bitcoins e.g. 1, 5.5, 10.

Private keys

Private keys must be an array of hex private keys (64 characters). The private keys that must be included are the private keys corresponding to the addresses sent as input.

Note: Sign function must be the last function to be chained/called, since once this function is called verge-js starts to generate the raw transaction.

Create transaction from 1 utxo

const Transaction = require('verge-js');


const privateKeys = ['<private-key-for-address-input>'];

const inputs = [
  {
    txid: '<transaction-id>',
    vout: <vout>,
    amount: 5.5
    address: '<address>'
  },
];

try {
  const tx = new Transaction()
    .from(inputs)
    .to('<dst-address>', 2)
    .sign(privateKeys);
  const raw = tx.getRaw();
} catch (e) {
  console.log(e.message);
}

Create transaction from N utxo

const Transaction = require('verge-js');


const privateKeys = ['<private-key-for-address1-input>', '<private-key-for-address2-input>'];

const inputs = [
  {
    txid: '<transaction-id1>',
    vout: <vout>,
    amount: 5.5
    address: '<address1>'
  },
  {
    txid: '<transaction-id2>',
    vout: <vout>,
    amount: 10.3
    address: '<address2>'
  }
];

try {
  const tx = new Transaction()
    .from(inputs)
    .to('<dst-address>', 10.3)
    .sign(privateKeys);
  const raw = tx.getRaw();
} catch (e) {
  console.log(e.message);
}

Create transaction using a change address

const Transaction = require('verge-js');


const privateKeys = ['<private-key-for-address-input>'];

const inputs = [
  {
    txid: '<transaction-id>',
    vout: <vout>,
    amount: 5.5
    address: '<address>'
  },
];

try {
  const tx = new Transaction()
    .from(inputs)
    .to('<dst-address>', 2.4)
    .changeTo(<address-which-receive-the-change>)
    .sign(privateKeys);
  const raw = tx.getRaw();
} catch (e) {
  console.log(e.message);
}

Create transaction using a customize fee

const Transaction = require('verge-js');


const privateKeys = ['<private-key-for-address-input>'];

const inputs = [
  {
    txid: '<transaction-id>',
    vout: <vout>,
    amount: 10.9
    address: '<address>'
  },
];

try {
  const tx = new Transaction()
    .from(inputs)
    .to('<dst-address>', 7.2)
    .changeTo(<address-which-receive-the-change>)
    .setFee(1.5)
    .sign(privateKeys);
  const raw = tx.getRaw();
} catch (e) {
  console.log(e.message);
}

Note: Set a fee amount only works when a changeTo is used, since that when changeTo is not used the difference between inputs and outputs is taken as fee.