Skip to content
This repository was archived by the owner on Jun 17, 2021. It is now read-only.

Commit ae77d7a

Browse files
committed
Merge branch 'master' into removing-native-js-dependencies
# Conflicts: # src/account.ts
2 parents ef5a7ac + 021add9 commit ae77d7a

File tree

12 files changed

+94
-21
lines changed

12 files changed

+94
-21
lines changed

karma.conf.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
module.exports = function(config) {
22
config.set({
33
frameworks: ['mocha', 'karma-typescript'],
4+
exclude: ["src/@types/**"], // ref: https://github.com/monounity/karma-typescript/issues/254
45
files: ['src/**/*.ts', 'test/**/*.ts'],
56
preprocessors: {
67
'**/*.ts': ['karma-typescript'],

src/@types/ethjs-util/index.d.ts

Lines changed: 69 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,69 @@
1+
declare module 'ethjs-util' {
2+
/**
3+
* @description Returns a `Boolean` on whether or not the a `String` starts with '0x'
4+
*/
5+
export function isHexPrefixed(str: string): boolean
6+
7+
/**
8+
* @description Removes '0x' from a given `String` if present
9+
*/
10+
export function stripHexPrefix(str: string): string
11+
12+
/**
13+
* @description Pads a `String` to have an even length
14+
*/
15+
export function padToEven(value: string): string
16+
17+
/**
18+
* @description Converts a `Number` into a hex `String`
19+
*/
20+
export function intToHex(i: number): string
21+
22+
/**
23+
* @description Converts an `Number` to a `Buffer`
24+
*/
25+
export function intToBuffer(i: number): Buffer
26+
27+
/**
28+
* @description Get the binary size of a string
29+
*/
30+
export function getBinarySize(str: string): number
31+
32+
/**
33+
* @description Returns TRUE if the first specified array contains all elements
34+
* from the second one. FALSE otherwise. If `some` is true, will
35+
* return true if first specified array contain some elements of
36+
* the second.
37+
*/
38+
export function arrayContainsArray(superset: any[], subset: any[], some?: boolean): boolean
39+
40+
/**
41+
* @description Should be called to get utf8 from it's hex representation
42+
*/
43+
export function toUtf8(hex: string): string
44+
45+
/**
46+
* @description Should be called to get ascii from it's hex representation
47+
*/
48+
export function toAscii(hex: string): string
49+
50+
/**
51+
* @description Should be called to get hex representation (prefixed by 0x) of utf8 string
52+
*/
53+
export function fromUtf8(stringValue: string): string
54+
55+
/**
56+
* @description Should be called to get hex representation (prefixed by 0x) of ascii string
57+
*/
58+
export function fromAscii(stringValue: string): string
59+
60+
/**
61+
* @description getKeys([{a: 1, b: 2}, {a: 3, b: 4}], 'a') => [1, 3]
62+
*/
63+
export function getKeys(params: any[], key: string, allowEmpty?: boolean): any[]
64+
65+
/**
66+
* @description check if string is hex string of specific length
67+
*/
68+
export function isHexString(value: string, length?: number): boolean
69+
}

src/account.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const ethjsUtil = require('ethjs-util')
1+
import * as ethjsUtil from 'ethjs-util'
22
const {
33
privateKeyVerify,
44
publicKeyCreate,

src/bytes.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const ethjsUtil = require('ethjs-util')
1+
import * as ethjsUtil from 'ethjs-util'
22
import * as BN from 'bn.js'
33
import { assertIsBuffer, assertIsArray, assertIsHexString } from './helpers'
44

src/externals.ts

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,19 +1,12 @@
11
/**
22
* Re-exports commonly used modules:
3-
* * Adds [`ethjs-util`](https://github.com/ethjs/ethjs-util) methods.
43
* * Exports [`BN`](https://github.com/indutny/bn.js), [`rlp`](https://github.com/ethereumjs/rlp).
54
* @packageDocumentation
65
*/
76

8-
const ethjsUtil = require('ethjs-util')
97
import * as BN from 'bn.js'
108
import * as rlp from 'rlp'
119

12-
/**
13-
* [`ethjsUtil`](https://github.com/ethjs/ethjs-util)
14-
*/
15-
Object.assign(exports, ethjsUtil)
16-
1710
/**
1811
* [`BN`](https://github.com/indutny/bn.js)
1912
*/

src/hash.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
const { keccak224, keccak384, keccak256: k256, keccak512 } = require('ethereum-cryptography/keccak')
22
const createHash = require('create-hash')
3-
const ethjsUtil = require('ethjs-util')
3+
import * as ethjsUtil from 'ethjs-util'
44
import * as rlp from 'rlp'
55
import { toBuffer, setLengthLeft } from './bytes'
66
import { assertIsString, assertIsBuffer, assertIsArray, assertIsHexString } from './helpers'

src/helpers.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const ethjsUtil = require('ethjs-util')
1+
import * as ethjsUtil from 'ethjs-util'
22

33
/**
44
* Throws if a string is not hex prefixed

src/index.ts

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,11 @@ export * from './bytes'
2929
export * from './object'
3030

3131
/**
32-
* External exports (ethjsUtil, BN, rlp, secp256k1)
32+
* External exports (BN, rlp, secp256k1)
3333
*/
3434
export * from './externals'
35+
36+
/**
37+
* Export ethjs-util methods
38+
*/
39+
export * from 'ethjs-util'

src/object.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
const ethjsUtil = require('ethjs-util')
1+
import * as ethjsUtil from 'ethjs-util'
22
import * as assert from 'assert'
33
import * as rlp from 'rlp'
44
import { toBuffer, baToJSON, unpadBuffer } from './bytes'

test/externals.spec.ts

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,24 +100,24 @@ describe('External ethjsUtil export', () => {
100100

101101
it('should use ethjsUtil functions correctly', () => {
102102
// should convert intToHex
103-
assert.equal((src as any).intToHex(new src.BN(0)), '0x0')
103+
assert.equal(src.intToHex(new src.BN(0).toNumber()), '0x0')
104104

105105
// should convert intToHex
106106
const i = 6003400
107-
const hex = (src as any).intToHex(i)
107+
const hex = src.intToHex(i)
108108
assert.equal(hex, '0x5b9ac8')
109109

110110
// should convert a int to a buffer
111111
const j = 6003400
112-
const buf = (src as any).intToBuffer(j)
112+
const buf = src.intToBuffer(j)
113113
assert.equal(buf.toString('hex'), '5b9ac8')
114114
})
115115

116116
it('should handle exceptions and invalid inputs', () => {
117117
// should throw when invalid abi
118-
assert.throws(() => (src as any).getKeys([], 3289), Error)
118+
assert.throws(() => src.getKeys([], (<unknown>3289) as string), Error)
119119

120120
// should detect invalid length hex string
121-
assert.equal((src as any).isHexString('0x0', 2), false)
121+
assert.equal(src.isHexString('0x0', 2), false)
122122
})
123123
})

0 commit comments

Comments
 (0)