Browse Source

Merge pull request #450 from bitcoinjs/duckback

types: restore quacking behaviour
hk-custom-address
Daniel Cousens 9 years ago
parent
commit
b66636ed5e
  1. 8
      src/types.js
  2. 14
      test/types.js

8
src/types.js

@ -1,5 +1,3 @@
var bigi = require('bigi')
var ecurve = require('ecurve')
var typeforce = require('typeforce')
function nBuffer (value, n) {
@ -24,9 +22,9 @@ function UInt53 (value) {
}
// external dependent types
function BigInt (value) { return !typeforce.Null(value) && value.constructor === bigi }
function ECCurve (value) { return !typeforce.Null(value) && value.constructor === ecurve.Curve }
function ECPoint (value) { return !typeforce.Null(value) && value.constructor === ecurve.Point }
var BigInt = typeforce.quacksLike('BigInteger')
var ECCurve = typeforce.quacksLike('Curve')
var ECPoint = typeforce.quacksLike('Point')
// exposed, external API
var ECSignature = typeforce.compile({ r: BigInt, s: BigInt })

14
test/types.js

@ -0,0 +1,14 @@
/* global describe, it */
var assert = require('assert')
var types = require('../src/types')
describe('types', function () {
describe('ECCurve/ECPoint/BigInt', function () {
it('return true for duck types', function () {
assert(types.quacksLike('BigInteger', function BigInteger () {}))
assert(types.quacksLike('Curve', function Curve () {}))
assert(types.quacksLike('Point', function Point () {}))
})
})
})
Loading…
Cancel
Save