escrow-bitcoin
Version:
A service to make possible escrow transactions using BTC (Bitcoin)
79 lines (68 loc) • 3.65 kB
JavaScript
;
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'));
});
});
});
});