From 7dcc8f8b34722e4c881704c36f4e07a2aa559bb2 Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Fri, 30 May 2014 10:29:51 -0300 Subject: [PATCH] minor fix and tests --- js/models/core/Structure.js | 7 +++++-- test/test.Structure.js | 37 +++++++++++++++++++++++++++++++++++++ 2 files changed, 42 insertions(+), 2 deletions(-) create mode 100644 test/test.Structure.js diff --git a/js/models/core/Structure.js b/js/models/core/Structure.js index eaedb88e7..591360815 100644 --- a/js/models/core/Structure.js +++ b/js/models/core/Structure.js @@ -12,7 +12,7 @@ function Structure() { * m / purpose' / cosigner_index / change / address_index */ var PURPOSE = 45; -var MAX_NON_HARDENED = 0x8000000 - 1; +var MAX_NON_HARDENED = 0x80000000 - 1; var SHARED_INDEX = MAX_NON_HARDENED - 0; var ID_INDEX = MAX_NON_HARDENED - 1; @@ -35,6 +35,9 @@ Structure.FullBranch = function(address_index, isChange, cosigner_index) { }; Structure.IdFullBranch = Structure.FullBranch(0, 0, ID_INDEX); Structure.IdBranch = Structure.Branch(0, 0, ID_INDEX); - +Structure.PURPOSE = PURPOSE; +Structure.MAX_NON_HARDENED = MAX_NON_HARDENED; +Structure.SHARED_INDEX = SHARED_INDEX; +Structure.ID_INDEX = ID_INDEX; module.exports = require('soop')(Structure); diff --git a/test/test.Structure.js b/test/test.Structure.js new file mode 100644 index 000000000..722497ab0 --- /dev/null +++ b/test/test.Structure.js @@ -0,0 +1,37 @@ +'use strict'; + +var chai = chai || require('chai'); +var should = chai.should(); +var bitcore = bitcore || require('bitcore'); +var copay = copay || require('../copay'); +var Structure = require('../js/models/core/Structure'); + +describe('Structure model', function() { + it('should have the correct constants', function () { + Structure.MAX_NON_HARDENED.should.equal(Math.pow(2,31) - 1); + Structure.SHARED_INDEX.should.equal(Structure.MAX_NON_HARDENED); + Structure.ID_INDEX.should.equal(Structure.SHARED_INDEX - 1); + Structure.IdFullBranch.should.equal('m/45\'/2147483646/0/0'); + }); + + it('should get the correct branches', function () { + // shared branch (no cosigner index specified) + Structure.FullBranch(0,false).should.equal('m/45\'/2147483647/0/0'); + + // copayer 0, address 0, external address (receiving) + Structure.FullBranch(0,false,0).should.equal('m/45\'/0/0/0'); + + // copayer 0, address 10, external address (receiving) + Structure.FullBranch(0,false,10).should.equal('m/45\'/10/0/0'); + + // copayer 0, address 0, internal address (change) + Structure.FullBranch(0,true,0).should.equal('m/45\'/0/1/0'); + + // copayer 0, address 10, internal address (change) + Structure.FullBranch(10,true,0).should.equal('m/45\'/0/1/10'); + + // copayer 7, address 10, internal address (change) + Structure.FullBranch(10,true,7).should.equal('m/45\'/7/1/10'); + }); + +});