Merge pull request #646 from bitcoinjs/nbuffix
package: update to typeforce 1.8.7
This commit is contained in:
commit
c61c96acc2
7 changed files with 28 additions and 46 deletions
|
@ -58,7 +58,7 @@
|
||||||
"create-hmac": "^1.1.3",
|
"create-hmac": "^1.1.3",
|
||||||
"ecurve": "^1.0.0",
|
"ecurve": "^1.0.0",
|
||||||
"randombytes": "^2.0.1",
|
"randombytes": "^2.0.1",
|
||||||
"typeforce": "^1.6.2",
|
"typeforce": "^1.8.7",
|
||||||
"wif": "^2.0.1"
|
"wif": "^2.0.1"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
|
43
src/types.js
43
src/types.js
|
@ -1,29 +1,9 @@
|
||||||
var typeforce = require('typeforce')
|
var typeforce = require('typeforce')
|
||||||
|
|
||||||
function nBuffer (value, n) {
|
|
||||||
typeforce(typeforce.Buffer, value)
|
|
||||||
if (value.length !== n) throw new typeforce.TfTypeError('Expected ' + (n * 8) + '-bit Buffer, got ' + (value.length * 8) + '-bit Buffer')
|
|
||||||
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
|
|
||||||
function Hash160bit (value) { return nBuffer(value, 20) }
|
|
||||||
function Hash256bit (value) { return nBuffer(value, 32) }
|
|
||||||
function Buffer256bit (value) { return nBuffer(value, 32) }
|
|
||||||
|
|
||||||
var UINT53_MAX = Math.pow(2, 53) - 1
|
|
||||||
var UINT31_MAX = Math.pow(2, 31) - 1
|
var UINT31_MAX = Math.pow(2, 31) - 1
|
||||||
function UInt2 (value) { return (value & 3) === value }
|
function UInt2 (value) { return (value & 3) === value }
|
||||||
function UInt8 (value) { return (value & 0xff) === value }
|
|
||||||
function UInt32 (value) { return (value >>> 0) === value }
|
|
||||||
function UInt31 (value) {
|
function UInt31 (value) {
|
||||||
return UInt32(value) && value <= UINT31_MAX
|
return typeforce.UInt32(value) && value <= UINT31_MAX
|
||||||
}
|
|
||||||
function UInt53 (value) {
|
|
||||||
return typeforce.Number(value) &&
|
|
||||||
value >= 0 &&
|
|
||||||
value <= UINT53_MAX &&
|
|
||||||
Math.floor(value) === value
|
|
||||||
}
|
}
|
||||||
|
|
||||||
function Bip32Path (value) {
|
function Bip32Path (value) {
|
||||||
|
@ -40,29 +20,26 @@ var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })
|
||||||
var Network = typeforce.compile({
|
var Network = typeforce.compile({
|
||||||
messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
|
messagePrefix: typeforce.oneOf(typeforce.Buffer, typeforce.String),
|
||||||
bip32: {
|
bip32: {
|
||||||
public: UInt32,
|
public: typeforce.UInt32,
|
||||||
private: UInt32
|
private: typeforce.UInt32
|
||||||
},
|
},
|
||||||
pubKeyHash: UInt8,
|
pubKeyHash: typeforce.UInt8,
|
||||||
scriptHash: UInt8,
|
scriptHash: typeforce.UInt8,
|
||||||
wif: UInt8,
|
wif: typeforce.UInt8,
|
||||||
dustThreshold: UInt53
|
dustThreshold: typeforce.UInt53
|
||||||
})
|
})
|
||||||
|
|
||||||
// extend typeforce types with ours
|
// extend typeforce types with ours
|
||||||
var types = {
|
var types = {
|
||||||
BigInt: BigInt,
|
BigInt: BigInt,
|
||||||
Buffer256bit: Buffer256bit,
|
Buffer256bit: typeforce.BufferN(32),
|
||||||
ECPoint: ECPoint,
|
ECPoint: ECPoint,
|
||||||
ECSignature: ECSignature,
|
ECSignature: ECSignature,
|
||||||
Hash160bit: Hash160bit,
|
Hash160bit: typeforce.BufferN(20),
|
||||||
Hash256bit: Hash256bit,
|
Hash256bit: typeforce.BufferN(32),
|
||||||
Network: Network,
|
Network: Network,
|
||||||
UInt2: UInt2,
|
UInt2: UInt2,
|
||||||
UInt8: UInt8,
|
|
||||||
UInt31: UInt31,
|
UInt31: UInt31,
|
||||||
UInt32: UInt32,
|
|
||||||
UInt53: UInt53,
|
|
||||||
Bip32Path: Bip32Path
|
Bip32Path: Bip32Path
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
2
test/fixtures/ecdsa.json
vendored
2
test/fixtures/ecdsa.json
vendored
|
@ -188,7 +188,7 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"description": "Invalid i value (> 3)",
|
"description": "Invalid i value (> 3)",
|
||||||
"exception": "Expected UInt2, got Number 4",
|
"exception": "Expected property \"2\" of type UInt2, got Number 4",
|
||||||
"e": "01",
|
"e": "01",
|
||||||
"signatureRaw": {
|
"signatureRaw": {
|
||||||
"r": "00",
|
"r": "00",
|
||||||
|
|
8
test/fixtures/script.json
vendored
8
test/fixtures/script.json
vendored
|
@ -338,25 +338,25 @@
|
||||||
],
|
],
|
||||||
"pubKeyHashOutput": [
|
"pubKeyHashOutput": [
|
||||||
{
|
{
|
||||||
"exception": "Expected 160-bit Buffer, got 16-bit Buffer",
|
"exception": "Expected Buffer\\(Length: 20\\), got Buffer\\(Length: 2\\)",
|
||||||
"hash": "ffff"
|
"hash": "ffff"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"scriptHashOutput": [
|
"scriptHashOutput": [
|
||||||
{
|
{
|
||||||
"exception": "Expected 160-bit Buffer, got 24-bit Buffer",
|
"exception": "Expected Buffer\\(Length: 20\\), got Buffer\\(Length: 3\\)",
|
||||||
"hash": "ffffff"
|
"hash": "ffffff"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"witnessPubKeyHashOutput": [
|
"witnessPubKeyHashOutput": [
|
||||||
{
|
{
|
||||||
"exception": "Expected 160-bit Buffer, got 24-bit Buffer",
|
"exception": "Expected Buffer\\(Length: 20\\), got Buffer\\(Length: 3\\)",
|
||||||
"hash": "ffffff"
|
"hash": "ffffff"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"witnessScriptHashOutput": [
|
"witnessScriptHashOutput": [
|
||||||
{
|
{
|
||||||
"exception": "Expected 256-bit Buffer, got 24-bit Buffer",
|
"exception": "Expected Buffer\\(Length: 32\\), got Buffer\\(Length: 3\\)",
|
||||||
"hash": "ffffff"
|
"hash": "ffffff"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|
4
test/fixtures/transaction.json
vendored
4
test/fixtures/transaction.json
vendored
|
@ -273,12 +273,12 @@
|
||||||
"invalid": {
|
"invalid": {
|
||||||
"addInput": [
|
"addInput": [
|
||||||
{
|
{
|
||||||
"exception": "Expected 256-bit Buffer, got 240-bit Buffer",
|
"exception": "Expected property \"0\" of type Buffer\\(Length: 32\\), got Buffer\\(Length: 30\\)",
|
||||||
"hash": "0aed1366a73b6057ee7800d737bff1bdf8c448e98d86bc0998f2b009816d",
|
"hash": "0aed1366a73b6057ee7800d737bff1bdf8c448e98d86bc0998f2b009816d",
|
||||||
"index": 0
|
"index": 0
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"exception": "Expected 256-bit Buffer, got 272-bit Buffer",
|
"exception": "Expected property \"0\" of type Buffer\\(Length: 32\\), got Buffer\\(Length: 34\\)",
|
||||||
"hash": "0aed1366a73b6057ee7800d737bff1bdf8c448e98d86bc0998f2b009816da9b0ffff",
|
"hash": "0aed1366a73b6057ee7800d737bff1bdf8c448e98d86bc0998f2b009816da9b0ffff",
|
||||||
"index": 0
|
"index": 0
|
||||||
}
|
}
|
||||||
|
|
|
@ -55,7 +55,7 @@ describe('HDNode', function () {
|
||||||
it('throws when an invalid length chain code is given', function () {
|
it('throws when an invalid length chain code is given', function () {
|
||||||
assert.throws(function () {
|
assert.throws(function () {
|
||||||
new HDNode(keyPair, new Buffer(20))
|
new HDNode(keyPair, new Buffer(20))
|
||||||
}, /Expected 256-bit Buffer, got 160-bit/)
|
}, /Expected property "1" of type Buffer\(Length: 32\), got Buffer\(Length: 20\)/)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
|
@ -27,18 +27,23 @@ describe('types', function () {
|
||||||
})
|
})
|
||||||
|
|
||||||
it('return true for oneOf', function () {
|
it('return true for oneOf', function () {
|
||||||
assert(typeforce(types.oneOf(types.Hash160bit, types.Hash256bit), buffer32byte))
|
assert.doesNotThrow(function () {
|
||||||
assert(typeforce(types.oneOf(types.Hash256bit, types.Hash160bit), buffer32byte))
|
typeforce(types.oneOf(types.Hash160bit, types.Hash256bit), buffer32byte)
|
||||||
|
})
|
||||||
|
|
||||||
|
assert.doesNotThrow(function () {
|
||||||
|
typeforce(types.oneOf(types.Hash256bit, types.Hash160bit), buffer32byte)
|
||||||
|
})
|
||||||
})
|
})
|
||||||
|
|
||||||
it('throws for invalid size', function () {
|
it('throws for invalid size', function () {
|
||||||
assert.throws(function () {
|
assert.throws(function () {
|
||||||
types.Hash160bit(buffer32byte)
|
types.Hash160bit(buffer32byte)
|
||||||
}, /Expected 160-bit Buffer, got 256-bit Buffer/)
|
}, /Expected Buffer\(Length: 20\), got Buffer\(Length: 32\)/)
|
||||||
|
|
||||||
assert.throws(function () {
|
assert.throws(function () {
|
||||||
types.Hash256bit(buffer20byte)
|
types.Hash256bit(buffer20byte)
|
||||||
}, /Expected 256-bit Buffer, got 160-bit Buffer/)
|
}, /Expected Buffer\(Length: 32\), got Buffer\(Length: 20\)/)
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
})
|
})
|
||||||
|
|
Loading…
Add table
Reference in a new issue