Jason Dreyzehner
11 years ago
20 changed files with 376 additions and 21 deletions
@ -0,0 +1,39 @@ |
|||||
|
{ |
||||
|
"node": true, // Enable globals available when code is running inside of the NodeJS runtime environment. |
||||
|
"browser": true, // Standard browser globals e.g. `window`, `document`. |
||||
|
"esnext": true, // Allow ES.next specific features such as `const` and `let`. |
||||
|
"bitwise": false, // Prohibit bitwise operators (&, |, ^, etc.). |
||||
|
"camelcase": false, // Permit only camelcase for `var` and `object indexes`. |
||||
|
"curly": false, // Require {} for every new block or scope. |
||||
|
"eqeqeq": true, // Require triple equals i.e. `===`. |
||||
|
"immed": true, // Require immediate invocations to be wrapped in parens e.g. `( function(){}() );` |
||||
|
"latedef": true, // Prohibit variable use before definition. |
||||
|
"newcap": true, // Require capitalization of all constructor functions e.g. `new F()`. |
||||
|
"noarg": true, // Prohibit use of `arguments.caller` and `arguments.callee`. |
||||
|
"quotmark": "single", // Define quotes to string values. |
||||
|
"regexp": true, // Prohibit `.` and `[^...]` in regular expressions. |
||||
|
"undef": true, // Require all non-global variables be declared before they are used. |
||||
|
"unused": true, // Warn unused variables. |
||||
|
"strict": true, // Require `use strict` pragma in every file. |
||||
|
"trailing": true, // Prohibit trailing whitespaces. |
||||
|
"smarttabs": false, // Suppresses warnings about mixed tabs and spaces |
||||
|
"globals": { // Globals variables. |
||||
|
"angular": true |
||||
|
}, |
||||
|
"predef": [ // Extra globals. |
||||
|
"define", |
||||
|
"require", |
||||
|
"exports", |
||||
|
"module", |
||||
|
"describe", |
||||
|
"before", |
||||
|
"beforeEach", |
||||
|
"after", |
||||
|
"afterEach", |
||||
|
"requirejs", |
||||
|
"it" |
||||
|
], |
||||
|
"indent": false, // Specify indentation spacing |
||||
|
"devel": true, // Allow development statements e.g. `console.log();`. |
||||
|
"noempty": true // Prohibit use of empty blocks. |
||||
|
} |
@ -0,0 +1,48 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
module.exports = function(grunt) { |
||||
|
|
||||
|
//Load NPM tasks
|
||||
|
grunt.loadNpmTasks('grunt-browserify'); |
||||
|
grunt.loadNpmTasks('grunt-contrib-watch'); |
||||
|
grunt.loadNpmTasks('grunt-mocha-test'); |
||||
|
|
||||
|
// Project Configuration
|
||||
|
grunt.initConfig({ |
||||
|
browserify: { |
||||
|
client: { |
||||
|
src: ['bitcore.js'], |
||||
|
dest: 'browser/bundle.js', |
||||
|
options: { |
||||
|
debug: true, |
||||
|
alias: ['browserify-bignum/bignumber.js:bignum'], |
||||
|
standalone: 'bitcore', |
||||
|
} |
||||
|
}, |
||||
|
vendor: { |
||||
|
src: ['browser/vendor_load.js'], |
||||
|
dest: 'browser/vendor.js', |
||||
|
options: { |
||||
|
|
||||
|
} |
||||
|
} |
||||
|
}, |
||||
|
watch: { |
||||
|
scripts: { |
||||
|
files: ['**/*.js', '**/*.html', '!**/node_modules/**', '!**/bundle.js', '!**/vendor.js'], |
||||
|
tasks: ['browserify'/*, 'mochaTest'*/], |
||||
|
}, |
||||
|
}, |
||||
|
mochaTest: { |
||||
|
options: { |
||||
|
reporter: 'spec', |
||||
|
}, |
||||
|
src: ['test/*.js'], |
||||
|
}, |
||||
|
|
||||
|
}); |
||||
|
|
||||
|
grunt.registerTask('default', ['watch']); |
||||
|
|
||||
|
}; |
||||
|
|
@ -0,0 +1,16 @@ |
|||||
|
/* |
||||
|
* Bitcore bindings for the browser |
||||
|
*/ |
||||
|
|
||||
|
|
||||
|
module.exports.bignum = require('bignum'); |
||||
|
module.exports.base58 = require('base58-native'); |
||||
|
module.exports.EncodedData = require('./util/EncodedData'); |
||||
|
module.exports.VersionedData = require('./util/VersionedData'); |
||||
|
module.exports.Address= require('./Address'); |
||||
|
|
||||
|
|
||||
|
if (typeof process.versions === 'undefined') { |
||||
|
module.exports.bignum.config({EXPONENTIAL_AT: 9999999, DECIMAL_PLACES: 0, ROUNDING_MODE: 1}); |
||||
|
} |
||||
|
|
@ -0,0 +1,12 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html lang="en"> |
||||
|
<head> |
||||
|
<meta charset="utf-8"> |
||||
|
<script src="bundle.js"></script> |
||||
|
</head> |
||||
|
<body> |
||||
|
<script type="text/javascript"> |
||||
|
|
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,5 @@ |
|||||
|
|
||||
|
// load modules needed for testing in the browser
|
||||
|
|
||||
|
var fs = require('fs'); |
||||
|
|
@ -0,0 +1,23 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
if (typeof require === 'undefined') { |
||||
|
var that = this; |
||||
|
that.require = function(name) { |
||||
|
var split = name.split('/'); |
||||
|
if (split.length > 0) { |
||||
|
name = split.pop(); |
||||
|
} |
||||
|
var module = that[name]; |
||||
|
if (!module) { |
||||
|
throw new Error('Cannot find module "'+name+'"'); |
||||
|
} |
||||
|
return module; |
||||
|
}; |
||||
|
|
||||
|
} |
||||
|
|
||||
|
|
||||
|
if (typeof module === 'undefined') { |
||||
|
var that = this; |
||||
|
that.module = bitcore.module; |
||||
|
} |
@ -0,0 +1,27 @@ |
|||||
|
<!DOCTYPE html> |
||||
|
<html> |
||||
|
<head> |
||||
|
<title>Mocha</title> |
||||
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> |
||||
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
||||
|
<link rel="stylesheet" href="../node_modules/mocha/mocha.css" /> |
||||
|
</head> |
||||
|
<body> |
||||
|
<div id="mocha"></div> |
||||
|
<script src="../browser/vendor.js"></script> |
||||
|
<script src="../node_modules/mocha/mocha.js"></script> |
||||
|
<script src="../node_modules/chai/chai.js"></script> |
||||
|
<script>mocha.setup('bdd')</script> |
||||
|
<script src="../browser/bundle.js"></script> |
||||
|
<script src="adapter.js"></script> |
||||
|
|
||||
|
<script src="test.main.js"></script> |
||||
|
<script src="test.base58.js"></script> |
||||
|
<script src="test.EncodedData.js"></script> |
||||
|
<script src="test.VersionedData.js"></script> |
||||
|
<script src="test.Address.js"></script> |
||||
|
<script> |
||||
|
mocha.run(); |
||||
|
</script> |
||||
|
</body> |
||||
|
</html> |
@ -0,0 +1,36 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
var chai = require('chai'); |
||||
|
var bitcore = require('../bitcore'); |
||||
|
|
||||
|
var should = chai.should(); |
||||
|
|
||||
|
var AddressModule = bitcore.Address; |
||||
|
var Address; |
||||
|
|
||||
|
describe('Address', function() { |
||||
|
it('should initialze the main object', function() { |
||||
|
should.exist(AddressModule); |
||||
|
}); |
||||
|
it('should be able to create class', function() { |
||||
|
Address = AddressModule.class(); |
||||
|
should.exist(Address); |
||||
|
}); |
||||
|
it('should be able to create Address object', function() { |
||||
|
var a = new Address('1KfyjCgBSMsLqiCbakfSdeoBUqMqLUiu3T'); |
||||
|
should.exist(a); |
||||
|
}); |
||||
|
it('should validate correctly', function() { |
||||
|
var a = new Address("1A1zP1eP5QGefi2DMPTfTL5SLmv7DivfNa"); |
||||
|
var m = new Address("32QBdjycLwbDTuGafUwaU5p5GxzSLPYoF6"); |
||||
|
var b = new Address("11111111111111111111111111122222234"); |
||||
|
a.validate.bind(a).should.not.throw(Error); |
||||
|
m.validate.bind(m).should.not.throw(Error); |
||||
|
b.validate.bind(b).should.throw(Error); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,28 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
var chai = require('chai'); |
||||
|
var bitcore = require('../bitcore'); |
||||
|
|
||||
|
var should = chai.should(); |
||||
|
|
||||
|
var EncodedDataModule = bitcore.EncodedData; |
||||
|
var EncodedData; |
||||
|
|
||||
|
describe('EncodedData', function() { |
||||
|
it('should initialze the main object', function() { |
||||
|
should.exist(EncodedDataModule); |
||||
|
}); |
||||
|
it('should be able to create class', function() { |
||||
|
EncodedData = EncodedDataModule.class(); |
||||
|
should.exist(EncodedData); |
||||
|
}); |
||||
|
it('should be able to create an instance', function() { |
||||
|
var ed = new EncodedData('1GMx4HdDmN78xzGvdQYkwrVqkmLDG1aMNT'); |
||||
|
should.exist(ed); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,34 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
var chai = require('chai'); |
||||
|
var bitcore = require('../bitcore'); |
||||
|
|
||||
|
var should = chai.should(); |
||||
|
|
||||
|
var VersionedDataModule = bitcore.VersionedData; |
||||
|
var VersionedData; |
||||
|
|
||||
|
describe('VersionedData', function() { |
||||
|
it('should initialze the main object', function() { |
||||
|
should.exist(VersionedDataModule); |
||||
|
}); |
||||
|
it('should be able to create class', function() { |
||||
|
VersionedData = VersionedDataModule.class(); |
||||
|
should.exist(VersionedData); |
||||
|
}); |
||||
|
it('should be able to create an instance', function() { |
||||
|
var vd = new VersionedData(); |
||||
|
should.exist(vd); |
||||
|
}); |
||||
|
it('should get correct version', function() { |
||||
|
var vda = new VersionedData('1GMx4HdDmN78xzGvdQYkwrVqkmLDG1aMNT'); |
||||
|
var vdb = new VersionedData('3746djr32k2Lp23UUbdkCTQ6zhMJ7d8MD7'); |
||||
|
vda.version().should.equal(0); |
||||
|
vdb.version().should.equal(5); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
|
||||
|
|
||||
|
|
@ -0,0 +1,45 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
var chai = require('chai'); |
||||
|
var bitcore = require('../bitcore'); |
||||
|
|
||||
|
var expect = chai.expect; |
||||
|
var should = chai.should(); |
||||
|
|
||||
|
var bignum = bitcore.bignum; |
||||
|
var base58 = bitcore.base58; |
||||
|
var base58Check = base58.base58Check; |
||||
|
|
||||
|
describe('bignum module basics', function() { |
||||
|
it('should initialze the main object', function() { |
||||
|
should.exist(bitcore.bignum); |
||||
|
}); |
||||
|
it('should create a bignum from string', function() { |
||||
|
var n = bignum('9832087987979879879879879879879879879879879879'); |
||||
|
should.exist(n); |
||||
|
}); |
||||
|
it('should perform basic math operations', function() { |
||||
|
var b = bignum('782910138827292261791972728324982') |
||||
|
.sub('182373273283402171237474774728373') |
||||
|
.div(13); |
||||
|
b.toNumber().should.equal(46195143503376160811884457968969); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
describe('base58 module', function() { |
||||
|
it('should initialze the main object', function() { |
||||
|
should.exist(bitcore.base58); |
||||
|
}); |
||||
|
it('should obtain the same string in base58 roundtrip', function() { |
||||
|
var m = 'mqqa8xSMVDyf9QxihGnPtap6Mh6qemUkcu'; |
||||
|
base58.encode(base58.decode(m)).should.equal(m); |
||||
|
}); |
||||
|
it('should obtain the same string in base58Check roundtrip', function() { |
||||
|
var m = '1QCJj1gPZKx2EwzGo9Ri8mMBs39STvDYcv'; |
||||
|
base58Check.encode(base58Check.decode(m)).should.equal(m); |
||||
|
}); |
||||
|
}); |
||||
|
|
||||
|
|
||||
|
|
@ -1,3 +1,4 @@ |
|||||
|
'use strict'; |
||||
var assert = require('assert'); |
var assert = require('assert'); |
||||
var fs = require('fs'); |
var fs = require('fs'); |
||||
|
|
@ -0,0 +1,13 @@ |
|||||
|
'use strict'; |
||||
|
|
||||
|
var chai = require('chai'); |
||||
|
var bitcore = require('../bitcore'); |
||||
|
|
||||
|
var expect = chai.expect; |
||||
|
var should = chai.should(); |
||||
|
|
||||
|
describe('Initialization of bitcore', function() { |
||||
|
it('should initialze the main object', function() { |
||||
|
should.exist(bitcore); |
||||
|
}); |
||||
|
}); |
Loading…
Reference in new issue