Browse Source

Drop xo-lukechilds and remove object spacing

master
Luke Childs 6 years ago
parent
commit
693a857cdc
  1. 8
      README.md
  2. 4
      package.json
  3. 6
      src/index.js
  4. 14
      test/unit.js

8
README.md

@ -21,7 +21,7 @@ npm install build-output-script
Send 1 BTC to `1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj`
```js
buildOutputScript([{ address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000 }]);
buildOutputScript([{address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000}]);
// '0100e1f505000000001976a914da6473ed373e08f46dd8003fca7ba72fbe9c555e88ac'
```
@ -29,8 +29,8 @@ Send 1 BTC to `1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj` and 1 BTC to `1BitcoinEaterAd
```js
buildOutputScript([
{ address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000 },
{ address: '1BitcoinEaterAddressDontSendf59kuE', value: 100000000 }
{address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000},
{address: '1BitcoinEaterAddressDontSendf59kuE', value: 100000000}
]);
// '0200e1f505000000001976a914da6473ed373e08f46dd8003fca7ba72fbe9c555e88ac00e1f505000000001976a914759d6677091e973b9e9d99f19c68fbf43e3f05f988ac'
```
@ -38,7 +38,7 @@ buildOutputScript([
Send 1 LTC to `Lf8hucmupbtenQ3VPdxvvJ8gTfAsaon2gf`
```js
buildOutputScript([{ address: 'Lf8hucmupbtenQ3VPdxvvJ8gTfAsaon2gf', value: 100000000 }]);
buildOutputScript([{address: 'Lf8hucmupbtenQ3VPdxvvJ8gTfAsaon2gf', value: 100000000}]);
// '0100e1f505000000001976a914da6473ed373e08f46dd8003fca7ba72fbe9c555e88ac'
```

4
package.json

@ -10,9 +10,6 @@
"test": "xo && nyc ava",
"coverage": "nyc report --reporter=text-lcov | coveralls"
},
"xo": {
"extends": "xo-lukechilds"
},
"repository": {
"type": "git",
"url": "git+https://github.com/lukechilds/build-output-script.git"
@ -33,7 +30,6 @@
"devDependencies": {
"ava": "^0.25.0",
"coveralls": "^3.0.2",
"eslint-config-xo-lukechilds": "^1.0.1",
"nyc": "^13.1.0",
"xo": "^0.23.0"
},

6
src/index.js

@ -1,6 +1,6 @@
const bs58check = require('bs58check');
const { encode: numberToCompactSizeUInt } = require('varuint-bitcoin');
const { OP_DUP, OP_HASH160, OP_EQUALVERIFY, OP_CHECKSIG } = require('bitcoin-ops');
const {encode: numberToCompactSizeUInt} = require('varuint-bitcoin');
const {OP_DUP, OP_HASH160, OP_EQUALVERIFY, OP_CHECKSIG} = require('bitcoin-ops');
const addressDecode = address => bs58check.decode(address).slice(1);
@ -32,7 +32,7 @@ const buildOutputScript = outputs => {
let outputScript = [...numberToCompactSizeUInt(outputs.length)];
for (const { address, value } of outputs) {
for (const {address, value} of outputs) {
const pubKeyHash = addressDecode(address);
const scriptPubKey = [

14
test/unit.js

@ -2,7 +2,7 @@ import test from 'ava';
import buildOutputScript from '..';
test('Single address and value input returns valid output script', t => {
const outputScipt = buildOutputScript([{ address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000 }]);
const outputScipt = buildOutputScript([{address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000}]);
const expectedOutputScript = '0100e1f505000000001976a914da6473ed373e08f46dd8003fca7ba72fbe9c555e88ac';
t.is(outputScipt, expectedOutputScript);
@ -10,8 +10,8 @@ test('Single address and value input returns valid output script', t => {
test('Multiple address and value inputs returns valid output script', t => {
const outputScipt = buildOutputScript([
{ address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000},
{ address: '1BitcoinEaterAddressDontSendf59kuE', value: 100000000}
{address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000},
{address: '1BitcoinEaterAddressDontSendf59kuE', value: 100000000}
]);
const expectedOutputScript = '0200e1f505000000001976a914da6473ed373e08f46dd8003fca7ba72fbe9c555e88ac00e1f505000000001976a914759d6677091e973b9e9d99f19c68fbf43e3f05f988ac';
@ -19,8 +19,8 @@ test('Multiple address and value inputs returns valid output script', t => {
});
test('Altcoin P2PKH addresses with a different pubkey hash prefix returns valid ouput script', t => {
const bitcoinOutputScipt = buildOutputScript([{ address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000 }]);
const litecoinOutputScipt = buildOutputScript([{ address: 'Lf8hucmupbtenQ3VPdxvvJ8gTfAsaon2gf', value: 100000000 }]);
const bitcoinOutputScipt = buildOutputScript([{address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: 100000000}]);
const litecoinOutputScipt = buildOutputScript([{address: 'Lf8hucmupbtenQ3VPdxvvJ8gTfAsaon2gf', value: 100000000}]);
const expectedOutputScript = '0100e1f505000000001976a914da6473ed373e08f46dd8003fca7ba72fbe9c555e88ac';
t.is(bitcoinOutputScipt, litecoinOutputScipt);
@ -30,12 +30,12 @@ test('Altcoin P2PKH addresses with a different pubkey hash prefix returns valid
test('Unsafe integer value throws error', t => {
const MAX_SAFE_INTEGER = 9007199254740991;
const outputScipt = buildOutputScript([{ address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: MAX_SAFE_INTEGER }]);
const outputScipt = buildOutputScript([{address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: MAX_SAFE_INTEGER}]);
const expectedOutputScript = '01ffffffffffff1f001976a914da6473ed373e08f46dd8003fca7ba72fbe9c555e88ac';
t.is(outputScipt, expectedOutputScript);
t.throws(() => buildOutputScript([{ address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: (MAX_SAFE_INTEGER + 1) }]));
t.throws(() => buildOutputScript([{address: '1LukeQU5jwebXbMLDVydeH4vFSobRV9rkj', value: (MAX_SAFE_INTEGER + 1)}]));
});
test('Not passing an array throws error', t => {

Loading…
Cancel
Save