diff --git a/package.json b/package.json index 645288a..dfd3588 100644 --- a/package.json +++ b/package.json @@ -39,8 +39,7 @@ "benchmark": "node -r ./.babel-register test/benchmarks" }, "dependencies": { - "@chainsafe/bls-keygen": "^0.2.0", - "assert": "^1.4.1", + "@chainsafe/bls-keygen": "^0.3.0", "bls-eth-wasm": "^0.4.1" }, "devDependencies": { diff --git a/src/helpers/index.ts b/src/helpers/index.ts new file mode 100644 index 0000000..178cd64 --- /dev/null +++ b/src/helpers/index.ts @@ -0,0 +1 @@ +export * from "./utils"; diff --git a/src/helpers/utils.ts b/src/helpers/utils.ts index 7430d7d..b81b6ae 100644 --- a/src/helpers/utils.ts +++ b/src/helpers/utils.ts @@ -1,17 +1,9 @@ -import assert from "assert"; import {PUBLIC_KEY_LENGTH, SIGNATURE_LENGTH} from "../constants"; -/** - * Pads byte array with zeroes on left side up to desired length. - * Throws if source is larger than desired result. - * @param source - * @param length - */ -export function padLeft(source: Uint8Array, length: number): Buffer { - assert(source.length <= length, "Given array must be smaller or equal to desired array size"); - const result = Buffer.alloc(length, 0); - result.set(source, length - source.length); - return result; +export function assert(condition: unknown, message = "Assertion failed"): asserts condition { + if (!condition) { + throw new Error(message); + } } export const EMPTY_PUBLIC_KEY = Buffer.alloc(PUBLIC_KEY_LENGTH); diff --git a/src/index.ts b/src/index.ts index b398620..6dfc0ac 100644 --- a/src/index.ts +++ b/src/index.ts @@ -3,7 +3,7 @@ import {PrivateKey} from "./privateKey"; import {PublicKey} from "./publicKey"; import {Signature} from "./signature"; import {PUBLIC_KEY_LENGTH} from "./constants"; -import assert from "assert"; +import {assert} from "./helpers"; export {Keypair, PrivateKey, PublicKey, Signature}; diff --git a/src/privateKey.ts b/src/privateKey.ts index dbf3160..24cc845 100644 --- a/src/privateKey.ts +++ b/src/privateKey.ts @@ -1,5 +1,5 @@ import {SECRET_KEY_LENGTH} from "./constants"; -import assert from "assert"; +import {assert} from "./helpers"; import {SecretKeyType} from "bls-eth-wasm"; import {generateRandomSecretKey} from "@chainsafe/bls-keygen"; import {getContext} from "./context"; diff --git a/src/publicKey.ts b/src/publicKey.ts index c7537c7..9f23851 100644 --- a/src/publicKey.ts +++ b/src/publicKey.ts @@ -2,7 +2,7 @@ import {PrivateKey} from "./privateKey"; import {PublicKeyType} from "bls-eth-wasm"; import {getContext} from "./context"; import {PUBLIC_KEY_LENGTH} from "./constants"; -import assert from "assert"; +import {assert} from "./helpers"; import {Signature} from "./signature"; import {EMPTY_PUBLIC_KEY} from "./helpers/utils"; diff --git a/src/signature.ts b/src/signature.ts index 5da9104..74d6ed0 100644 --- a/src/signature.ts +++ b/src/signature.ts @@ -1,4 +1,4 @@ -import assert from "assert"; +import {assert} from "./helpers"; import {FP_POINT_LENGTH} from "./constants"; import {SignatureType} from "bls-eth-wasm"; import {getContext} from "./context"; diff --git a/yarn.lock b/yarn.lock index 4699931..48d79da 100644 --- a/yarn.lock +++ b/yarn.lock @@ -799,26 +799,25 @@ "@assemblyscript/loader" "^0.9.2" buffer "^5.4.3" -"@chainsafe/bls-hd-key@^0.1.0": - version "0.1.0" - resolved "https://registry.yarnpkg.com/@chainsafe/bls-hd-key/-/bls-hd-key-0.1.0.tgz#5e51de16801f4b4b421e418f0d1ef0692df0c585" - integrity sha512-VZj+Ml4YTPz+d/K2n9q/9bLlIJnTr/xdAC5w1eCvIFtcQrZCY1Zw+bCcXKX1q6sbZpO9xhyuoepJzJX9VkMPqw== +"@chainsafe/bls-hd-key@^0.2.0": + version "0.2.0" + resolved "https://registry.yarnpkg.com/@chainsafe/bls-hd-key/-/bls-hd-key-0.2.0.tgz#90aaf030150de64099e1fb27582b27bbe5ce5309" + integrity sha512-ps10jd99UWcm1qPo4spD/6hxFor9fsDgB0s2wJuFKqPdM2R+4LCowhv5kdGgGs3VIN1H8l+CgO08yC7X0WlBDQ== dependencies: assert "^2.0.0" bcrypto "^5.0.4" bn.js "^5.1.1" buffer "^5.4.3" -"@chainsafe/bls-keygen@^0.2.0": - version "0.2.0" - resolved "https://registry.yarnpkg.com/@chainsafe/bls-keygen/-/bls-keygen-0.2.0.tgz#2089da875caff4334723c5ee45495e366dc57a2e" - integrity sha512-IcgOJ1UTiHX3T1FnSqTdf4gtavjpINPtmAwLZFQUxSuLPOfmxPPVN/yhAIYw5xCh9/mWkaFQ/dFUk6ys+BkfGQ== +"@chainsafe/bls-keygen@^0.3.0": + version "0.3.0" + resolved "https://registry.yarnpkg.com/@chainsafe/bls-keygen/-/bls-keygen-0.3.0.tgz#d7472a945f6f49b5cb357241bfba2f5c12a635c5" + integrity sha512-5Iq6E5E987hyio74G1fXPYI3t9iVeHxRX1tDMpnCV9T82rPz061yFsMz3W3aXE26+k6+fcz0bsYX3ijOizkx+A== dependencies: - "@chainsafe/bls-hd-key" "^0.1.0" - assert "^2.0.0" - bcrypto "^5.0.4" + "@chainsafe/bls-hd-key" "^0.2.0" bip39 "^3.0.2" buffer "^5.4.3" + randombytes "^2.1.0" "@chainsafe/eth2-spec-tests@0.12.0": version "0.12.0" @@ -1323,7 +1322,7 @@ asn1.js@^4.0.0: inherits "^2.0.1" minimalistic-assert "^1.0.0" -assert@^1.1.1, assert@^1.4.1: +assert@^1.1.1: version "1.5.0" resolved "https://registry.yarnpkg.com/assert/-/assert-1.5.0.tgz#55c109aaf6e0aefdb3dc4b71240c70bf574b18eb" integrity sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==