Updates phantomjs test cases for gulp and TypeScript dist files.
This commit is contained in:
parent
c411d9744d
commit
4df78764a2
@ -1,34 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
var fs = require('fs');
|
|
||||||
|
|
||||||
// Create a mock-fs module that can load our gzipped test cases
|
|
||||||
var data = {};
|
|
||||||
fs.readdirSync('tests/tests').forEach(function(filename) {
|
|
||||||
if (!filename.match(/\.json\.gz$/)) { return; }
|
|
||||||
filename = 'tests/tests/' + filename;
|
|
||||||
data['/' + filename] = fs.readFileSync(filename).toString('base64');
|
|
||||||
});
|
|
||||||
fs.writeFileSync('./tests/dist/tests.json', JSON.stringify(data));
|
|
||||||
|
|
||||||
|
|
||||||
module.exports = function(grunt) {
|
|
||||||
grunt.initConfig({
|
|
||||||
browserify: {
|
|
||||||
dist: {
|
|
||||||
files: {
|
|
||||||
'tests/dist/tests.js': './tests/browser.js',
|
|
||||||
},
|
|
||||||
options: {
|
|
||||||
browserifyOptions: {
|
|
||||||
standalone: 'tests',
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
},
|
|
||||||
});
|
|
||||||
|
|
||||||
grunt.loadNpmTasks('grunt-browserify');
|
|
||||||
|
|
||||||
grunt.registerTask('dist', ['browserify']);
|
|
||||||
};
|
|
6603
dist/ethers-contracts.js
vendored
6603
dist/ethers-contracts.js
vendored
File diff suppressed because it is too large
Load Diff
3
dist/ethers-contracts.min.js
vendored
3
dist/ethers-contracts.min.js
vendored
File diff suppressed because one or more lines are too long
7200
dist/ethers-providers.js
vendored
7200
dist/ethers-providers.js
vendored
File diff suppressed because it is too large
Load Diff
4
dist/ethers-providers.min.js
vendored
4
dist/ethers-providers.min.js
vendored
File diff suppressed because one or more lines are too long
7456
dist/ethers-utils.js
vendored
7456
dist/ethers-utils.js
vendored
File diff suppressed because it is too large
Load Diff
3
dist/ethers-utils.min.js
vendored
3
dist/ethers-utils.min.js
vendored
File diff suppressed because one or more lines are too long
12852
dist/ethers-wallet.js
vendored
12852
dist/ethers-wallet.js
vendored
File diff suppressed because one or more lines are too long
7
dist/ethers-wallet.min.js
vendored
7
dist/ethers-wallet.min.js
vendored
File diff suppressed because one or more lines are too long
9926
dist/ethers.js
vendored
9926
dist/ethers.js
vendored
File diff suppressed because one or more lines are too long
10
dist/ethers.min.js
vendored
10
dist/ethers.min.js
vendored
File diff suppressed because one or more lines are too long
1
dist/ethers.min.js.map
vendored
Normal file
1
dist/ethers.min.js.map
vendored
Normal file
File diff suppressed because one or more lines are too long
147
gulpfile.js
Normal file
147
gulpfile.js
Normal file
@ -0,0 +1,147 @@
|
|||||||
|
'use strict';
|
||||||
|
|
||||||
|
var fs = require('fs');
|
||||||
|
var through = require('through');
|
||||||
|
|
||||||
|
var gulp = require("gulp");
|
||||||
|
var ts = require("gulp-typescript");
|
||||||
|
var tsProject = ts.createProject("tsconfig.json");
|
||||||
|
|
||||||
|
var browserify = require("browserify");
|
||||||
|
var source = require('vinyl-source-stream');
|
||||||
|
var tsify = require("tsify");
|
||||||
|
|
||||||
|
var sourcemaps = require('gulp-sourcemaps');
|
||||||
|
var uglify = require('gulp-uglify');
|
||||||
|
var buffer = require('vinyl-buffer');
|
||||||
|
|
||||||
|
/////////////////////////
|
||||||
|
// Transforms
|
||||||
|
|
||||||
|
|
||||||
|
// The elliptic package.json is only used for its version
|
||||||
|
var ellipticPackage = require('elliptic/package.json');
|
||||||
|
ellipticPackage = JSON.stringify({ version: ellipticPackage.version });
|
||||||
|
|
||||||
|
var version = require('./package.json').version;
|
||||||
|
|
||||||
|
var undef = "module.exports = undefined;";
|
||||||
|
var empty = "module.exports = {};";
|
||||||
|
|
||||||
|
// We already have a random Uint8Array browser/node safe source
|
||||||
|
// @TODO: Use path construction instead of ../..
|
||||||
|
var brorand = "var randomBytes = require('../../src.ts/utils').randomBytes; module.exports = function(length) { return randomBytes(length); };";
|
||||||
|
|
||||||
|
var transforms = {
|
||||||
|
// 'ethers.js/package.json': JSON.stringify({ version: version }),
|
||||||
|
|
||||||
|
// Remove the precomputed secp256k1 points
|
||||||
|
"elliptic/lib/elliptic/precomputed/secp256k1.js": undef,
|
||||||
|
|
||||||
|
// Remove curves we don't care about
|
||||||
|
"elliptic/curve/edwards.js": empty,
|
||||||
|
"elliptic/curve/mont.js": empty,
|
||||||
|
"elliptic/lib/elliptic/eddsa/.*": empty,
|
||||||
|
|
||||||
|
// We only use the version from this JSON package
|
||||||
|
"elliptic/package.json" : ellipticPackage,
|
||||||
|
|
||||||
|
// Remove RIPEMD160
|
||||||
|
"hash.js/lib/hash/ripemd.js": "module.exports = {ripemd160: null}",
|
||||||
|
"hash.js/lib/hash/sha/1.js": empty,
|
||||||
|
"hash.js/lib/hash/sha/224.js": empty,
|
||||||
|
"hash.js/lib/hash/sha/384.js": empty,
|
||||||
|
|
||||||
|
// Swap out borland for the random bytes we already have
|
||||||
|
"brorand/index.js": brorand,
|
||||||
|
|
||||||
|
// Used by sha3 if it exists; (so make it no exist)
|
||||||
|
// "process/.*": undef,
|
||||||
|
};
|
||||||
|
|
||||||
|
function transformFile(path) {
|
||||||
|
for (var pattern in transforms) {
|
||||||
|
if (path.match(new RegExp('/' + pattern + '$'))) {
|
||||||
|
return transforms[pattern];
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
function transform(path, options) {
|
||||||
|
var data = '';
|
||||||
|
|
||||||
|
return through(function(chunk) {
|
||||||
|
data += chunk;
|
||||||
|
}, function () {
|
||||||
|
var transformed = transformFile(path);
|
||||||
|
if (transformed != null) {
|
||||||
|
console.log('Transformed:', path);
|
||||||
|
data = transformed;
|
||||||
|
} else {
|
||||||
|
var size = fs.readFileSync(path).length;
|
||||||
|
console.log('Preserved:', path, size);
|
||||||
|
}
|
||||||
|
this.queue(data);
|
||||||
|
this.queue(null);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
function task(name, options) {
|
||||||
|
|
||||||
|
gulp.task(name, function () {
|
||||||
|
|
||||||
|
var result = browserify({
|
||||||
|
basedir: '.',
|
||||||
|
debug: options.debug,
|
||||||
|
entries: [ 'src.ts/' ],
|
||||||
|
cache: {},
|
||||||
|
packageCache: {},
|
||||||
|
standalone: "ethers",
|
||||||
|
transform: [ [ transform, { global: true } ] ],
|
||||||
|
})
|
||||||
|
.plugin(tsify)
|
||||||
|
.bundle()
|
||||||
|
.pipe(source(options.filename))
|
||||||
|
|
||||||
|
if (options.minify) {
|
||||||
|
result = result.pipe(buffer())
|
||||||
|
.pipe(sourcemaps.init({loadMaps: true}))
|
||||||
|
.pipe(uglify())
|
||||||
|
.pipe(sourcemaps.write('./'))
|
||||||
|
}
|
||||||
|
|
||||||
|
result = result.pipe(gulp.dest("dist"));
|
||||||
|
|
||||||
|
return result;
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
task("default", { filename: "ethers.js", debug: false, minify: false });
|
||||||
|
task("debug", { filename: "ethers-debug.js", debug: true, minify: false });
|
||||||
|
task("minified", { filename: "ethers.min.js", debug: false, minify: true });
|
||||||
|
|
||||||
|
|
||||||
|
gulp.task("tests", function() {
|
||||||
|
|
||||||
|
// Create a mock-fs module that can load our gzipped test cases
|
||||||
|
var data = {};
|
||||||
|
fs.readdirSync('tests/tests').forEach(function(filename) {
|
||||||
|
if (!filename.match(/\.json\.gz$/)) { return; }
|
||||||
|
filename = 'tests/tests/' + filename;
|
||||||
|
data['/' + filename] = fs.readFileSync(filename).toString('base64');
|
||||||
|
});
|
||||||
|
fs.writeFileSync('./tests/dist/tests.json', JSON.stringify(data));
|
||||||
|
|
||||||
|
return browserify({
|
||||||
|
basedir: './',
|
||||||
|
debug: false,
|
||||||
|
entries: [ "./tests/browser.js" ],
|
||||||
|
cache: {},
|
||||||
|
packageCache: {},
|
||||||
|
standalone: "tests"
|
||||||
|
})
|
||||||
|
.bundle()
|
||||||
|
.pipe(source("tests.js"))
|
||||||
|
.pipe(gulp.dest("tests/dist/"));
|
||||||
|
});
|
5677
package-lock.json
generated
5677
package-lock.json
generated
File diff suppressed because it is too large
Load Diff
30
package.json
30
package.json
@ -4,12 +4,13 @@
|
|||||||
"description": "Ethereum wallet library.",
|
"description": "Ethereum wallet library.",
|
||||||
"main": "index.js",
|
"main": "index.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"build": "tsc -p ./src.ts",
|
"build": "tsc -p ./tsconfig.json",
|
||||||
"autobuild": "npm run build -- -w",
|
"auto-build": "npm run build -- -w",
|
||||||
|
"dist": "gulp default minified",
|
||||||
"test": "if [ \"$RUN_PHANTOMJS\" = \"1\" ]; then npm run-script test-phantomjs; else npm run-script test-node; fi",
|
"test": "if [ \"$RUN_PHANTOMJS\" = \"1\" ]; then npm run-script test-phantomjs; else npm run-script test-node; fi",
|
||||||
"test-node": "./node_modules/.bin/mocha tests/test-*.js",
|
"test-node": "mocha tests/test-*.js",
|
||||||
"test-phantomjs": "./node_modules/.bin/grunt dist && ./node_modules/.bin/grunt --gruntfile Gruntfile-test.js dist && phantomjs --web-security=false ./node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js ./tests/test.html",
|
"test-phantomjs": "gulp minified tests && phantomjs --web-security=false ./node_modules/mocha-phantomjs-core/mocha-phantomjs-core.js ./tests/test.html",
|
||||||
"version": "grunt dist"
|
"version": "npm dist"
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@types/node": "^10.3.2",
|
"@types/node": "^10.3.2",
|
||||||
@ -24,25 +25,30 @@
|
|||||||
"xmlhttprequest": "1.8.0"
|
"xmlhttprequest": "1.8.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
"browserify": "^16.2.2",
|
||||||
"browserify-zlib": "^0.2.0",
|
"browserify-zlib": "^0.2.0",
|
||||||
"grunt": "^0.4.5",
|
"gulp": "^3.9.1",
|
||||||
"grunt-browserify": "^5.0.0",
|
"gulp-cli": "^2.0.1",
|
||||||
"grunt-cli": "1.2.0",
|
"gulp-sourcemaps": "^2.6.4",
|
||||||
"grunt-contrib-uglify": "^1.0.1",
|
"gulp-typescript": "^5.0.0-alpha.1",
|
||||||
|
"gulp-uglify": "^3.0.0",
|
||||||
"mocha": "^3.2.0",
|
"mocha": "^3.2.0",
|
||||||
"mocha-phantomjs-core": "2.1.2",
|
"mocha-phantomjs-core": "2.1.2",
|
||||||
"solc": "0.4.20",
|
"solc": "0.4.20",
|
||||||
|
"tsify": "^4.0.0",
|
||||||
"tslint": "^5.10.0",
|
"tslint": "^5.10.0",
|
||||||
"typescript": "^2.9.1",
|
"typescript": "^2.9.1",
|
||||||
|
"vinyl-buffer": "^1.0.1",
|
||||||
|
"vinyl-source-stream": "^2.0.0",
|
||||||
"web3": "0.20.2"
|
"web3": "0.20.2"
|
||||||
},
|
},
|
||||||
"browser": {
|
"browser": {
|
||||||
"fs": "./tests/browser-fs.js",
|
"fs": "./tests/browser-fs.js",
|
||||||
"zlib": "browserify-zlib",
|
"zlib": "browserify-zlib",
|
||||||
"./utils/base64.js": "./utils/browser-base64.js",
|
"./src.ts/utils/base64.ts": "./src.browser/browser-base64.ts",
|
||||||
"./utils/random-bytes.js": "./utils/browser-random-bytes.js",
|
"./src.ts/utils/random-bytes.js": "./src.browser/browser-random-bytes.js",
|
||||||
"./providers/ipc-provider.js": "./utils/empty.js",
|
"./providers/ipc-provider.js": "./utils/empty.js",
|
||||||
"xmlhttprequest": "./providers/browser-xmlhttprequest.js"
|
"xmlhttprequest": "./src.browser/browser-xmlhttprequest.ts"
|
||||||
},
|
},
|
||||||
"keywords": [
|
"keywords": [
|
||||||
"ethereum",
|
"ethereum",
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import convert = require('./convert');
|
import { arrayify } from '../src.ts/utils/convert';
|
||||||
|
|
||||||
module.exports = {
|
module.exports = {
|
||||||
decode: function(textData) {
|
decode: function(textData) {
|
||||||
@ -9,10 +9,10 @@ module.exports = {
|
|||||||
for (var i = 0; i < textData.length; i++) {
|
for (var i = 0; i < textData.length; i++) {
|
||||||
data.push(textData.charCodeAt(i));
|
data.push(textData.charCodeAt(i));
|
||||||
}
|
}
|
||||||
return convert.arrayify(data);
|
return arrayify(data);
|
||||||
},
|
},
|
||||||
encode: function(data) {
|
encode: function(data) {
|
||||||
data = convert.arrayify(data);
|
data = arrayify(data);
|
||||||
var textData = '';
|
var textData = '';
|
||||||
for (var i = 0; i < data.length; i++) {
|
for (var i = 0; i < data.length; i++) {
|
||||||
textData += String.fromCharCode(data[i]);
|
textData += String.fromCharCode(data[i]);
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
'use strict';
|
|
||||||
|
|
||||||
function throwError(message, params) {
|
|
||||||
var error = new Error(message);
|
|
||||||
for (var key in params) {
|
|
||||||
error[key] = params[key];
|
|
||||||
}
|
|
||||||
throw error;
|
|
||||||
}
|
|
||||||
|
|
||||||
module.exports = throwError;
|
|
@ -1,7 +1,7 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import { Contract } from './contract.js';
|
import { Contract } from './contract';
|
||||||
import { Interface } from './interface.js';
|
import { Interface } from './interface';
|
||||||
|
|
||||||
export {
|
export {
|
||||||
Contract,
|
Contract,
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
// See: https://github.com/ethereum/wiki/wiki/JSON-RPC
|
// See: https://github.com/ethereum/wiki/wiki/JSON-RPC
|
||||||
|
|
||||||
import { getNetwork, Network } from './networks';
|
import { getNetwork, Network } from './networks';
|
||||||
import { BlockTag, Provider, TransactionRequest, TransactionResponse } from './provider.js';
|
import { BlockTag, Provider, TransactionRequest, TransactionResponse } from './provider';
|
||||||
|
|
||||||
import { getAddress } from '../utils/address';
|
import { getAddress } from '../utils/address';
|
||||||
import { BigNumber } from '../utils/bignumber';
|
import { BigNumber } from '../utils/bignumber';
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
import sha3 = require('js-sha3');
|
import sha3 = require('js-sha3');
|
||||||
|
|
||||||
import { arrayify, Arrayish } from './convert.js';
|
import { arrayify, Arrayish } from './convert';
|
||||||
|
|
||||||
export function keccak256(data: Arrayish): string {
|
export function keccak256(data: Arrayish): string {
|
||||||
return '0x' + sha3.keccak_256(arrayify(data));
|
return '0x' + sha3.keccak_256(arrayify(data));
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
//See: https://github.com/ethereum/wiki/wiki/RLP
|
//See: https://github.com/ethereum/wiki/wiki/RLP
|
||||||
|
|
||||||
|
|
||||||
import { arrayify, Arrayish, hexlify } from './convert.js';
|
import { arrayify, Arrayish, hexlify } from './convert';
|
||||||
|
|
||||||
function arrayifyInteger(value: number): Array<number> {
|
function arrayifyInteger(value: number): Array<number> {
|
||||||
var result = [];
|
var result = [];
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import { bigNumberify, ConstantZero, ConstantNegativeOne } from './bignumber.js';
|
import { bigNumberify, ConstantZero, ConstantNegativeOne } from './bignumber';
|
||||||
|
|
||||||
import * as errors from './errors';
|
import * as errors from './errors';
|
||||||
|
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
'use strict';
|
'use strict';
|
||||||
|
|
||||||
import { arrayify, Arrayish } from './convert.js';
|
import { arrayify, Arrayish } from './convert';
|
||||||
|
|
||||||
export enum UnicodeNormalizationForm {
|
export enum UnicodeNormalizationForm {
|
||||||
current = '',
|
current = '',
|
||||||
|
@ -31,6 +31,12 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (!Math.tunc) {
|
||||||
|
Math.trunc = function(v) {
|
||||||
|
return parseInt(v);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// nextTick
|
// nextTick
|
||||||
if (!window.nextTick) {
|
if (!window.nextTick) {
|
||||||
window.nextTick = function (callback) { setTimeout(callback, 0); }
|
window.nextTick = function (callback) { setTimeout(callback, 0); }
|
||||||
@ -48,7 +54,7 @@
|
|||||||
<script type="text/javascript">mocha.setup('bdd')</script>
|
<script type="text/javascript">mocha.setup('bdd')</script>
|
||||||
|
|
||||||
<!-- Load the browser dist ethers package -->
|
<!-- Load the browser dist ethers package -->
|
||||||
<script type="text/javascript" src="../dist/ethers.js"></script>
|
<script type="text/javascript" src="../dist/ethers.min.js"></script>
|
||||||
|
|
||||||
<!-- Our test cases; compiled by browserify -->
|
<!-- Our test cases; compiled by browserify -->
|
||||||
<script src="./dist/tests.js" type="text/javascript"></script>
|
<script src="./dist/tests.js" type="text/javascript"></script>
|
||||||
|
@ -5,7 +5,7 @@
|
|||||||
"esModuleInterop": true,
|
"esModuleInterop": true,
|
||||||
"lib": [ "es2015", "es5", "dom" ],
|
"lib": [ "es2015", "es5", "dom" ],
|
||||||
"module": "commonjs",
|
"module": "commonjs",
|
||||||
"outDir": "../src/",
|
"outDir": "./src/",
|
||||||
"target": "es5",
|
"target": "es5",
|
||||||
"moduleResolution": "node",
|
"moduleResolution": "node",
|
||||||
"resolveJsonModule": true,
|
"resolveJsonModule": true,
|
||||||
@ -20,6 +20,10 @@
|
|||||||
"noFallthroughCasesInSwitch": true,
|
"noFallthroughCasesInSwitch": true,
|
||||||
"noImplicitReturns": true,
|
"noImplicitReturns": true,
|
||||||
"noUnusedLocals": true
|
"noUnusedLocals": true
|
||||||
}
|
},
|
||||||
|
"include": [
|
||||||
|
"src.ts/*.ts",
|
||||||
|
"src.ts/**/*.ts"
|
||||||
|
]
|
||||||
}
|
}
|
||||||
|
|
Loading…
x
Reference in New Issue
Block a user