UNPKG

escrow-bitcoin

Version:

A service to make possible escrow transactions using BTC (Bitcoin)

79 lines (68 loc) 3.65 kB
"use strict"; const assert = require("assert"); const Address = require("../lib/address"); const Transaction = require("../lib/transaction"); const Escrow = require("../lib/escrow"); const bitcore = require("bitcore-lib"); describe('escrow-bitcoin', function () { describe('generate private key', function () { it('should generate a random private key with random BN', function () { const privateKey = Address.createPrivateKey(), actual = bitcore.PrivateKey.isValid(privateKey); assert.deepStrictEqual(actual, true); }); it('should generate a private key with json parameters', function () { const jsonData = { transactionId: 2, userId: 1, addressTo: "mmF8UG9pRdcXzaLbbe28QFfXFfJNwfArsF" }, privateKey = Address.createPrivateKey(jsonData), actual = bitcore.PrivateKey.isValid(privateKey); assert.deepStrictEqual(actual, true); }); }); describe('generate bitcoin address', function () { it('should generate a valid address', function () { return new Address().then(function (addressGenerated) { const actual = bitcore.Address.isValid(addressGenerated); assert.deepStrictEqual(actual, true); }) }); it('should generate a valid address with json paramaters', function () { const jsonData = { transactionId: 2, userId: 1, addressTo: "mmF8UG9pRdcXzaLbbe28QFfXFfJNwfArsF" }; return new Address(jsonData).then(function (addressGenerated) { const actual = bitcore.Address.isValid(addressGenerated); assert.deepStrictEqual(actual, true); }) }); it('should generate a valid address with random private key', function () { const privateKey = Address.createPrivateKey(); return new Address(privateKey).then(function (addressGenerated) { const actual = bitcore.Address.isValid(addressGenerated); assert.deepStrictEqual(actual, true); }) }); it('should generate a valid address with private key with json parameters', function () { const jsonData = { transactionId: 2, userId: 1, addressTo: "mmF8UG9pRdcXzaLbbe28QFfXFfJNwfArsF" }, privateKey = Address.createPrivateKey(jsonData); return new Address(privateKey).then(function (addressGenerated) { const actual = bitcore.Address.isValid(addressGenerated); assert.deepStrictEqual(actual, true); }) }); }); describe('generate request payment from address and amount', function () { it('should generate a URI for request payment', function () { const addressHash = "mmF8UG9pRdcXzaLbbe28QFfXFfJNwfArsF", amountSatoshi = 1200, uriExpected = 'bitcoin:' + addressHash + '?amount=' + amountSatoshi / 100000000, actual = Address.requestPayment(addressHash, amountSatoshi); assert.deepStrictEqual(actual, uriExpected); }); }); describe('generate a escrow transaction', function () { it('should generate a escrow address to transaction', function () { const amountSatoshi = 1200; return Escrow.createEscrowAddress(amountSatoshi).then(function (actual) { assert(actual.hasOwnProperty('privateKey') && actual.hasOwnProperty('address') && actual.hasOwnProperty('URI')); }); }); }); });