From 0f393cb98964453d3d4886d67c0d3d243e3a5e3f Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Wed, 19 Feb 2014 16:54:41 -0300 Subject: [PATCH 1/5] ECDSA key browser work --- bitcore.js | 2 +- test/index.html | 2 +- test/test.Key.js | 10 +++++++--- 3 files changed, 9 insertions(+), 5 deletions(-) diff --git a/bitcore.js b/bitcore.js index c557f44a1..215aa5985 100644 --- a/bitcore.js +++ b/bitcore.js @@ -24,7 +24,7 @@ module.exports.Block = require('./Block'); module.exports.Connection = require('./Connection'); module.exports.ScriptInterpreter = require('./ScriptInterpreter'); module.exports.Bloom = require('./Bloom'); -module.exports.Key = require('./Key').Key; +module.exports.KeyModule = require('./Key'); module.exports.SINKey = require('./SINKey'); module.exports.SIN = require('./SIN'); module.exports.PrivateKey = require('./PrivateKey'); diff --git a/test/index.html b/test/index.html index 810bfebd9..eaae44d56 100644 --- a/test/index.html +++ b/test/index.html @@ -32,8 +32,8 @@ - diff --git a/test/test.Key.js b/test/test.Key.js index 21c6b3742..1978fed18 100644 --- a/test/test.Key.js +++ b/test/test.Key.js @@ -3,6 +3,8 @@ var chai = require('chai'); var bitcore = require('../bitcore'); +var buffertools = require('buffertools'); + var should = chai.should(); var KeyModule = bitcore.KeyModule; @@ -22,14 +24,37 @@ describe('Key', function() { it('should be able to generateSync instance', function() { var k = Key.generateSync(); should.exist(k); - k.private.length.should.equal(32); - k.public.length.should.equal(33); + (k instanceof Key).should.be.ok; + }); + it('should retain some basic properties', function() { + var k = Key.generateSync(); + should.exist(k.private); + should.exist(k.public); should.exist(k.compressed); }); - + it('should have a valid public key', function() { + var k = Key.generateSync(); + k.compressed.should.be.ok; + k.public.length.should.equal(33); + k.public[0].should.be.above(1); + k.public[0].should.be.below(4); + }); + it('should have a valid private key', function() { + var k = Key.generateSync(); + k.private.length.should.equal(32); + }); + + it('should be able to regenerate from a private key', function() { + var k = Key.generateSync(); + var pkshex = 'b7dafe35d7d1aab78b53982c8ba554584518f86d50af565c98e053613c8f15e0'; + var pubhex = '02211c9570d24ba84a3ee31c8a08e93a6756b3f3beac76a4ab8d9748ca78203389'; + k.private = buffertools.fromHex(new Buffer(pkshex)); + k.regenerateSync(); + k.compressed.should.be.ok; + buffertools.toHex(k.private).should.equal(pkshex); + buffertools.toHex(k.public).should.equal(pubhex); + }); + + + }); - - - - - From b4642e89242cf90e3c422fc625ec4ce17783482a Mon Sep 17 00:00:00 2001 From: Manuel Araoz Date: Fri, 21 Feb 2014 16:48:27 -0300 Subject: [PATCH 4/5] all tests working in browser :D --- Script.js | 16 +- browser/concat.sh | 3 + test/Script.js | 55 --- test/adapter.js | 8 +- test/base58_keys_invalid.json | 152 ------- test/base58_keys_valid.json | 452 ------------------- test/index.html | 9 +- test/test.Block.js | 1 - test/test.Key.js | 3 +- test/test.Script.js | 55 ++- test/test.basic.js | 649 ++++++++++++++++++++++++++-- test/{util-util.js => test.util.js} | 12 +- test/values.json | 7 - 13 files changed, 684 insertions(+), 738 deletions(-) create mode 100755 browser/concat.sh delete mode 100644 test/Script.js delete mode 100644 test/base58_keys_invalid.json delete mode 100644 test/base58_keys_valid.json rename test/{util-util.js => test.util.js} (74%) delete mode 100644 test/values.json diff --git a/Script.js b/Script.js index 5d9856c95..82559c640 100644 --- a/Script.js +++ b/Script.js @@ -145,9 +145,11 @@ function spec(b) { var chunks = []; for (var i in this.chunks) { - var chunk = this.chunks[i]; - if (chunk != 0) - chunks.push(chunk); + if (this.chunks.hasOwnProperty(i)) { + var chunk = this.chunks[i]; + if (chunk != 0) + chunks.push(chunk); + } } this.chunks = chunks; this.updateBuffer(); @@ -157,8 +159,11 @@ function spec(b) { Script.prototype.prependOp0 = function() { var chunks = [0]; - for (i in this.chunks) - chunks.push(this.chunks[i]); + for (i in this.chunks) { + if (this.chunks.hasOwnProperty(i)) { + chunks.push(this.chunks[i]); + } + } this.chunks = chunks; this.updateBuffer(); return this; @@ -486,6 +491,7 @@ function spec(b) { Script.chunksToBuffer = function (chunks) { var buf = new Put(); + for (var i = 0, l = chunks.length; i < l; i++) { var data = chunks[i]; if (Buffer.isBuffer(data)) { diff --git a/browser/concat.sh b/browser/concat.sh new file mode 100755 index 000000000..bf53f7f59 --- /dev/null +++ b/browser/concat.sh @@ -0,0 +1,3 @@ +#! /bin/bash + +cat browser.js crypto.js bitcoin.js navigator-adapter.js jsbn.js jsbn2.js prng4.js util.js rng.js ec.js sec.js ecdsa.js eckey.js > bitcoinjs-lib.js diff --git a/test/Script.js b/test/Script.js deleted file mode 100644 index 98597c72c..000000000 --- a/test/Script.js +++ /dev/null @@ -1,55 +0,0 @@ -var assert = require('assert'); -var Script = require('../Script').class(); -var networks = require('../networks'); - -describe('Script', function(){ - describe('#finishedMultiSig', function(){ - it('should report that this scriptSig has finished being signed', function() { - var scriptHex = '00493046022100954d2aa7af9a2de34b04e4151842933df81acc379580cd0c057883cfb0994a8b022100de1530692eda9cdb567c94e05fc856cfbc26fcf3482148bde85f143032f4902501483045022100d164d174118497d93e0062b573be78d4b9417aee09889cd242a966af73367917022054f095be0bce9edee556a2216239fcad45a7a64d8fb318dc5375c9159724689a014c695221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae'; - //decoded: 0 3046022100954d2aa7af9a2de34b04e4151842933df81acc379580cd0c057883cfb0994a8b022100de1530692eda9cdb567c94e05fc856cfbc26fcf3482148bde85f143032f4902501 3045022100d164d174118497d93e0062b573be78d4b9417aee09889cd242a966af73367917022054f095be0bce9edee556a2216239fcad45a7a64d8fb318dc5375c9159724689a01 5221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae - //meaning: OP_0 sig sig serialized_script - var scriptBuf = new Buffer(scriptHex, 'hex'); - var script = new Script(scriptBuf); - assert.equal(script.finishedMultiSig(), true); - }); - it('should report that this scripSig has not finished being signed', function() { - var scriptHex = '483045022002da7fae9b98615115b7e9a4f1d9efd581463b670f91ec6404a14cb6fc9c4531022100ff449d72ba4e72deb4317267e2d38cec9fd2f58a9afa39c9f5e35f5678694ff50100004c695221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae'; - //decoded: 3045022002da7fae9b98615115b7e9a4f1d9efd581463b670f91ec6404a14cb6fc9c4531022100ff449d72ba4e72deb4317267e2d38cec9fd2f58a9afa39c9f5e35f5678694ff501 0 0 5221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae - //meaning: sig place_holder place_holder serialized_script - var scriptBuf = new Buffer(scriptHex, 'hex'); - var script = new Script(scriptBuf); - assert.equal(script.finishedMultiSig(), false); - }); - }); - - describe('#removePlaceHolders', function(){ - it('should remove place holders from this script', function(){ - var scriptHex = '483045022002da7fae9b98615115b7e9a4f1d9efd581463b670f91ec6404a14cb6fc9c4531022100ff449d72ba4e72deb4317267e2d38cec9fd2f58a9afa39c9f5e35f5678694ff50100004c695221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae'; - //decoded: 3045022002da7fae9b98615115b7e9a4f1d9efd581463b670f91ec6404a14cb6fc9c4531022100ff449d72ba4e72deb4317267e2d38cec9fd2f58a9afa39c9f5e35f5678694ff501 0 0 5221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae - //meaning: sig place_holder place_holder serialized_script - var scriptBuf = new Buffer(scriptHex, 'hex'); - var script = new Script(scriptBuf); - script.removePlaceHolders(); - - var scriptHex2 = '483045022002da7fae9b98615115b7e9a4f1d9efd581463b670f91ec6404a14cb6fc9c4531022100ff449d72ba4e72deb4317267e2d38cec9fd2f58a9afa39c9f5e35f5678694ff5014c695221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae'; - //decoded: 3045022002da7fae9b98615115b7e9a4f1d9efd581463b670f91ec6404a14cb6fc9c4531022100ff449d72ba4e72deb4317267e2d38cec9fd2f58a9afa39c9f5e35f5678694ff501 5221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae - //meaning: sig serialized_script - var scriptBuf2 = new Buffer(scriptHex2, 'hex'); - var script2 = new Script(scriptBuf2); - - assert.equal(script.buffer.toString('hex'), script2.buffer.toString('hex')); - }); - }); - - describe('prependOp0', function() { - it('should prepend the script with OP_0', function() { - var scriptHex = '483045022002da7fae9b98615115b7e9a4f1d9efd581463b670f91ec6404a14cb6fc9c4531022100ff449d72ba4e72deb4317267e2d38cec9fd2f58a9afa39c9f5e35f5678694ff50100004c695221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae'; - //decoded: 3045022002da7fae9b98615115b7e9a4f1d9efd581463b670f91ec6404a14cb6fc9c4531022100ff449d72ba4e72deb4317267e2d38cec9fd2f58a9afa39c9f5e35f5678694ff501 0 0 5221033e4cc6b6ee8d8ce3335fed6d4917b2bbbac0f5743b2ced101ba036f95c51e59421023147410ce15e0a31c2bb970cdf01517266dc2c9182f5938636ed363cfd4cc3ae210342a3c8a4b20c7a122a011a07063df04e4c5ad520a1302a2a66e174fd9b0d4ea453ae - //meaning: sig place_holder place_holder serialized_script - var scriptBuf = new Buffer(scriptHex, 'hex'); - var script = new Script(scriptBuf); - script.prependOp0(); - assert.equal(script.chunks[0], 0); - }); - }); -}); diff --git a/test/adapter.js b/test/adapter.js index b4d8bda03..0f8573bf3 100644 --- a/test/adapter.js +++ b/test/adapter.js @@ -10,13 +10,11 @@ if (typeof require === 'undefined') { var module = that[name]; if (!module) { if (!bitcore[name]) - throw new Error('Cannot find module "'+name+'"'); + throw new Error('Cannot find module "' + name + '"'); return bitcore[name]; } return module; }; - + this.Buffer = require('Buffer'); + } - -this.Buffer = require('Buffer'); - diff --git a/test/base58_keys_invalid.json b/test/base58_keys_invalid.json deleted file mode 100644 index a088620f1..000000000 --- a/test/base58_keys_invalid.json +++ /dev/null @@ -1,152 +0,0 @@ -[ - [ - "" - ], - [ - "x" - ], - [ - "37qgekLpCCHrQuSjvX3fs496FWTGsHFHizjJAs6NPcR47aefnnCWECAhHV6E3g4YN7u7Yuwod5Y" - ], - [ - "dzb7VV1Ui55BARxv7ATxAtCUeJsANKovDGWFVgpTbhq9gvPqP3yv" - ], - [ - "MuNu7ZAEDFiHthiunm7dPjwKqrVNCM3mAz6rP9zFveQu14YA8CxExSJTHcVP9DErn6u84E6Ej7S" - ], - [ - "rPpQpYknyNQ5AEHuY6H8ijJJrYc2nDKKk9jjmKEXsWzyAQcFGpDLU2Zvsmoi8JLR7hAwoy3RQWf" - ], - [ - "4Uc3FmN6NQ6zLBK5QQBXRBUREaaHwCZYsGCueHauuDmJpZKn6jkEskMB2Zi2CNgtb5r6epWEFfUJq" - ], - [ - "7aQgR5DFQ25vyXmqZAWmnVCjL3PkBcdVkBUpjrjMTcghHx3E8wb" - ], - [ - "17QpPprjeg69fW1DV8DcYYCKvWjYhXvWkov6MJ1iTTvMFj6weAqW7wybZeH57WTNxXVCRH4veVs" - ], - [ - "KxuACDviz8Xvpn1xAh9MfopySZNuyajYMZWz16Dv2mHHryznWUp3" - ], - [ - "7nK3GSmqdXJQtdohvGfJ7KsSmn3TmGqExug49583bDAL91pVSGq5xS9SHoAYL3Wv3ijKTit65th" - ], - [ - "cTivdBmq7bay3RFGEBBuNfMh2P1pDCgRYN2Wbxmgwr4ki3jNUL2va" - ], - [ - "gjMV4vjNjyMrna4fsAr8bWxAbwtmMUBXJS3zL4NJt5qjozpbQLmAfK1uA3CquSqsZQMpoD1g2nk" - ], - [ - "emXm1naBMoVzPjbk7xpeTVMFy4oDEe25UmoyGgKEB1gGWsK8kRGs" - ], - [ - "7VThQnNRj1o3Zyvc7XHPRrjDf8j2oivPTeDXnRPYWeYGE4pXeRJDZgf28ppti5hsHWXS2GSobdqyo" - ], - [ - "1G9u6oCVCPh2o8m3t55ACiYvG1y5BHewUkDSdiQarDcYXXhFHYdzMdYfUAhfxn5vNZBwpgUNpso" - ], - [ - "31QQ7ZMLkScDiB4VyZjuptr7AEc9j1SjstF7pRoLhHTGkW4Q2y9XELobQmhhWxeRvqcukGd1XCq" - ], - [ - "DHqKSnpxa8ZdQyH8keAhvLTrfkyBMQxqngcQA5N8LQ9KVt25kmGN" - ], - [ - "2LUHcJPbwLCy9GLH1qXmfmAwvadWw4bp4PCpDfduLqV17s6iDcy1imUwhQJhAoNoN1XNmweiJP4i" - ], - [ - "7USRzBXAnmck8fX9HmW7RAb4qt92VFX6soCnts9s74wxm4gguVhtG5of8fZGbNPJA83irHVY6bCos" - ], - [ - "1DGezo7BfVebZxAbNT3XGujdeHyNNBF3vnficYoTSp4PfK2QaML9bHzAMxke3wdKdHYWmsMTJVu" - ], - [ - "2D12DqDZKwCxxkzs1ZATJWvgJGhQ4cFi3WrizQ5zLAyhN5HxuAJ1yMYaJp8GuYsTLLxTAz6otCfb" - ], - [ - "8AFJzuTujXjw1Z6M3fWhQ1ujDW7zsV4ePeVjVo7D1egERqSW9nZ" - ], - [ - "163Q17qLbTCue8YY3AvjpUhotuaodLm2uqMhpYirsKjVqnxJRWTEoywMVY3NbBAHuhAJ2cF9GAZ" - ], - [ - "2MnmgiRH4eGLyLc9eAqStzk7dFgBjFtUCtu" - ], - [ - "461QQ2sYWxU7H2PV4oBwJGNch8XVTYYbZxU" - ], - [ - "2UCtv53VttmQYkVU4VMtXB31REvQg4ABzs41AEKZ8UcB7DAfVzdkV9JDErwGwyj5AUHLkmgZeobs" - ], - [ - "cSNjAsnhgtiFMi6MtfvgscMB2Cbhn2v1FUYfviJ1CdjfidvmeW6mn" - ], - [ - "gmsow2Y6EWAFDFE1CE4Hd3Tpu2BvfmBfG1SXsuRARbnt1WjkZnFh1qGTiptWWbjsq2Q6qvpgJVj" - ], - [ - "nksUKSkzS76v8EsSgozXGMoQFiCoCHzCVajFKAXqzK5on9ZJYVHMD5CKwgmX3S3c7M1U3xabUny" - ], - [ - "L3favK1UzFGgdzYBF2oBT5tbayCo4vtVBLJhg2iYuMeePxWG8SQc" - ], - [ - "7VxLxGGtYT6N99GdEfi6xz56xdQ8nP2dG1CavuXx7Rf2PrvNMTBNevjkfgs9JmkcGm6EXpj8ipyPZ" - ], - [ - "2mbZwFXF6cxShaCo2czTRB62WTx9LxhTtpP" - ], - [ - "dB7cwYdcPSgiyAwKWL3JwCVwSk6epU2txw" - ], - [ - "HPhFUhUAh8ZQQisH8QQWafAxtQYju3SFTX" - ], - [ - "4ctAH6AkHzq5ioiM1m9T3E2hiYEev5mTsB" - ], - [ - "Hn1uFi4dNexWrqARpjMqgT6cX1UsNPuV3cHdGg9ExyXw8HTKadbktRDtdeVmY3M1BxJStiL4vjJ" - ], - [ - "Sq3fDbvutABmnAHHExJDgPLQn44KnNC7UsXuT7KZecpaYDMU9Txs" - ], - [ - "6TqWyrqdgUEYDQU1aChMuFMMEimHX44qHFzCUgGfqxGgZNMUVWJ" - ], - [ - "giqJo7oWqFxNKWyrgcBxAVHXnjJ1t6cGoEffce5Y1y7u649Noj5wJ4mmiUAKEVVrYAGg2KPB3Y4" - ], - [ - "cNzHY5e8vcmM3QVJUcjCyiKMYfeYvyueq5qCMV3kqcySoLyGLYUK" - ], - [ - "37uTe568EYc9WLoHEd9jXEvUiWbq5LFLscNyqvAzLU5vBArUJA6eydkLmnMwJDjkL5kXc2VK7ig" - ], - [ - "EsYbG4tWWWY45G31nox838qNdzksbPySWc" - ], - [ - "nbuzhfwMoNzA3PaFnyLcRxE9bTJPDkjZ6Rf6Y6o2ckXZfzZzXBT" - ], - [ - "cQN9PoxZeCWK1x56xnz6QYAsvR11XAce3Ehp3gMUdfSQ53Y2mPzx" - ], - [ - "1Gm3N3rkef6iMbx4voBzaxtXcmmiMTqZPhcuAepRzYUJQW4qRpEnHvMojzof42hjFRf8PE2jPde" - ], - [ - "2TAq2tuN6x6m233bpT7yqdYQPELdTDJn1eU" - ], - [ - "ntEtnnGhqPii4joABvBtSEJG6BxjT2tUZqE8PcVYgk3RHpgxgHDCQxNbLJf7ardf1dDk2oCQ7Cf" - ], - [ - "Ky1YjoZNgQ196HJV3HpdkecfhRBmRZdMJk89Hi5KGfpfPwS2bUbfd" - ], - [ - "2A1q1YsMZowabbvta7kTy2Fd6qN4r5ZCeG3qLpvZBMzCixMUdkN2Y4dHB1wPsZAeVXUGD83MfRED" - ] -] diff --git a/test/base58_keys_valid.json b/test/base58_keys_valid.json deleted file mode 100644 index e1e252e22..000000000 --- a/test/base58_keys_valid.json +++ /dev/null @@ -1,452 +0,0 @@ -[ - [ - "1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i", - "65a16059864a2fdbc7c99a4723a8395bc6f188eb", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou", - "74f209f6ea907e2ea48f74fae05782ae8a665257", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs", - "53c0307d6851aa0ce7825ba883c6bd9ad242b486", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br", - "6349a418fc4578d10a372b54b45c280cc8c4382f", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr", - "eddbdc1168f1daeadbd3e44c1e3f8f5a284c2029f78ad26af98583a499de5b19", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "Kz6UJmQACJmLtaQj5A3JAge4kVTNQ8gbvXuwbmCj7bsaabudb3RD", - "55c9bccb9ed68446d1b75273bbce89d7fe013a8acd1625514420fb2aca1a21c4", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "9213qJab2HNEpMpYNBa7wHGFKKbkDn24jpANDs2huN3yi4J11ko", - "36cb93b9ab1bdabf7fb9f2c04f1b9cc879933530ae7842398eef5a63a56800c2", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "cTpB4YiyKiBcPxnefsDpbnDxFDffjqJob8wGCEDXxgQ7zQoMXJdH", - "b9f4892c9e8282028fea1d2667c4dc5213564d41fc5783896a0d843fc15089f3", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "1Ax4gZtb7gAit2TivwejZHYtNNLT18PUXJ", - "6d23156cbbdcc82a5a47eee4c2c7c583c18b6bf4", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "3QjYXhTkvuj8qPaXHTTWb5wjXhdsLAAWVy", - "fcc5460dd6e2487c7d75b1963625da0e8f4c5975", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "n3ZddxzLvAY9o7184TB4c6FJasAybsw4HZ", - "f1d470f9b02370fdec2e6b708b08ac431bf7a5f7", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "2NBFNJTktNa7GZusGbDbGKRZTxdK9VVez3n", - "c579342c2c4c9220205e2cdc285617040c924a0a", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "5K494XZwps2bGyeL71pWid4noiSNA2cfCibrvRWqcHSptoFn7rc", - "a326b95ebae30164217d7a7f57d72ab2b54e3be64928a19da0210b9568d4015e", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "L1RrrnXkcKut5DEMwtDthjwRcTTwED36thyL1DebVrKuwvohjMNi", - "7d998b45c219a1e38e99e7cbd312ef67f77a455a9b50c730c27f02c6f730dfb4", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "93DVKyFYwSN6wEo3E2fCrFPUp17FtrtNi2Lf7n4G3garFb16CRj", - "d6bca256b5abc5602ec2e1c121a08b0da2556587430bcf7e1898af2224885203", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "cTDVKtMGVYWTHCb1AFjmVbEbWjvKpKqKgMaR3QJxToMSQAhmCeTN", - "a81ca4e8f90181ec4b61b6a7eb998af17b2cb04de8a03b504b9e34c4c61db7d9", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "1C5bSj1iEGUgSTbziymG7Cn18ENQuT36vv", - "7987ccaa53d02c8873487ef919677cd3db7a6912", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "3AnNxabYGoTxYiTEZwFEnerUoeFXK2Zoks", - "63bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "n3LnJXCqbPjghuVs8ph9CYsAe4Sh4j97wk", - "ef66444b5b17f14e8fae6e7e19b045a78c54fd79", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "2NB72XtkjpnATMggui83aEtPawyyKvnbX2o", - "c3e55fceceaa4391ed2a9677f4a4d34eacd021a0", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "5KaBW9vNtWNhc3ZEDyNCiXLPdVPHCikRxSBWwV9NrpLLa4LsXi9", - "e75d936d56377f432f404aabb406601f892fd49da90eb6ac558a733c93b47252", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "L1axzbSyynNYA8mCAhzxkipKkfHtAXYF4YQnhSKcLV8YXA874fgT", - "8248bd0375f2f75d7e274ae544fb920f51784480866b102384190b1addfbaa5c", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "927CnUkUbasYtDwYwVn2j8GdTuACNnKkjZ1rpZd2yBB1CLcnXpo", - "44c4f6a096eac5238291a94cc24c01e3b19b8d8cef72874a079e00a242237a52", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "cUcfCMRjiQf85YMzzQEk9d1s5A4K7xL5SmBCLrezqXFuTVefyhY7", - "d1de707020a9059d6d3abaf85e17967c6555151143db13dbb06db78df0f15c69", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "1Gqk4Tv79P91Cc1STQtU3s1W6277M2CVWu", - "adc1cc2081a27206fae25792f28bbc55b831549d", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "33vt8ViH5jsr115AGkW6cEmEz9MpvJSwDk", - "188f91a931947eddd7432d6e614387e32b244709", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "mhaMcBxNh5cqXm4aTQ6EcVbKtfL6LGyK2H", - "1694f5bc1a7295b600f40018a618a6ea48eeb498", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "2MxgPqX1iThW3oZVk9KoFcE5M4JpiETssVN", - "3b9b3fd7a50d4f08d1a5b0f62f644fa7115ae2f3", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "5HtH6GdcwCJA4ggWEL1B3jzBBUB8HPiBi9SBc5h9i4Wk4PSeApR", - "091035445ef105fa1bb125eccfb1882f3fe69592265956ade751fd095033d8d0", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "L2xSYmMeVo3Zek3ZTsv9xUrXVAmrWxJ8Ua4cw8pkfbQhcEFhkXT8", - "ab2b4bcdfc91d34dee0ae2a8c6b6668dadaeb3a88b9859743156f462325187af", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "92xFEve1Z9N8Z641KQQS7ByCSb8kGjsDzw6fAmjHN1LZGKQXyMq", - "b4204389cef18bbe2b353623cbf93e8678fbc92a475b664ae98ed594e6cf0856", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "cVM65tdYu1YK37tNoAyGoJTR13VBYFva1vg9FLuPAsJijGvG6NEA", - "e7b230133f1b5489843260236b06edca25f66adb1be455fbd38d4010d48faeef", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "1JwMWBVLtiqtscbaRHai4pqHokhFCbtoB4", - "c4c1b72491ede1eedaca00618407ee0b772cad0d", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "3QCzvfL4ZRvmJFiWWBVwxfdaNBT8EtxB5y", - "f6fe69bcb548a829cce4c57bf6fff8af3a5981f9", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "mizXiucXRCsEriQCHUkCqef9ph9qtPbZZ6", - "261f83568a098a8638844bd7aeca039d5f2352c0", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "2NEWDzHWwY5ZZp8CQWbB7ouNMLqCia6YRda", - "e930e1834a4d234702773951d627cce82fbb5d2e", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "5KQmDryMNDcisTzRp3zEq9e4awRmJrEVU1j5vFRTKpRNYPqYrMg", - "d1fab7ab7385ad26872237f1eb9789aa25cc986bacc695e07ac571d6cdac8bc0", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "L39Fy7AC2Hhj95gh3Yb2AU5YHh1mQSAHgpNixvm27poizcJyLtUi", - "b0bbede33ef254e8376aceb1510253fc3550efd0fcf84dcd0c9998b288f166b3", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "91cTVUcgydqyZLgaANpf1fvL55FH53QMm4BsnCADVNYuWuqdVys", - "037f4192c630f399d9271e26c575269b1d15be553ea1a7217f0cb8513cef41cb", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "cQspfSzsgLeiJGB2u8vrAiWpCU4MxUT6JseWo2SjXy4Qbzn2fwDw", - "6251e205e8ad508bab5596bee086ef16cd4b239e0cc0c5d7c4e6035441e7d5de", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "19dcawoKcZdQz365WpXWMhX6QCUpR9SY4r", - "5eadaf9bb7121f0f192561a5a62f5e5f54210292", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "37Sp6Rv3y4kVd1nQ1JV5pfqXccHNyZm1x3", - "3f210e7277c899c3a155cc1c90f4106cbddeec6e", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "myoqcgYiehufrsnnkqdqbp69dddVDMopJu", - "c8a3c2a09a298592c3e180f02487cd91ba3400b5", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "2N7FuwuUuoTBrDFdrAZ9KxBmtqMLxce9i1C", - "99b31df7c9068d1481b596578ddbb4d3bd90baeb", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": true - } - ], - [ - "5KL6zEaMtPRXZKo1bbMq7JDjjo1bJuQcsgL33je3oY8uSJCR5b4", - "c7666842503db6dc6ea061f092cfb9c388448629a6fe868d068c42a488b478ae", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "KwV9KAfwbwt51veZWNscRTeZs9CKpojyu1MsPnaKTF5kz69H1UN2", - "07f0803fc5399e773555ab1e8939907e9badacc17ca129e67a2f5f2ff84351dd", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": false - } - ], - [ - "93N87D6uxSBzwXvpokpzg8FFmfQPmvX4xHoWQe3pLdYpbiwT5YV", - "ea577acfb5d1d14d3b7b195c321566f12f87d2b77ea3a53f68df7ebf8604a801", - { - "isCompressed": false, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "cMxXusSihaX58wpJ3tNuuUcZEQGt6DKJ1wEpxys88FFaQCYjku9h", - "0b3b34f0958d8a268193a9814da92c3e8b58b4a4378a542863e34ac289cd830c", - { - "isCompressed": true, - "isPrivkey": true, - "isTestnet": true - } - ], - [ - "13p1ijLwsnrcuyqcTvJXkq2ASdXqcnEBLE", - "1ed467017f043e91ed4c44b4e8dd674db211c4e6", - { - "addrType": "pubkey", - "isPrivkey": false, - "isTestnet": false - } - ], - [ - "3ALJH9Y951VCGcVZYAdpA3KchoP9McEj1G", - "5ece0cadddc415b1980f001785947120acdb36fc", - { - "addrType": "script", - "isPrivkey": false, - "isTestnet": false - } - ] -] diff --git a/test/index.html b/test/index.html index fb6dce79b..bed91bd8c 100644 --- a/test/index.html +++ b/test/index.html @@ -15,10 +15,12 @@ + + @@ -29,14 +31,13 @@ + + - - + diff --git a/test/test.basic.js b/test/test.basic.js index e3d952565..ea7b48f2a 100644 --- a/test/test.basic.js +++ b/test/test.basic.js @@ -9,6 +9,8 @@ var PrivateKey = bitcore.PrivateKey.class(); var networks = bitcore.networks; var KeyModule = bitcore.KeyModule; +var test_data = require('../browser/testdata'); + function test_encode_priv(b58, payload, isTestnet, isCompressed) { var network = isTestnet ? networks.testnet : networks.livenet; @@ -107,571 +109,8 @@ function is_invalid(datum) { valid.should.equal(false); } -var dataValid = [ - [ - '1AGNa15ZQXAZUgFiqJ2i7Z2DPU2J6hW62i', - '65a16059864a2fdbc7c99a4723a8395bc6f188eb', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - '3CMNFxN1oHBc4R1EpboAL5yzHGgE611Xou', - '74f209f6ea907e2ea48f74fae05782ae8a665257', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - 'mo9ncXisMeAoXwqcV5EWuyncbmCcQN4rVs', - '53c0307d6851aa0ce7825ba883c6bd9ad242b486', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '2N2JD6wb56AfK4tfmM6PwdVmoYk2dCKf4Br', - '6349a418fc4578d10a372b54b45c280cc8c4382f', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '5Kd3NBUAdUnhyzenEwVLy9pBKxSwXvE9FMPyR4UKZvpe6E3AgLr', - 'eddbdc1168f1daeadbd3e44c1e3f8f5a284c2029f78ad26af98583a499de5b19', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - 'Kz6UJmQACJmLtaQj5A3JAge4kVTNQ8gbvXuwbmCj7bsaabudb3RD', - '55c9bccb9ed68446d1b75273bbce89d7fe013a8acd1625514420fb2aca1a21c4', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - '9213qJab2HNEpMpYNBa7wHGFKKbkDn24jpANDs2huN3yi4J11ko', - '36cb93b9ab1bdabf7fb9f2c04f1b9cc879933530ae7842398eef5a63a56800c2', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - 'cTpB4YiyKiBcPxnefsDpbnDxFDffjqJob8wGCEDXxgQ7zQoMXJdH', - 'b9f4892c9e8282028fea1d2667c4dc5213564d41fc5783896a0d843fc15089f3', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - '1Ax4gZtb7gAit2TivwejZHYtNNLT18PUXJ', - '6d23156cbbdcc82a5a47eee4c2c7c583c18b6bf4', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - '3QjYXhTkvuj8qPaXHTTWb5wjXhdsLAAWVy', - 'fcc5460dd6e2487c7d75b1963625da0e8f4c5975', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - 'n3ZddxzLvAY9o7184TB4c6FJasAybsw4HZ', - 'f1d470f9b02370fdec2e6b708b08ac431bf7a5f7', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '2NBFNJTktNa7GZusGbDbGKRZTxdK9VVez3n', - 'c579342c2c4c9220205e2cdc285617040c924a0a', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '5K494XZwps2bGyeL71pWid4noiSNA2cfCibrvRWqcHSptoFn7rc', - 'a326b95ebae30164217d7a7f57d72ab2b54e3be64928a19da0210b9568d4015e', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - 'L1RrrnXkcKut5DEMwtDthjwRcTTwED36thyL1DebVrKuwvohjMNi', - '7d998b45c219a1e38e99e7cbd312ef67f77a455a9b50c730c27f02c6f730dfb4', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - '93DVKyFYwSN6wEo3E2fCrFPUp17FtrtNi2Lf7n4G3garFb16CRj', - 'd6bca256b5abc5602ec2e1c121a08b0da2556587430bcf7e1898af2224885203', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - 'cTDVKtMGVYWTHCb1AFjmVbEbWjvKpKqKgMaR3QJxToMSQAhmCeTN', - 'a81ca4e8f90181ec4b61b6a7eb998af17b2cb04de8a03b504b9e34c4c61db7d9', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - '1C5bSj1iEGUgSTbziymG7Cn18ENQuT36vv', - '7987ccaa53d02c8873487ef919677cd3db7a6912', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - '3AnNxabYGoTxYiTEZwFEnerUoeFXK2Zoks', - '63bcc565f9e68ee0189dd5cc67f1b0e5f02f45cb', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - 'n3LnJXCqbPjghuVs8ph9CYsAe4Sh4j97wk', - 'ef66444b5b17f14e8fae6e7e19b045a78c54fd79', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '2NB72XtkjpnATMggui83aEtPawyyKvnbX2o', - 'c3e55fceceaa4391ed2a9677f4a4d34eacd021a0', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '5KaBW9vNtWNhc3ZEDyNCiXLPdVPHCikRxSBWwV9NrpLLa4LsXi9', - 'e75d936d56377f432f404aabb406601f892fd49da90eb6ac558a733c93b47252', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - 'L1axzbSyynNYA8mCAhzxkipKkfHtAXYF4YQnhSKcLV8YXA874fgT', - '8248bd0375f2f75d7e274ae544fb920f51784480866b102384190b1addfbaa5c', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - '927CnUkUbasYtDwYwVn2j8GdTuACNnKkjZ1rpZd2yBB1CLcnXpo', - '44c4f6a096eac5238291a94cc24c01e3b19b8d8cef72874a079e00a242237a52', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - 'cUcfCMRjiQf85YMzzQEk9d1s5A4K7xL5SmBCLrezqXFuTVefyhY7', - 'd1de707020a9059d6d3abaf85e17967c6555151143db13dbb06db78df0f15c69', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - '1Gqk4Tv79P91Cc1STQtU3s1W6277M2CVWu', - 'adc1cc2081a27206fae25792f28bbc55b831549d', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - '33vt8ViH5jsr115AGkW6cEmEz9MpvJSwDk', - '188f91a931947eddd7432d6e614387e32b244709', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - 'mhaMcBxNh5cqXm4aTQ6EcVbKtfL6LGyK2H', - '1694f5bc1a7295b600f40018a618a6ea48eeb498', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '2MxgPqX1iThW3oZVk9KoFcE5M4JpiETssVN', - '3b9b3fd7a50d4f08d1a5b0f62f644fa7115ae2f3', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '5HtH6GdcwCJA4ggWEL1B3jzBBUB8HPiBi9SBc5h9i4Wk4PSeApR', - '091035445ef105fa1bb125eccfb1882f3fe69592265956ade751fd095033d8d0', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - 'L2xSYmMeVo3Zek3ZTsv9xUrXVAmrWxJ8Ua4cw8pkfbQhcEFhkXT8', - 'ab2b4bcdfc91d34dee0ae2a8c6b6668dadaeb3a88b9859743156f462325187af', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - '92xFEve1Z9N8Z641KQQS7ByCSb8kGjsDzw6fAmjHN1LZGKQXyMq', - 'b4204389cef18bbe2b353623cbf93e8678fbc92a475b664ae98ed594e6cf0856', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - 'cVM65tdYu1YK37tNoAyGoJTR13VBYFva1vg9FLuPAsJijGvG6NEA', - 'e7b230133f1b5489843260236b06edca25f66adb1be455fbd38d4010d48faeef', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - '1JwMWBVLtiqtscbaRHai4pqHokhFCbtoB4', - 'c4c1b72491ede1eedaca00618407ee0b772cad0d', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - '3QCzvfL4ZRvmJFiWWBVwxfdaNBT8EtxB5y', - 'f6fe69bcb548a829cce4c57bf6fff8af3a5981f9', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - 'mizXiucXRCsEriQCHUkCqef9ph9qtPbZZ6', - '261f83568a098a8638844bd7aeca039d5f2352c0', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '2NEWDzHWwY5ZZp8CQWbB7ouNMLqCia6YRda', - 'e930e1834a4d234702773951d627cce82fbb5d2e', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '5KQmDryMNDcisTzRp3zEq9e4awRmJrEVU1j5vFRTKpRNYPqYrMg', - 'd1fab7ab7385ad26872237f1eb9789aa25cc986bacc695e07ac571d6cdac8bc0', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - 'L39Fy7AC2Hhj95gh3Yb2AU5YHh1mQSAHgpNixvm27poizcJyLtUi', - 'b0bbede33ef254e8376aceb1510253fc3550efd0fcf84dcd0c9998b288f166b3', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - '91cTVUcgydqyZLgaANpf1fvL55FH53QMm4BsnCADVNYuWuqdVys', - '037f4192c630f399d9271e26c575269b1d15be553ea1a7217f0cb8513cef41cb', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - 'cQspfSzsgLeiJGB2u8vrAiWpCU4MxUT6JseWo2SjXy4Qbzn2fwDw', - '6251e205e8ad508bab5596bee086ef16cd4b239e0cc0c5d7c4e6035441e7d5de', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - '19dcawoKcZdQz365WpXWMhX6QCUpR9SY4r', - '5eadaf9bb7121f0f192561a5a62f5e5f54210292', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - '37Sp6Rv3y4kVd1nQ1JV5pfqXccHNyZm1x3', - '3f210e7277c899c3a155cc1c90f4106cbddeec6e', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - 'myoqcgYiehufrsnnkqdqbp69dddVDMopJu', - 'c8a3c2a09a298592c3e180f02487cd91ba3400b5', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '2N7FuwuUuoTBrDFdrAZ9KxBmtqMLxce9i1C', - '99b31df7c9068d1481b596578ddbb4d3bd90baeb', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': true - } - ], - [ - '5KL6zEaMtPRXZKo1bbMq7JDjjo1bJuQcsgL33je3oY8uSJCR5b4', - 'c7666842503db6dc6ea061f092cfb9c388448629a6fe868d068c42a488b478ae', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - 'KwV9KAfwbwt51veZWNscRTeZs9CKpojyu1MsPnaKTF5kz69H1UN2', - '07f0803fc5399e773555ab1e8939907e9badacc17ca129e67a2f5f2ff84351dd', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': false - } - ], - [ - '93N87D6uxSBzwXvpokpzg8FFmfQPmvX4xHoWQe3pLdYpbiwT5YV', - 'ea577acfb5d1d14d3b7b195c321566f12f87d2b77ea3a53f68df7ebf8604a801', { - 'isCompressed': false, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - 'cMxXusSihaX58wpJ3tNuuUcZEQGt6DKJ1wEpxys88FFaQCYjku9h', - '0b3b34f0958d8a268193a9814da92c3e8b58b4a4378a542863e34ac289cd830c', { - 'isCompressed': true, - 'isPrivkey': true, - 'isTestnet': true - } - ], - [ - '13p1ijLwsnrcuyqcTvJXkq2ASdXqcnEBLE', - '1ed467017f043e91ed4c44b4e8dd674db211c4e6', { - 'addrType': 'pubkey', - 'isPrivkey': false, - 'isTestnet': false - } - ], - [ - '3ALJH9Y951VCGcVZYAdpA3KchoP9McEj1G', - '5ece0cadddc415b1980f001785947120acdb36fc', { - 'addrType': 'script', - 'isPrivkey': false, - 'isTestnet': false - } - ] -]; - -var dataInvalid = [ - [ - '' - ], - [ - 'x' - ], - [ - '37qgekLpCCHrQuSjvX3fs496FWTGsHFHizjJAs6NPcR47aefnnCWECAhHV6E3g4YN7u7Yuwod5Y' - ], - [ - 'dzb7VV1Ui55BARxv7ATxAtCUeJsANKovDGWFVgpTbhq9gvPqP3yv' - ], - [ - 'MuNu7ZAEDFiHthiunm7dPjwKqrVNCM3mAz6rP9zFveQu14YA8CxExSJTHcVP9DErn6u84E6Ej7S' - ], - [ - 'rPpQpYknyNQ5AEHuY6H8ijJJrYc2nDKKk9jjmKEXsWzyAQcFGpDLU2Zvsmoi8JLR7hAwoy3RQWf' - ], - [ - '4Uc3FmN6NQ6zLBK5QQBXRBUREaaHwCZYsGCueHauuDmJpZKn6jkEskMB2Zi2CNgtb5r6epWEFfUJq' - ], - [ - '7aQgR5DFQ25vyXmqZAWmnVCjL3PkBcdVkBUpjrjMTcghHx3E8wb' - ], - [ - '17QpPprjeg69fW1DV8DcYYCKvWjYhXvWkov6MJ1iTTvMFj6weAqW7wybZeH57WTNxXVCRH4veVs' - ], - [ - 'KxuACDviz8Xvpn1xAh9MfopySZNuyajYMZWz16Dv2mHHryznWUp3' - ], - [ - '7nK3GSmqdXJQtdohvGfJ7KsSmn3TmGqExug49583bDAL91pVSGq5xS9SHoAYL3Wv3ijKTit65th' - ], - [ - 'cTivdBmq7bay3RFGEBBuNfMh2P1pDCgRYN2Wbxmgwr4ki3jNUL2va' - ], - [ - 'gjMV4vjNjyMrna4fsAr8bWxAbwtmMUBXJS3zL4NJt5qjozpbQLmAfK1uA3CquSqsZQMpoD1g2nk' - ], - [ - 'emXm1naBMoVzPjbk7xpeTVMFy4oDEe25UmoyGgKEB1gGWsK8kRGs' - ], - [ - '7VThQnNRj1o3Zyvc7XHPRrjDf8j2oivPTeDXnRPYWeYGE4pXeRJDZgf28ppti5hsHWXS2GSobdqyo' - ], - [ - '1G9u6oCVCPh2o8m3t55ACiYvG1y5BHewUkDSdiQarDcYXXhFHYdzMdYfUAhfxn5vNZBwpgUNpso' - ], - [ - '31QQ7ZMLkScDiB4VyZjuptr7AEc9j1SjstF7pRoLhHTGkW4Q2y9XELobQmhhWxeRvqcukGd1XCq' - ], - [ - 'DHqKSnpxa8ZdQyH8keAhvLTrfkyBMQxqngcQA5N8LQ9KVt25kmGN' - ], - [ - '2LUHcJPbwLCy9GLH1qXmfmAwvadWw4bp4PCpDfduLqV17s6iDcy1imUwhQJhAoNoN1XNmweiJP4i' - ], - [ - '7USRzBXAnmck8fX9HmW7RAb4qt92VFX6soCnts9s74wxm4gguVhtG5of8fZGbNPJA83irHVY6bCos' - ], - [ - '1DGezo7BfVebZxAbNT3XGujdeHyNNBF3vnficYoTSp4PfK2QaML9bHzAMxke3wdKdHYWmsMTJVu' - ], - [ - '2D12DqDZKwCxxkzs1ZATJWvgJGhQ4cFi3WrizQ5zLAyhN5HxuAJ1yMYaJp8GuYsTLLxTAz6otCfb' - ], - [ - '8AFJzuTujXjw1Z6M3fWhQ1ujDW7zsV4ePeVjVo7D1egERqSW9nZ' - ], - [ - '163Q17qLbTCue8YY3AvjpUhotuaodLm2uqMhpYirsKjVqnxJRWTEoywMVY3NbBAHuhAJ2cF9GAZ' - ], - [ - '2MnmgiRH4eGLyLc9eAqStzk7dFgBjFtUCtu' - ], - [ - '461QQ2sYWxU7H2PV4oBwJGNch8XVTYYbZxU' - ], - [ - '2UCtv53VttmQYkVU4VMtXB31REvQg4ABzs41AEKZ8UcB7DAfVzdkV9JDErwGwyj5AUHLkmgZeobs' - ], - [ - 'cSNjAsnhgtiFMi6MtfvgscMB2Cbhn2v1FUYfviJ1CdjfidvmeW6mn' - ], - [ - 'gmsow2Y6EWAFDFE1CE4Hd3Tpu2BvfmBfG1SXsuRARbnt1WjkZnFh1qGTiptWWbjsq2Q6qvpgJVj' - ], - [ - 'nksUKSkzS76v8EsSgozXGMoQFiCoCHzCVajFKAXqzK5on9ZJYVHMD5CKwgmX3S3c7M1U3xabUny' - ], - [ - 'L3favK1UzFGgdzYBF2oBT5tbayCo4vtVBLJhg2iYuMeePxWG8SQc' - ], - [ - '7VxLxGGtYT6N99GdEfi6xz56xdQ8nP2dG1CavuXx7Rf2PrvNMTBNevjkfgs9JmkcGm6EXpj8ipyPZ' - ], - [ - '2mbZwFXF6cxShaCo2czTRB62WTx9LxhTtpP' - ], - [ - 'dB7cwYdcPSgiyAwKWL3JwCVwSk6epU2txw' - ], - [ - 'HPhFUhUAh8ZQQisH8QQWafAxtQYju3SFTX' - ], - [ - '4ctAH6AkHzq5ioiM1m9T3E2hiYEev5mTsB' - ], - [ - 'Hn1uFi4dNexWrqARpjMqgT6cX1UsNPuV3cHdGg9ExyXw8HTKadbktRDtdeVmY3M1BxJStiL4vjJ' - ], - [ - 'Sq3fDbvutABmnAHHExJDgPLQn44KnNC7UsXuT7KZecpaYDMU9Txs' - ], - [ - '6TqWyrqdgUEYDQU1aChMuFMMEimHX44qHFzCUgGfqxGgZNMUVWJ' - ], - [ - 'giqJo7oWqFxNKWyrgcBxAVHXnjJ1t6cGoEffce5Y1y7u649Noj5wJ4mmiUAKEVVrYAGg2KPB3Y4' - ], - [ - 'cNzHY5e8vcmM3QVJUcjCyiKMYfeYvyueq5qCMV3kqcySoLyGLYUK' - ], - [ - '37uTe568EYc9WLoHEd9jXEvUiWbq5LFLscNyqvAzLU5vBArUJA6eydkLmnMwJDjkL5kXc2VK7ig' - ], - [ - 'EsYbG4tWWWY45G31nox838qNdzksbPySWc' - ], - [ - 'nbuzhfwMoNzA3PaFnyLcRxE9bTJPDkjZ6Rf6Y6o2ckXZfzZzXBT' - ], - [ - 'cQN9PoxZeCWK1x56xnz6QYAsvR11XAce3Ehp3gMUdfSQ53Y2mPzx' - ], - [ - '1Gm3N3rkef6iMbx4voBzaxtXcmmiMTqZPhcuAepRzYUJQW4qRpEnHvMojzof42hjFRf8PE2jPde' - ], - [ - '2TAq2tuN6x6m233bpT7yqdYQPELdTDJn1eU' - ], - [ - 'ntEtnnGhqPii4joABvBtSEJG6BxjT2tUZqE8PcVYgk3RHpgxgHDCQxNbLJf7ardf1dDk2oCQ7Cf' - ], - [ - 'Ky1YjoZNgQ196HJV3HpdkecfhRBmRZdMJk89Hi5KGfpfPwS2bUbfd' - ], - [ - '2A1q1YsMZowabbvta7kTy2Fd6qN4r5ZCeG3qLpvZBMzCixMUdkN2Y4dHB1wPsZAeVXUGD83MfRED' - ] -]; -var dataValues = [ - ['0', '0'], - ['1.0', '100000000'], - ['0.1', '10000000'], - ['.1', '10000000'], - ['0.0005', '50000'] -]; - describe('Valid base58 keys', function() { - dataValid.forEach(function(datum) { + test_data.dataValid.forEach(function(datum) { it('valid ' + datum[0], function() { is_valid(datum); }); @@ -679,7 +118,7 @@ describe('Valid base58 keys', function() { }); describe('Invalid base58 keys', function() { - dataInvalid.forEach(function(datum) { + test_data.dataInvalid.forEach(function(datum) { it('invalid ' + datum, function() { is_invalid(datum); }); diff --git a/test/testdata.js b/test/testdata.js new file mode 100644 index 000000000..ecbd66343 --- /dev/null +++ b/test/testdata.js @@ -0,0 +1,9 @@ + + +var fs = require('fs'); + +var dataValid = JSON.parse(fs.readFileSync('test/data/base58_keys_valid.json')); +var dataInvalid = JSON.parse(fs.readFileSync('test/data/base58_keys_invalid.json')); + +module.exports.dataValid = dataValid; +module.exports.dataInvalid = dataInvalid;