From a51146a4385a604ec8791b976e501869f2d6a4d9 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Wed, 7 Dec 2022 09:47:39 -0800 Subject: [PATCH 01/15] removes browserify --- packages/identity/package.json | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/packages/identity/package.json b/packages/identity/package.json index c74eff361..8fbbac539 100644 --- a/packages/identity/package.json +++ b/packages/identity/package.json @@ -47,8 +47,7 @@ }, "peerDependencies": { "@dfinity/agent": "^0.14.1", - "@dfinity/principal": "^0.14.1", - "crypto-browserify": "^3.12.0" + "@dfinity/principal": "^0.14.1" }, "dependencies": { "@peculiar/webcrypto": "^1.4.0", From 1bd5b5c6ffee4ab70521bd334b8dbacc6fa926a0 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Wed, 7 Dec 2022 14:18:43 -0800 Subject: [PATCH 02/15] wip --- packages/identity/meta.json | 1132 ++++++ packages/identity/src/index.ts | 2 +- packages/identity/stats.html | 3583 +++++++++++++++++ packages/identity/tsconfig.json | 8 +- packages/secp256k1/LICENSE | 201 + packages/secp256k1/README.md | 26 + packages/secp256k1/package-lock.json | 1803 +++++++++ packages/secp256k1/package.json | 18 + .../src}/secp256k1.test.ts | 0 .../identity => secp256k1/src}/secp256k1.ts | 0 10 files changed, 6771 insertions(+), 2 deletions(-) create mode 100644 packages/identity/meta.json create mode 100644 packages/identity/stats.html create mode 100644 packages/secp256k1/LICENSE create mode 100644 packages/secp256k1/README.md create mode 100644 packages/secp256k1/package-lock.json create mode 100644 packages/secp256k1/package.json rename packages/{identity/src/identity => secp256k1/src}/secp256k1.test.ts (100%) rename packages/{identity/src/identity => secp256k1/src}/secp256k1.ts (100%) diff --git a/packages/identity/meta.json b/packages/identity/meta.json new file mode 100644 index 000000000..e285f983d --- /dev/null +++ b/packages/identity/meta.json @@ -0,0 +1,1132 @@ +{ + "inputs": { + "../../node_modules/base64-js/index.js": { + "bytes": 3932, + "imports": [] + }, + "../../node_modules/ieee754/index.js": { + "bytes": 2154, + "imports": [] + }, + "../../node_modules/buffer/index.js": { + "bytes": 58353, + "imports": [ + { + "path": "../../node_modules/base64-js/index.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/ieee754/index.js", + "kind": "require-call" + } + ] + }, + "../agent/lib/esm/agent/api.js": { + "bytes": 706, + "imports": [] + }, + "../principal/lib/esm/utils/base32.js": { + "bytes": 2542, + "imports": [] + }, + "../principal/lib/esm/utils/getCrc.js": { + "bytes": 3848, + "imports": [] + }, + "../../node_modules/js-sha256/src/sha256.js": { + "bytes": 18387, + "imports": [] + }, + "../principal/lib/esm/utils/sha224.js": { + "bytes": 308, + "imports": [ + { + "path": "../../node_modules/js-sha256/src/sha256.js", + "kind": "import-statement" + } + ] + }, + "../principal/lib/esm/index.js": { + "bytes": 4762, + "imports": [ + { + "path": "../principal/lib/esm/utils/base32.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/utils/getCrc.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/utils/sha224.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/errors.js": { + "bytes": 428, + "imports": [] + }, + "../candid/lib/esm/utils/buffer.js": { + "bytes": 3363, + "imports": [] + }, + "../candid/lib/esm/utils/hash.js": { + "bytes": 763, + "imports": [] + }, + "../candid/lib/esm/utils/leb128.js": { + "bytes": 6200, + "imports": [ + { + "path": "../candid/lib/esm/utils/buffer.js", + "kind": "import-statement" + } + ] + }, + "../candid/lib/esm/utils/bigint-math.js": { + "bytes": 720, + "imports": [] + }, + "../candid/lib/esm/idl.js": { + "bytes": 52568, + "imports": [ + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/utils/buffer.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/utils/hash.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/utils/leb128.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/utils/bigint-math.js", + "kind": "import-statement" + } + ] + }, + "../candid/lib/esm/candid-core.js": { + "bytes": 6929, + "imports": [] + }, + "../candid/lib/esm/candid-ui.js": { + "bytes": 7856, + "imports": [ + { + "path": "../candid/lib/esm/idl.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/candid-core.js", + "kind": "import-statement" + } + ] + }, + "../candid/lib/esm/types.js": { + "bytes": 44, + "imports": [] + }, + "../candid/lib/esm/index.js": { + "bytes": 242, + "imports": [ + { + "path": "../candid/lib/esm/candid-ui.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/candid-core.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/idl.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/utils/hash.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/utils/leb128.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/utils/buffer.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/types.js", + "kind": "import-statement" + } + ] + }, + "../../node_modules/borc/node_modules/buffer/index.js": { + "bytes": 50097, + "imports": [ + { + "path": "../../node_modules/base64-js/index.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/ieee754/index.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/bignumber.js/bignumber.js": { + "bytes": 89684, + "imports": [] + }, + "../../node_modules/borc/src/decoder.asm.js": { + "bytes": 25595, + "imports": [] + }, + "../../node_modules/borc/src/constants.js": { + "bytes": 1104, + "imports": [ + { + "path": "../../node_modules/bignumber.js/bignumber.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/borc/src/utils.js": { + "bytes": 4039, + "imports": [ + { + "path": "../../node_modules/borc/node_modules/buffer/index.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/bignumber.js/bignumber.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/constants.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/borc/src/simple.js": { + "bytes": 2491, + "imports": [ + { + "path": "../../node_modules/borc/src/constants.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/borc/src/tagged.js": { + "bytes": 2187, + "imports": [] + }, + "../../node_modules/iso-url/src/url-browser.js": { + "bytes": 3473, + "imports": [] + }, + "../../node_modules/iso-url/src/relative.js": { + "bytes": 711, + "imports": [ + { + "path": "../../node_modules/iso-url/src/url-browser.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/iso-url/index.js": { + "bytes": 285, + "imports": [ + { + "path": "../../node_modules/iso-url/src/url-browser.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/iso-url/src/relative.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/borc/src/decoder.js": { + "bytes": 13954, + "imports": [ + { + "path": "../../node_modules/borc/node_modules/buffer/index.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/ieee754/index.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/bignumber.js/bignumber.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/decoder.asm.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/utils.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/constants.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/simple.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/tagged.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/iso-url/index.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/borc/src/diagnose.js": { + "bytes": 3211, + "imports": [ + { + "path": "../../node_modules/borc/node_modules/buffer/index.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/decoder.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/utils.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/borc/src/encoder.js": { + "bytes": 12034, + "imports": [ + { + "path": "../../node_modules/borc/node_modules/buffer/index.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/iso-url/index.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/bignumber.js/bignumber.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/utils.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/constants.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/borc/src/index.js": { + "bytes": 647, + "imports": [ + { + "path": "../../node_modules/borc/src/diagnose.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/decoder.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/encoder.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/simple.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/borc/src/tagged.js", + "kind": "require-call" + } + ] + }, + "../agent/lib/esm/utils/buffer.js": { + "bytes": 1612, + "imports": [] + }, + "../agent/lib/esm/request_id.js": { + "bytes": 3086, + "imports": [ + { + "path": "../candid/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../../node_modules/borc/src/index.js", + "kind": "import-statement" + }, + { + "path": "../../node_modules/js-sha256/src/sha256.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/auth.js": { + "bytes": 2508, + "imports": [ + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/request_id.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + } + ] + }, + "../../node_modules/simple-cbor/src/value.js": { + "bytes": 12307, + "imports": [] + }, + "../../node_modules/simple-cbor/src/serializer.js": { + "bytes": 5050, + "imports": [ + { + "path": "../../node_modules/simple-cbor/src/value.js", + "kind": "require-call" + } + ] + }, + "../../node_modules/simple-cbor/src/index.js": { + "bytes": 595, + "imports": [ + { + "path": "../../node_modules/simple-cbor/src/serializer.js", + "kind": "require-call" + }, + { + "path": "../../node_modules/simple-cbor/src/value.js", + "kind": "require-call" + } + ] + }, + "../agent/lib/esm/cbor.js": { + "bytes": 3491, + "imports": [ + { + "path": "../../node_modules/borc/src/index.js", + "kind": "import-statement" + }, + { + "path": "../../node_modules/simple-cbor/src/index.js", + "kind": "import-statement" + }, + { + "path": "../../node_modules/simple-cbor/src/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/agent/http/types.js": { + "bytes": 1056, + "imports": [] + }, + "../agent/lib/esm/agent/http/transforms.js": { + "bytes": 1769, + "imports": [ + { + "path": "../candid/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../../node_modules/simple-cbor/src/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/http/types.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/canisterStatus/index.js": { + "bytes": 7724, + "imports": [ + { + "path": "../candid/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/errors.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/index.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/agent/http/index.js": { + "bytes": 16725, + "imports": [ + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/errors.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/auth.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/cbor.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/request_id.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/http/transforms.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/http/types.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/http/transforms.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/http/types.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/canisterStatus/index.js", + "kind": "dynamic-import" + } + ] + }, + "../agent/lib/esm/agent/proxy.js": { + "bytes": 5451, + "imports": [ + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/agent/index.js": { + "bytes": 485, + "imports": [ + { + "path": "../agent/lib/esm/agent/api.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/http/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/proxy.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/canisters/management_idl.js": { + "bytes": 2827, + "imports": [] + }, + "../agent/lib/esm/canisters/management.js": { + "bytes": 855, + "imports": [ + { + "path": "../agent/lib/esm/actor.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/canisters/management_idl.js", + "kind": "import-statement" + } + ] + }, + "../../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js": { + "bytes": 1896, + "imports": [] + }, + "../agent/lib/esm/vendor/bls/wasm.js": { + "bytes": 71131, + "imports": [] + }, + "../agent/lib/esm/vendor/bls/bls.js": { + "bytes": 2280, + "imports": [ + { + "path": "../../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/vendor/bls/wasm.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/utils/bls.js": { + "bytes": 673, + "imports": [ + { + "path": "../agent/lib/esm/vendor/bls/bls.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/certificate.js": { + "bytes": 7960, + "imports": [ + { + "path": "../agent/lib/esm/cbor.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/errors.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/request_id.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/bls.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/polling/strategy.js": { + "bytes": 3312, + "imports": [ + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/polling/index.js": { + "bytes": 3115, + "imports": [ + { + "path": "../agent/lib/esm/agent/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/certificate.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/polling/strategy.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/polling/strategy.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/actor.js": { + "bytes": 9025, + "imports": [ + { + "path": "../../node_modules/buffer/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/canisters/management.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/errors.js", + "kind": "import-statement" + }, + { + "path": "../candid/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/polling/index.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/canisters/asset_idl.js": { + "bytes": 346, + "imports": [] + }, + "../agent/lib/esm/canisters/asset.js": { + "bytes": 298, + "imports": [ + { + "path": "../agent/lib/esm/actor.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/canisters/asset_idl.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/fetch_candid.js": { + "bytes": 1283, + "imports": [ + { + "path": "../agent/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + } + ] + }, + "../agent/lib/esm/index.js": { + "bytes": 1122, + "imports": [ + { + "path": "../agent/lib/esm/actor.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/auth.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/certificate.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/http/transforms.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/agent/http/types.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/canisters/asset.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/canisters/management.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/fetch_candid.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/request_id.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/bls.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/utils/buffer.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/polling/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/canisterStatus/index.js", + "kind": "import-statement" + }, + { + "path": "../agent/lib/esm/cbor.js", + "kind": "import-statement" + } + ] + }, + "src/identity/ecdsa.ts": { + "bytes": 4836, + "imports": [ + { + "path": "../agent/lib/esm/index.js", + "kind": "import-statement" + } + ] + }, + "src/buffer.ts": { + "bytes": 545, + "imports": [] + }, + "src/identity/delegation.ts": { + "bytes": 12028, + "imports": [ + { + "path": "../agent/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../principal/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../../node_modules/simple-cbor/src/index.js", + "kind": "import-statement" + }, + { + "path": "src/buffer.ts", + "kind": "import-statement" + } + ] + }, + "(disabled):crypto": { + "bytes": 0, + "imports": [] + }, + "../../node_modules/tweetnacl/nacl-fast.js": { + "bytes": 61966, + "imports": [ + { + "path": "(disabled):crypto", + "kind": "require-call" + } + ] + }, + "src/identity/der.ts": { + "bytes": 5120, + "imports": [] + }, + "src/identity/webauthn.ts": { + "bytes": 7030, + "imports": [ + { + "path": "../agent/lib/esm/index.js", + "kind": "import-statement" + }, + { + "path": "../../node_modules/borc/src/index.js", + "kind": "import-statement" + }, + { + "path": "../../node_modules/tweetnacl/nacl-fast.js", + "kind": "import-statement" + }, + { + "path": "src/buffer.ts", + "kind": "import-statement" + }, + { + "path": "src/identity/der.ts", + "kind": "import-statement" + } + ] + }, + "src/index.ts": { + "bytes": 371, + "imports": [ + { + "path": "src/identity/ecdsa.ts", + "kind": "import-statement" + }, + { + "path": "src/identity/delegation.ts", + "kind": "import-statement" + }, + { + "path": "src/identity/webauthn.ts", + "kind": "import-statement" + }, + { + "path": "src/identity/der.ts", + "kind": "import-statement" + } + ] + } + }, + "outputs": { + "dist/index.js": { + "imports": [], + "exports": [], + "entryPoint": "src/index.ts", + "inputs": { + "../../node_modules/base64-js/index.js": { + "bytesInOutput": 3910 + }, + "../../node_modules/ieee754/index.js": { + "bytesInOutput": 2659 + }, + "../../node_modules/buffer/index.js": { + "bytesInOutput": 61512 + }, + "../agent/lib/esm/agent/api.js": { + "bytesInOutput": 652 + }, + "../principal/lib/esm/utils/base32.js": { + "bytesInOutput": 1645 + }, + "../principal/lib/esm/utils/getCrc.js": { + "bytesInOutput": 5480 + }, + "../../node_modules/js-sha256/src/sha256.js": { + "bytesInOutput": 20756 + }, + "../principal/lib/esm/utils/sha224.js": { + "bytesInOutput": 334 + }, + "../principal/lib/esm/index.js": { + "bytesInOutput": 3861 + }, + "../agent/lib/esm/errors.js": { + "bytesInOutput": 97 + }, + "../candid/lib/esm/utils/buffer.js": { + "bytesInOutput": 1947 + }, + "../candid/lib/esm/utils/hash.js": { + "bytesInOutput": 100 + }, + "../candid/lib/esm/utils/leb128.js": { + "bytesInOutput": 4165 + }, + "../candid/lib/esm/utils/bigint-math.js": { + "bytesInOutput": 279 + }, + "../candid/lib/esm/idl.js": { + "bytesInOutput": 15982 + }, + "../candid/lib/esm/candid-core.js": { + "bytesInOutput": 108 + }, + "../candid/lib/esm/candid-ui.js": { + "bytesInOutput": 166 + }, + "../candid/lib/esm/types.js": { + "bytesInOutput": 96 + }, + "../candid/lib/esm/index.js": { + "bytesInOutput": 224 + }, + "../../node_modules/borc/node_modules/buffer/index.js": { + "bytesInOutput": 52530 + }, + "../../node_modules/bignumber.js/bignumber.js": { + "bytesInOutput": 54301 + }, + "../../node_modules/borc/src/decoder.asm.js": { + "bytesInOutput": 25500 + }, + "../../node_modules/borc/src/constants.js": { + "bytesInOutput": 1608 + }, + "../../node_modules/borc/src/utils.js": { + "bytesInOutput": 3216 + }, + "../../node_modules/borc/src/simple.js": { + "bytesInOutput": 1866 + }, + "../../node_modules/borc/src/tagged.js": { + "bytesInOutput": 1308 + }, + "../../node_modules/iso-url/src/url-browser.js": { + "bytesInOutput": 3866 + }, + "../../node_modules/iso-url/src/relative.js": { + "bytesInOutput": 855 + }, + "../../node_modules/iso-url/index.js": { + "bytesInOutput": 458 + }, + "../../node_modules/borc/src/decoder.js": { + "bytesInOutput": 15539 + }, + "../../node_modules/borc/src/diagnose.js": { + "bytesInOutput": 3999 + }, + "../../node_modules/borc/src/encoder.js": { + "bytesInOutput": 13387 + }, + "../../node_modules/borc/src/index.js": { + "bytesInOutput": 768 + }, + "../agent/lib/esm/utils/buffer.js": { + "bytesInOutput": 1231 + }, + "../agent/lib/esm/request_id.js": { + "bytesInOutput": 2066 + }, + "../agent/lib/esm/auth.js": { + "bytesInOutput": 1453 + }, + "../../node_modules/simple-cbor/src/value.js": { + "bytesInOutput": 9863 + }, + "../../node_modules/simple-cbor/src/serializer.js": { + "bytesInOutput": 5104 + }, + "../../node_modules/simple-cbor/src/index.js": { + "bytesInOutput": 833 + }, + "../agent/lib/esm/cbor.js": { + "bytesInOutput": 2379 + }, + "../agent/lib/esm/agent/http/types.js": { + "bytesInOutput": 272 + }, + "../agent/lib/esm/agent/http/transforms.js": { + "bytesInOutput": 389 + }, + "../agent/lib/esm/agent/http/index.js": { + "bytesInOutput": 950 + }, + "../agent/lib/esm/agent/proxy.js": { + "bytesInOutput": 770 + }, + "../agent/lib/esm/agent/index.js": { + "bytesInOutput": 158 + }, + "../agent/lib/esm/canisters/management_idl.js": { + "bytesInOutput": 123 + }, + "../agent/lib/esm/canisters/management.js": { + "bytesInOutput": 182 + }, + "../../node_modules/base64-arraybuffer/lib/base64-arraybuffer.js": { + "bytesInOutput": 2075 + }, + "../agent/lib/esm/vendor/bls/wasm.js": { + "bytesInOutput": 71219 + }, + "../agent/lib/esm/vendor/bls/bls.js": { + "bytesInOutput": 283 + }, + "../agent/lib/esm/utils/bls.js": { + "bytesInOutput": 116 + }, + "../agent/lib/esm/certificate.js": { + "bytesInOutput": 355 + }, + "../agent/lib/esm/polling/strategy.js": { + "bytesInOutput": 2292 + }, + "../agent/lib/esm/polling/index.js": { + "bytesInOutput": 219 + }, + "../agent/lib/esm/actor.js": { + "bytesInOutput": 800 + }, + "../agent/lib/esm/canisters/asset_idl.js": { + "bytesInOutput": 113 + }, + "../agent/lib/esm/canisters/asset.js": { + "bytesInOutput": 149 + }, + "../agent/lib/esm/fetch_candid.js": { + "bytesInOutput": 146 + }, + "../agent/lib/esm/canisterStatus/index.js": { + "bytesInOutput": 196 + }, + "../agent/lib/esm/index.js": { + "bytesInOutput": 413 + }, + "(disabled):crypto": { + "bytesInOutput": 76 + }, + "../../node_modules/tweetnacl/nacl-fast.js": { + "bytesInOutput": 78089 + }, + "src/identity/ecdsa.ts": { + "bytesInOutput": 2266 + }, + "src/index.ts": { + "bytesInOutput": 0 + }, + "src/identity/delegation.ts": { + "bytesInOutput": 5980 + }, + "src/buffer.ts": { + "bytesInOutput": 317 + }, + "src/identity/webauthn.ts": { + "bytesInOutput": 4358 + }, + "src/identity/der.ts": { + "bytesInOutput": 3747 + } + }, + "bytes": 508396 + } + } +} diff --git a/packages/identity/src/index.ts b/packages/identity/src/index.ts index 24b5c3f79..48c1afeda 100644 --- a/packages/identity/src/index.ts +++ b/packages/identity/src/index.ts @@ -1,6 +1,6 @@ export { Ed25519KeyIdentity, Ed25519PublicKey } from './identity/ed25519'; export * from './identity/ecdsa'; -export { Secp256k1KeyIdentity, Secp256k1PublicKey } from './identity/secp256k1'; +// export { Secp256k1KeyIdentity, Secp256k1PublicKey } from './identity/secp256k1'; export * from './identity/delegation'; export { WebAuthnIdentity } from './identity/webauthn'; export { wrapDER, unwrapDER, DER_COSE_OID, ED25519_OID } from './identity/der'; diff --git a/packages/identity/stats.html b/packages/identity/stats.html new file mode 100644 index 000000000..a71383c33 --- /dev/null +++ b/packages/identity/stats.html @@ -0,0 +1,3583 @@ + + + + + + + EsBuild Visualizer + + + +
+ + + + diff --git a/packages/identity/tsconfig.json b/packages/identity/tsconfig.json index 23da10189..c73afbcfc 100644 --- a/packages/identity/tsconfig.json +++ b/packages/identity/tsconfig.json @@ -18,6 +18,12 @@ "strict": true, "target": "es2017" }, - "include": ["types/*", "src/**/*", "client-test", "index.d.ts"], + "include": [ + "types/*", + "src/**/*", + "client-test", + "index.d.ts", + "../secp256k1/src/secp256k1.test.ts" + ], "references": [{ "path": "../agent" }] } diff --git a/packages/secp256k1/LICENSE b/packages/secp256k1/LICENSE new file mode 100644 index 000000000..b27ba1fe8 --- /dev/null +++ b/packages/secp256k1/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2020 DFINITY LLC. + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/packages/secp256k1/README.md b/packages/secp256k1/README.md new file mode 100644 index 000000000..c10c74ba5 --- /dev/null +++ b/packages/secp256k1/README.md @@ -0,0 +1,26 @@ +# @dfinity/secp256k1 + +JavaScript and TypeScript library to support manage Secp256k1 Identities and import from seed phrases for applications on the [Internet Computer](https://dfinity.org/) + +Visit the [Dfinity Forum](https://forum.dfinity.org/) and [SDK Documentation](https://sdk.dfinity.org/docs/index.html) for more information and support building on the Internet Computer. + +Additional API Documentation can be found [here](https://agent-js.icp.xyz/secp256k1/index.html). + +--- + +## Installation + +``` +npm i --save @dfinity/secp256k1 +``` + +### In the browser: + +or using individual exports: + +``` +import { Secp256k1PublicKey, Secp256k1KeyIdentity } from "@dfinity/authentication"; +``` + +Note: depends on [@dfinity/agent](https://www.npmjs.com/package/@dfinity/agent) and +[@dfinity/identity](https://www.npmjs.com/package/@dfinity/identity). diff --git a/packages/secp256k1/package-lock.json b/packages/secp256k1/package-lock.json new file mode 100644 index 000000000..132acd7fa --- /dev/null +++ b/packages/secp256k1/package-lock.json @@ -0,0 +1,1803 @@ +{ + "name": "@dfinity/authentication", + "version": "0.14.1", + "lockfileVersion": 2, + "requires": true, + "packages": { + "": { + "name": "@dfinity/authentication", + "version": "0.14.1", + "deprecated": "This package has been deprecated. isDelegationValid has been migrated to @dfinity/identity", + "license": "Apache-2.0", + "dependencies": { + "@dfinity/identity": "^0.14.1", + "bip39": "^3.0.4", + "hdkey": "^2.0.1" + } + }, + "node_modules/@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "dependencies": { + "@jridgewell/trace-mapping": "0.3.9" + }, + "engines": { + "node": ">=12" + } + }, + "node_modules/@dfinity/agent": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.14.1.tgz", + "integrity": "sha512-qLAQrhkxshcsxECnMSa1zY7mI8ua0vItrdA9JJI9WBRz4rDDXtrXyOYnh3u6pUPpdfF/i6bjx+NgrjYZucLe1Q==", + "peer": true, + "dependencies": { + "base64-arraybuffer": "^0.2.0", + "bignumber.js": "^9.0.0", + "borc": "^2.1.1", + "js-sha256": "0.9.0", + "simple-cbor": "^0.4.1", + "ts-node": "^10.8.2" + }, + "peerDependencies": { + "@dfinity/candid": "^0.14.1", + "@dfinity/principal": "^0.14.1" + } + }, + "node_modules/@dfinity/candid": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.14.1.tgz", + "integrity": "sha512-yRIRnVrJ4LjB0jFKUqZ2NeUzCCR6m8pm/n+0+IoVzY94ZkFATUkBSvdNxDZd1CCtNDNApi+YDe61DSQ51cDkrg==", + "peer": true, + "dependencies": { + "ts-node": "^10.8.2" + } + }, + "node_modules/@dfinity/identity": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@dfinity/identity/-/identity-0.14.1.tgz", + "integrity": "sha512-3/Be+5QOes6EERpqE8vEIIh53TPTD074hqnwXZjUXwEOKteYyYw/0+IeAdN47Z3ewowFXLcMmif13poXhM5RZQ==", + "dependencies": { + "@peculiar/webcrypto": "^1.4.0", + "bip39": "^3.0.4", + "borc": "^2.1.1", + "bs58check": "^2.1.2", + "js-sha256": "^0.9.0", + "secp256k1": "^4.0.2", + "ts-node": "^10.8.2", + "tweetnacl": "^1.0.1" + }, + "peerDependencies": { + "@dfinity/agent": "^0.14.1", + "@dfinity/principal": "^0.14.1", + "crypto-browserify": "^3.12.0" + } + }, + "node_modules/@dfinity/principal": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.14.1.tgz", + "integrity": "sha512-a5TDU0iWLeuNjI+L1Ukx5nRhQHMCN2GRQkQg1Z0AzP3dX7FkBOiaLwMCLhCRUk/sK/SeR6/hCA0YKiwRqzjhqA==", + "peer": true, + "dependencies": { + "js-sha256": "^0.9.0", + "ts-node": "^10.8.2" + } + }, + "node_modules/@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "node_modules/@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "dependencies": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "node_modules/@peculiar/asn1-schema": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", + "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "dependencies": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "dependencies": { + "tslib": "^2.0.0" + }, + "engines": { + "node": ">=8.0.0" + } + }, + "node_modules/@peculiar/webcrypto": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", + "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "dependencies": { + "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.1", + "webcrypto-core": "^1.7.4" + }, + "engines": { + "node": ">=10.12.0" + } + }, + "node_modules/@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "node_modules/@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "node_modules/@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "node_modules/@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "node_modules/@types/node": { + "version": "18.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", + "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==", + "peer": true + }, + "node_modules/acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==", + "bin": { + "acorn": "bin/acorn" + }, + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "engines": { + "node": ">=0.4.0" + } + }, + "node_modules/arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "node_modules/asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "peer": true, + "dependencies": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + } + }, + "node_modules/asn1.js/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "node_modules/asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "dependencies": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + }, + "engines": { + "node": ">=12.0.0" + } + }, + "node_modules/base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "dependencies": { + "safe-buffer": "^5.0.1" + } + }, + "node_modules/base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "peer": true, + "engines": { + "node": ">= 0.6.0" + } + }, + "node_modules/base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==", + "engines": { + "node": "*" + } + }, + "node_modules/bip39": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", + "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", + "dependencies": { + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" + } + }, + "node_modules/bip39/node_modules/@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" + }, + "node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true + }, + "node_modules/borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "dependencies": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "peer": true, + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "peer": true, + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "peer": true, + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "peer": true, + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "peer": true, + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "dependencies": { + "base-x": "^3.0.2" + } + }, + "node_modules/bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "dependencies": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ], + "dependencies": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "peer": true + }, + "node_modules/cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "peer": true, + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, + "node_modules/create-ecdh/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "node_modules/create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "dependencies": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "node_modules/create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "dependencies": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "node_modules/create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "peer": true, + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, + "node_modules/delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==" + }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "peer": true, + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "node_modules/diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "engines": { + "node": ">=0.3.1" + } + }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "peer": true, + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, + "node_modules/diffie-hellman/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "node_modules/elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "dependencies": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/elliptic/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "peer": true, + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "dependencies": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "engines": { + "node": ">=4" + } + }, + "node_modules/hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "dependencies": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "node_modules/hdkey": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.0.1.tgz", + "integrity": "sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA==", + "dependencies": { + "bs58check": "^2.1.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + } + }, + "node_modules/hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "dependencies": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "node_modules/ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "node_modules/iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==", + "engines": { + "node": ">=10" + } + }, + "node_modules/js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "node_modules/json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==", + "dependencies": { + "delimit-stream": "0.1.0" + } + }, + "node_modules/make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "node_modules/md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "peer": true, + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, + "node_modules/miller-rabin/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "node_modules/minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "node_modules/minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node_modules/node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "bin": { + "node-gyp-build": "bin.js", + "node-gyp-build-optional": "optional.js", + "node-gyp-build-test": "build-test.js" + } + }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "peer": true, + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "node_modules/pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "dependencies": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + }, + "engines": { + "node": ">=0.12" + } + }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "peer": true, + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/public-encrypt/node_modules/bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + }, + "node_modules/pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "dependencies": { + "tslib": "^2.4.0" + } + }, + "node_modules/pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==", + "engines": { + "node": ">=6.0.0" + } + }, + "node_modules/randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "dependencies": { + "safe-buffer": "^5.1.0" + } + }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "peer": true, + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "node_modules/readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dependencies": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + }, + "engines": { + "node": ">= 6" + } + }, + "node_modules/ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "dependencies": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, + "node_modules/safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "peer": true + }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, + "node_modules/sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "dependencies": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + }, + "bin": { + "sha.js": "bin.js" + } + }, + "node_modules/simple-cbor": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", + "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==", + "peer": true + }, + "node_modules/string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "dependencies": { + "safe-buffer": "~5.2.0" + } + }, + "node_modules/ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "dependencies": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + }, + "bin": { + "ts-node": "dist/bin.js", + "ts-node-cwd": "dist/bin-cwd.js", + "ts-node-esm": "dist/bin-esm.js", + "ts-node-script": "dist/bin-script.js", + "ts-node-transpile-only": "dist/bin-transpile.js", + "ts-script": "dist/bin-script-deprecated.js" + }, + "peerDependencies": { + "@swc/core": ">=1.2.50", + "@swc/wasm": ">=1.2.50", + "@types/node": "*", + "typescript": ">=2.7" + }, + "peerDependenciesMeta": { + "@swc/core": { + "optional": true + }, + "@swc/wasm": { + "optional": true + } + } + }, + "node_modules/tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "node_modules/tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "node_modules/typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "peer": true, + "bin": { + "tsc": "bin/tsc", + "tsserver": "bin/tsserver" + }, + "engines": { + "node": ">=4.2.0" + } + }, + "node_modules/util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "node_modules/v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "node_modules/webcrypto-core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", + "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", + "dependencies": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "node_modules/yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", + "engines": { + "node": ">=6" + } + } + }, + "dependencies": { + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", + "requires": { + "@jridgewell/trace-mapping": "0.3.9" + } + }, + "@dfinity/agent": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@dfinity/agent/-/agent-0.14.1.tgz", + "integrity": "sha512-qLAQrhkxshcsxECnMSa1zY7mI8ua0vItrdA9JJI9WBRz4rDDXtrXyOYnh3u6pUPpdfF/i6bjx+NgrjYZucLe1Q==", + "peer": true, + "requires": { + "base64-arraybuffer": "^0.2.0", + "bignumber.js": "^9.0.0", + "borc": "^2.1.1", + "js-sha256": "0.9.0", + "simple-cbor": "^0.4.1", + "ts-node": "^10.8.2" + } + }, + "@dfinity/candid": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@dfinity/candid/-/candid-0.14.1.tgz", + "integrity": "sha512-yRIRnVrJ4LjB0jFKUqZ2NeUzCCR6m8pm/n+0+IoVzY94ZkFATUkBSvdNxDZd1CCtNDNApi+YDe61DSQ51cDkrg==", + "peer": true, + "requires": { + "ts-node": "^10.8.2" + } + }, + "@dfinity/identity": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@dfinity/identity/-/identity-0.14.1.tgz", + "integrity": "sha512-3/Be+5QOes6EERpqE8vEIIh53TPTD074hqnwXZjUXwEOKteYyYw/0+IeAdN47Z3ewowFXLcMmif13poXhM5RZQ==", + "requires": { + "@peculiar/webcrypto": "^1.4.0", + "bip39": "^3.0.4", + "borc": "^2.1.1", + "bs58check": "^2.1.2", + "js-sha256": "^0.9.0", + "secp256k1": "^4.0.2", + "ts-node": "^10.8.2", + "tweetnacl": "^1.0.1" + } + }, + "@dfinity/principal": { + "version": "0.14.1", + "resolved": "https://registry.npmjs.org/@dfinity/principal/-/principal-0.14.1.tgz", + "integrity": "sha512-a5TDU0iWLeuNjI+L1Ukx5nRhQHMCN2GRQkQg1Z0AzP3dX7FkBOiaLwMCLhCRUk/sK/SeR6/hCA0YKiwRqzjhqA==", + "peer": true, + "requires": { + "js-sha256": "^0.9.0", + "ts-node": "^10.8.2" + } + }, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", + "requires": { + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" + } + }, + "@peculiar/asn1-schema": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/@peculiar/asn1-schema/-/asn1-schema-2.3.3.tgz", + "integrity": "sha512-6GptMYDMyWBHTUKndHaDsRZUO/XMSgIns2krxcm2L7SEExRHwawFvSwNBhqNPR9HJwv3MruAiF1bhN0we6j6GQ==", + "requires": { + "asn1js": "^3.0.5", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "@peculiar/json-schema": { + "version": "1.1.12", + "resolved": "https://registry.npmjs.org/@peculiar/json-schema/-/json-schema-1.1.12.tgz", + "integrity": "sha512-coUfuoMeIB7B8/NMekxaDzLhaYmp0HZNPEjYRm9goRou8UZIC3z21s0sL9AWoCw4EG876QyO3kYrc61WNF9B/w==", + "requires": { + "tslib": "^2.0.0" + } + }, + "@peculiar/webcrypto": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/@peculiar/webcrypto/-/webcrypto-1.4.1.tgz", + "integrity": "sha512-eK4C6WTNYxoI7JOabMoZICiyqRRtJB220bh0Mbj5RwRycleZf9BPyZoxsTvpP0FpmVS2aS13NKOuh5/tN3sIRw==", + "requires": { + "@peculiar/asn1-schema": "^2.3.0", + "@peculiar/json-schema": "^1.1.12", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.1", + "webcrypto-core": "^1.7.4" + } + }, + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==" + }, + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==" + }, + "@tsconfig/node14": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==" + }, + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==" + }, + "@types/node": { + "version": "18.11.11", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.11.11.tgz", + "integrity": "sha512-KJ021B1nlQUBLopzZmPBVuGU9un7WJd/W4ya7Ih02B4Uwky5Nja0yGYav2EfYIk0RR2Q9oVhf60S2XR1BCWJ2g==", + "peer": true + }, + "acorn": { + "version": "8.8.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.8.1.tgz", + "integrity": "sha512-7zFpHzhnqYKrkYdUjF1HI1bzd0VygEGX8lFk4k5zVMqHEoES+P+7TKI+EvLO9WVMJ8eekdO0aDEK044xTXwPPA==" + }, + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==" + }, + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==" + }, + "asn1.js": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", + "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", + "peer": true, + "requires": { + "bn.js": "^4.0.0", + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0", + "safer-buffer": "^2.1.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + } + } + }, + "asn1js": { + "version": "3.0.5", + "resolved": "https://registry.npmjs.org/asn1js/-/asn1js-3.0.5.tgz", + "integrity": "sha512-FVnvrKJwpt9LP2lAMl8qZswRNm3T4q9CON+bxldk2iwk3FFpuwhx2FfinyitizWHsVYyaY+y5JzDR0rCMV5yTQ==", + "requires": { + "pvtsutils": "^1.3.2", + "pvutils": "^1.1.3", + "tslib": "^2.4.0" + } + }, + "base-x": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/base-x/-/base-x-3.0.9.tgz", + "integrity": "sha512-H7JU6iBHTal1gp56aKoaa//YUxEaAOUiydvrV/pILqIHXTtqxSkATOnDA2u+jZ/61sD+L/412+7kzXRtWukhpQ==", + "requires": { + "safe-buffer": "^5.0.1" + } + }, + "base64-arraybuffer": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.2.0.tgz", + "integrity": "sha512-7emyCsu1/xiBXgQZrscw/8KPRT44I4Yq9Pe6EGs3aPRTsWuggML1/1DTuZUuIaJPIm1FTDUVXl4x/yW8s0kQDQ==", + "peer": true + }, + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" + }, + "bignumber.js": { + "version": "9.1.1", + "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.1.1.tgz", + "integrity": "sha512-pHm4LsMJ6lzgNGVfZHjMoO8sdoRhOzOH4MLmY65Jg70bpxCKu5iOHNJyfF6OyvYw7t8Fpf35RuzUyqnQsj8Vig==" + }, + "bip39": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/bip39/-/bip39-3.0.4.tgz", + "integrity": "sha512-YZKQlb752TrUWqHWj7XAwCSjYEgGAk+/Aas3V7NyjQeZYsztO8JnQUaCWhcnL4T+jL8nvB8typ2jRPzTlgugNw==", + "requires": { + "@types/node": "11.11.6", + "create-hash": "^1.1.0", + "pbkdf2": "^3.0.9", + "randombytes": "^2.0.1" + }, + "dependencies": { + "@types/node": { + "version": "11.11.6", + "resolved": "https://registry.npmjs.org/@types/node/-/node-11.11.6.tgz", + "integrity": "sha512-Exw4yUWMBXM3X+8oqzJNRqZSwUAaS4+7NdvHqQuFi/d+synz++xmX3QIf+BFqneW8N31R8Ky+sikfZUXq07ggQ==" + } + } + }, + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", + "peer": true + }, + "borc": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/borc/-/borc-2.1.2.tgz", + "integrity": "sha512-Sy9eoUi4OiKzq7VovMn246iTo17kzuyHJKomCfpWMlI6RpfN1gk95w7d7gH264nApVLg0HZfcpz62/g4VH1Y4w==", + "requires": { + "bignumber.js": "^9.0.0", + "buffer": "^5.5.0", + "commander": "^2.15.0", + "ieee754": "^1.1.13", + "iso-url": "~0.4.7", + "json-text-sequence": "~0.1.0", + "readable-stream": "^3.6.0" + } + }, + "brorand": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", + "integrity": "sha512-cKV8tMCEpQs4hK/ik71d6LrPOnpkpGBR0wzxqr68g2m/LB2GxVYQroAjMJZRVM1Y4BCjCKc3vAamxSzOY2RP+w==" + }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "peer": true, + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "peer": true, + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "peer": true, + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "peer": true, + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "peer": true, + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "bs58": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/bs58/-/bs58-4.0.1.tgz", + "integrity": "sha512-Ok3Wdf5vOIlBrgCvTq96gBkJw+JUEzdBgyaza5HLtPm7yTHkjRy8+JzNyHF7BHa0bNWOQIp3m5YF0nnFcOIKLw==", + "requires": { + "base-x": "^3.0.2" + } + }, + "bs58check": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/bs58check/-/bs58check-2.1.2.tgz", + "integrity": "sha512-0TS1jicxdU09dwJMNZtVAfzPi6Q6QeN0pM1Fkzrjn+XYHvzMKPU3pHVpva+769iNVSfIYWf7LJ6WR+BuuMf8cA==", + "requires": { + "bs58": "^4.0.0", + "create-hash": "^1.1.0", + "safe-buffer": "^5.1.2" + } + }, + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", + "peer": true + }, + "cipher-base": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", + "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==" + }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "peer": true, + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + } + } + }, + "create-hash": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", + "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", + "requires": { + "cipher-base": "^1.0.1", + "inherits": "^2.0.1", + "md5.js": "^1.3.4", + "ripemd160": "^2.0.1", + "sha.js": "^2.4.0" + } + }, + "create-hmac": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", + "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", + "requires": { + "cipher-base": "^1.0.3", + "create-hash": "^1.1.0", + "inherits": "^2.0.1", + "ripemd160": "^2.0.0", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==" + }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "peer": true, + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, + "delimit-stream": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/delimit-stream/-/delimit-stream-0.1.0.tgz", + "integrity": "sha512-a02fiQ7poS5CnjiJBAsjGLPp5EwVoGHNeu9sziBd9huppRfsAFIpv5zNLv0V1gbop53ilngAf5Kf331AwcoRBQ==" + }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "peer": true, + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==" + }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "peer": true, + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + } + } + }, + "elliptic": { + "version": "6.5.4", + "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.4.tgz", + "integrity": "sha512-iLhC6ULemrljPZb+QutR5TQGB+pdW6KGD5RSegS+8sorOZT+rdQFbsQFJgvN3eRqNALqJer4oQ16YvJHlU8hzQ==", + "requires": { + "bn.js": "^4.11.9", + "brorand": "^1.1.0", + "hash.js": "^1.0.0", + "hmac-drbg": "^1.0.1", + "inherits": "^2.0.4", + "minimalistic-assert": "^1.0.1", + "minimalistic-crypto-utils": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==" + } + } + }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "peer": true, + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, + "hash-base": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", + "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "requires": { + "inherits": "^2.0.4", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "hash.js": { + "version": "1.1.7", + "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", + "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "requires": { + "inherits": "^2.0.3", + "minimalistic-assert": "^1.0.1" + } + }, + "hdkey": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.0.1.tgz", + "integrity": "sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA==", + "requires": { + "bs58check": "^2.1.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + } + }, + "hmac-drbg": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", + "integrity": "sha512-Tti3gMqLdZfhOQY1Mzf/AanLiqh1WTiJgEj26ZuYQ9fbkLomzGchCws4FyrSd4VkpBfiNhaE1On+lOz894jvXg==", + "requires": { + "hash.js": "^1.0.3", + "minimalistic-assert": "^1.0.0", + "minimalistic-crypto-utils": "^1.0.1" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "iso-url": { + "version": "0.4.7", + "resolved": "https://registry.npmjs.org/iso-url/-/iso-url-0.4.7.tgz", + "integrity": "sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog==" + }, + "js-sha256": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/js-sha256/-/js-sha256-0.9.0.tgz", + "integrity": "sha512-sga3MHh9sgQN2+pJ9VYZ+1LPwXOxuBJBA5nrR5/ofPfuiJBE2hnjsaN8se8JznOmGLN2p49Pe5U/ttafcs/apA==" + }, + "json-text-sequence": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/json-text-sequence/-/json-text-sequence-0.1.1.tgz", + "integrity": "sha512-L3mEegEWHRekSHjc7+sc8eJhba9Clq1PZ8kMkzf8OxElhXc8O4TS5MwcVlj9aEbm5dr81N90WHC5nAz3UO971w==", + "requires": { + "delimit-stream": "0.1.0" + } + }, + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==" + }, + "md5.js": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", + "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "peer": true, + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + } + } + }, + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==" + }, + "minimalistic-crypto-utils": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", + "integrity": "sha512-JIYlbt6g8i5jKfJ3xz7rF0LXmv2TkDxBLUkiBeZ7bAx4GnnNMr8xFpGnOxn6GhTEHx3SjRrZEoU+j04prX1ktg==" + }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, + "node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" + }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "peer": true, + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, + "pbkdf2": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.2.tgz", + "integrity": "sha512-iuh7L6jA7JEGu2WxDwtQP1ddOpaJNC4KlDEFfdQajSGgGPNi4OyDc2R7QnbY2bR9QjBVGwgvTdNJZoE7RaxUMA==", + "requires": { + "create-hash": "^1.1.2", + "create-hmac": "^1.1.4", + "ripemd160": "^2.0.1", + "safe-buffer": "^5.0.1", + "sha.js": "^2.4.8" + } + }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "peer": true, + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + }, + "dependencies": { + "bn.js": { + "version": "4.12.0", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.12.0.tgz", + "integrity": "sha512-c98Bf3tPniI+scsdk237ku1Dc3ujXQTSgyiPUDEOe7tRkhrqridvh8klBv0HCEso1OLOYcHuCv/cS6DNxKH+ZA==", + "peer": true + } + } + }, + "pvtsutils": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/pvtsutils/-/pvtsutils-1.3.2.tgz", + "integrity": "sha512-+Ipe2iNUyrZz+8K/2IOo+kKikdtfhRKzNpQbruF2URmqPtoqAs8g3xS7TJvFF2GcPXjh7DkqMnpVveRFq4PgEQ==", + "requires": { + "tslib": "^2.4.0" + } + }, + "pvutils": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/pvutils/-/pvutils-1.1.3.tgz", + "integrity": "sha512-pMpnA0qRdFp32b1sJl1wOJNxZLQ2cbQx+k6tjNtZ8CpvVhNqEPRgivZ2WOUev2YMajecdH7ctUPDvEe87nariQ==" + }, + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", + "requires": { + "safe-buffer": "^5.1.0" + } + }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "peer": true, + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "ripemd160": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", + "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "requires": { + "hash-base": "^3.0.0", + "inherits": "^2.0.1" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "peer": true + }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, + "sha.js": { + "version": "2.4.11", + "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", + "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "requires": { + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "simple-cbor": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/simple-cbor/-/simple-cbor-0.4.1.tgz", + "integrity": "sha512-rijcxtwx2b4Bje3sqeIqw5EeW7UlOIC4YfOdwqIKacpvRQ/D78bWg/4/0m5e0U91oKvlGh7LlJuZCu07ISCC7w==", + "peer": true + }, + "string_decoder": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz", + "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==", + "requires": { + "safe-buffer": "~5.2.0" + } + }, + "ts-node": { + "version": "10.9.1", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.9.1.tgz", + "integrity": "sha512-NtVysVPkxxrwFGUUxGYhfux8k78pQB3JqYBXlLRZgdGUqTO5wU/UyHop5p70iEbGhB7q5KmiZiU0Y3KlJrScEw==", + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.1.tgz", + "integrity": "sha512-tGyy4dAjRIEwI7BzsB0lynWgOpfqjUdq91XXAlIWD2OwKBH7oCl/GZG/HT4BOHrTlPMOASlMQ7veyTqpmRcrNA==" + }, + "tweetnacl": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", + "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==" + }, + "typescript": { + "version": "4.9.3", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.3.tgz", + "integrity": "sha512-CIfGzTelbKNEnLpLdGFgdyKhG23CKdKgQPOBc+OUNrkJ2vr+KSzsSV5kq5iWhEQbok+quxgGzrAtGWCyU7tHnA==", + "peer": true + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==" + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==" + }, + "webcrypto-core": { + "version": "1.7.5", + "resolved": "https://registry.npmjs.org/webcrypto-core/-/webcrypto-core-1.7.5.tgz", + "integrity": "sha512-gaExY2/3EHQlRNNNVSrbG2Cg94Rutl7fAaKILS1w8ZDhGxdFOaw6EbCfHIxPy9vt/xwp5o0VQAx9aySPF6hU1A==", + "requires": { + "@peculiar/asn1-schema": "^2.1.6", + "@peculiar/json-schema": "^1.1.12", + "asn1js": "^3.0.1", + "pvtsutils": "^1.3.2", + "tslib": "^2.4.0" + } + }, + "yn": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", + "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==" + } + } +} diff --git a/packages/secp256k1/package.json b/packages/secp256k1/package.json new file mode 100644 index 000000000..a664dd270 --- /dev/null +++ b/packages/secp256k1/package.json @@ -0,0 +1,18 @@ +{ + "name": "@dfinity/authentication", + "version": "0.14.1", + "author": "DFINITY Stiftung ", + "license": "Apache-2.0", + "description": "JavaScript and TypeScript library to manage identity and authentication with the Internet Computer", + "deprecated": "This package has been deprecated. isDelegationValid has been migrated to @dfinity/identity", + "main": "./lib/cjs/index.js", + "scripts": { + "build": "", + "test": "" + }, + "dependencies": { + "@dfinity/identity": "^0.14.1", + "bip39": "^3.0.4", + "hdkey": "^2.0.1" + } +} diff --git a/packages/identity/src/identity/secp256k1.test.ts b/packages/secp256k1/src/secp256k1.test.ts similarity index 100% rename from packages/identity/src/identity/secp256k1.test.ts rename to packages/secp256k1/src/secp256k1.test.ts diff --git a/packages/identity/src/identity/secp256k1.ts b/packages/secp256k1/src/secp256k1.ts similarity index 100% rename from packages/identity/src/identity/secp256k1.ts rename to packages/secp256k1/src/secp256k1.ts From 19dd686ac27decc993488e4768e02b9740d1eaa1 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Wed, 7 Dec 2022 16:14:29 -0800 Subject: [PATCH 03/15] more configs --- package-lock.json | 457 ++---------------- package.json | 6 + packages/agent/package.json | 1 - packages/identity/tsconfig.json | 3 +- packages/secp256k1/jest.config.ts | 18 + packages/secp256k1/package.json | 15 +- .../src}/__snapshots__/secp256k1.test.ts.snap | 0 packages/secp256k1/src/buffer.ts | 15 + packages/secp256k1/src/der.test.ts | 163 +++++++ packages/secp256k1/src/der.ts | 166 +++++++ .../src/identity => secp256k1/src}/hdkey.ts | 0 packages/secp256k1/src/secp256k1.ts | 2 +- packages/secp256k1/test-setup.ts | 11 + packages/secp256k1/tsconfig-cjs.json | 7 + packages/secp256k1/tsconfig.json | 26 + 15 files changed, 462 insertions(+), 428 deletions(-) create mode 100644 packages/secp256k1/jest.config.ts rename packages/{identity/src/identity => secp256k1/src}/__snapshots__/secp256k1.test.ts.snap (100%) create mode 100644 packages/secp256k1/src/buffer.ts create mode 100644 packages/secp256k1/src/der.test.ts create mode 100644 packages/secp256k1/src/der.ts rename packages/{identity/src/identity => secp256k1/src}/hdkey.ts (100%) create mode 100644 packages/secp256k1/test-setup.ts create mode 100644 packages/secp256k1/tsconfig-cjs.json create mode 100644 packages/secp256k1/tsconfig.json diff --git a/package-lock.json b/package-lock.json index e574a8d1a..d6a05f8d3 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,6 +45,7 @@ "packages/identity", "packages/auth-client", "packages/assets", + "packages/secp256k1", "e2e/node", "e2e/browser", "demos/ledgerhq", @@ -1923,7 +1924,7 @@ "link": true }, "node_modules/@dfinity/authentication": { - "resolved": "packages/authentication", + "resolved": "packages/secp256k1", "link": true }, "node_modules/@dfinity/bls-verify": { @@ -7076,102 +7077,6 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "peer": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "peer": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "peer": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "peer": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "peer": true - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "peer": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "peer": true - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "peer": true - }, "node_modules/browserslist": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", @@ -7274,12 +7179,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "peer": true - }, "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -8057,16 +7956,6 @@ "node": ">=10" } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "peer": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -8125,28 +8014,6 @@ "node": "*" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "peer": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -8760,16 +8627,6 @@ "node": ">= 0.8" } }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "peer": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -8821,17 +8678,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "peer": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -10127,16 +9973,6 @@ "node": ">=0.8.x" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "peer": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -11131,6 +10967,16 @@ "minimalistic-assert": "^1.0.1" } }, + "node_modules/hdkey": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.0.1.tgz", + "integrity": "sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA==", + "dependencies": { + "bs58check": "^2.1.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -14446,19 +14292,6 @@ "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "peer": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -15298,19 +15131,6 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "peer": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -16333,20 +16153,6 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "peer": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -16423,16 +16229,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "peer": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -19880,6 +19676,7 @@ "name": "@dfinity/authentication", "version": "0.14.1", "deprecated": "This package has been deprecated. isDelegationValid has been migrated to @dfinity/identity", + "extraneous": true, "license": "Apache-2.0", "dependencies": { "@dfinity/identity": "^0.14.1" @@ -20056,8 +19853,7 @@ }, "peerDependencies": { "@dfinity/agent": "^0.14.1", - "@dfinity/principal": "^0.14.1", - "crypto-browserify": "^3.12.0" + "@dfinity/principal": "^0.14.1" } }, "packages/identity-ledgerhq": { @@ -20252,6 +20048,16 @@ "resolved": "https://registry.npmjs.org/vscode-textmate/-/vscode-textmate-5.2.0.tgz", "integrity": "sha512-Uw5ooOQxRASHgu6C7GVvUxisKXfSgW4oFlO+aa+PAkgmH89O3CXxEEzNRNtHSqtXFTl0nAC1uYj0GMSH27uwtQ==", "dev": true + }, + "packages/secp256k1": { + "version": "0.14.1", + "deprecated": "This package has been deprecated. isDelegationValid has been migrated to @dfinity/identity", + "license": "Apache-2.0", + "dependencies": { + "@dfinity/identity": "^0.14.1", + "bip39": "^3.0.4", + "hdkey": "^2.0.1" + } } }, "dependencies": { @@ -21756,9 +21562,11 @@ } }, "@dfinity/authentication": { - "version": "file:packages/authentication", + "version": "file:packages/secp256k1", "requires": { - "@dfinity/identity": "^0.14.1" + "@dfinity/identity": "^0.14.1", + "bip39": "^3.0.4", + "hdkey": "^2.0.1" } }, "@dfinity/bls-verify": { @@ -25856,92 +25664,6 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "peer": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "peer": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "peer": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "peer": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "peer": true - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "peer": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==", - "peer": true - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "peer": true - } - } - }, "browserslist": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", @@ -26008,12 +25730,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==", - "peer": true - }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -26598,16 +26314,6 @@ "yaml": "^1.10.0" } }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "peer": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -26660,25 +26366,6 @@ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "peer": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, "css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -27135,16 +26822,6 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "peer": true, - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -27177,17 +26854,6 @@ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "peer": true, - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -28067,16 +27733,6 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "peer": true, - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -28830,6 +28486,16 @@ "minimalistic-assert": "^1.0.1" } }, + "hdkey": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.0.1.tgz", + "integrity": "sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA==", + "requires": { + "bs58check": "^2.1.2", + "safe-buffer": "^5.1.1", + "secp256k1": "^4.0.0" + } + }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -31249,16 +30915,6 @@ "picomatch": "^2.3.1" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "peer": true, - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -31899,19 +31555,6 @@ "callsites": "^3.0.0" } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "peer": true, - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -32673,20 +32316,6 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "peer": true, - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -32740,16 +32369,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "peer": true, - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", diff --git a/package.json b/package.json index 75e90e23b..1849e9ac8 100644 --- a/package.json +++ b/package.json @@ -12,6 +12,7 @@ "packages/identity", "packages/auth-client", "packages/assets", + "packages/secp256k1", "e2e/node", "e2e/browser", "demos/ledgerhq", @@ -97,6 +98,11 @@ "name": "@dfinity/identity", "path": "./packages/identity/dist/index.js", "limit": "320 kB" + }, + { + "name": "@dfinity/secp256k1", + "path": "./packages/secp256k1/dist/index.js", + "limit": "320 kB" } ] } diff --git a/packages/agent/package.json b/packages/agent/package.json index ad3cbfc9f..0f273c252 100644 --- a/packages/agent/package.json +++ b/packages/agent/package.json @@ -39,7 +39,6 @@ "build": "tsc -b && tsc -p tsconfig-cjs.json", "build:watch": "tsc -b --watch", "bundle": "esbuild --bundle src/index.ts --outfile=dist/index.js", - "size-limit": "size-limit", "eslint:fix": "npm run lint -- --fix", "eslint": "eslint --ext '.js,.jsx,.ts,.tsx' src/index.ts src/auth.ts src/request_id.ts src/request_id.test.ts", "lint": "npm run eslint", diff --git a/packages/identity/tsconfig.json b/packages/identity/tsconfig.json index c73afbcfc..a0bcc02bd 100644 --- a/packages/identity/tsconfig.json +++ b/packages/identity/tsconfig.json @@ -23,7 +23,8 @@ "src/**/*", "client-test", "index.d.ts", - "../secp256k1/src/secp256k1.test.ts" + "../secp256k1/src/secp256k1.test.ts", + "../secp256k1/hdkey.ts" ], "references": [{ "path": "../agent" }] } diff --git a/packages/secp256k1/jest.config.ts b/packages/secp256k1/jest.config.ts new file mode 100644 index 000000000..abe142340 --- /dev/null +++ b/packages/secp256k1/jest.config.ts @@ -0,0 +1,18 @@ +import baseConfig from '../../jest.config.base'; +const packageName = 'secp256k1'; + +module.exports = { + ...baseConfig, + roots: [`/packages/${packageName}`], + bail: false, + fakeTimers: { enableGlobally: true }, + moduleDirectories: ['node_modules'], + modulePaths: [`/packages/${packageName}/src/`], + setupFiles: [`/packages/${packageName}/test-setup.ts`], + transform: { + '^.+\\.ts$': 'ts-jest', + }, + collectCoverageFrom: ['src/**/*.{ts,tsx}'], + displayName: packageName, + rootDir: '../..', +}; diff --git a/packages/secp256k1/package.json b/packages/secp256k1/package.json index a664dd270..dbf93de8e 100644 --- a/packages/secp256k1/package.json +++ b/packages/secp256k1/package.json @@ -1,17 +1,20 @@ { - "name": "@dfinity/authentication", + "name": "@dfinity/secp256k1", "version": "0.14.1", "author": "DFINITY Stiftung ", "license": "Apache-2.0", - "description": "JavaScript and TypeScript library to manage identity and authentication with the Internet Computer", - "deprecated": "This package has been deprecated. isDelegationValid has been migrated to @dfinity/identity", + "description": "JavaScript and TypeScript library to manage Secp256k1KeyIdentities for use with the Internet Computer", "main": "./lib/cjs/index.js", "scripts": { - "build": "", - "test": "" + "build": "tsc -b && tsc -p tsconfig-cjs.json", + "eslint": "eslint --ext '.js,.jsx,.ts,.tsx'", + "make:docs/reference": "typedoc src/index.ts --out ../../docs/generated/secp256k1 --excludeInternal", + "bundle": "esbuild --bundle src/index.ts --outfile=dist/index.js", + "test": "jest", + "test:coverage": "jest --verbose --collectCoverage" }, "dependencies": { - "@dfinity/identity": "^0.14.1", + "@dfinity/agent": "^0.14.1", "bip39": "^3.0.4", "hdkey": "^2.0.1" } diff --git a/packages/identity/src/identity/__snapshots__/secp256k1.test.ts.snap b/packages/secp256k1/src/__snapshots__/secp256k1.test.ts.snap similarity index 100% rename from packages/identity/src/identity/__snapshots__/secp256k1.test.ts.snap rename to packages/secp256k1/src/__snapshots__/secp256k1.test.ts.snap diff --git a/packages/secp256k1/src/buffer.ts b/packages/secp256k1/src/buffer.ts new file mode 100644 index 000000000..37366061b --- /dev/null +++ b/packages/secp256k1/src/buffer.ts @@ -0,0 +1,15 @@ +/** + * Return an array buffer from its hexadecimal representation. + * @param hexString The hexadecimal string. + */ +export function fromHexString(hexString: string): ArrayBuffer { + return new Uint8Array((hexString.match(/.{1,2}/g) ?? []).map(byte => parseInt(byte, 16))).buffer; +} + +/** + * Returns an hexadecimal representation of an array buffer. + * @param bytes The array buffer. + */ +export function toHexString(bytes: ArrayBuffer): string { + return new Uint8Array(bytes).reduce((str, byte) => str + byte.toString(16).padStart(2, '0'), ''); +} diff --git a/packages/secp256k1/src/der.test.ts b/packages/secp256k1/src/der.test.ts new file mode 100644 index 000000000..765451983 --- /dev/null +++ b/packages/secp256k1/src/der.test.ts @@ -0,0 +1,163 @@ +import { bufEquals, encodeLenBytes, encodeLen, decodeLenBytes, decodeLen } from './der'; + +describe('bufEquals tests', () => { + test('equal buffers', () => { + const buf1 = Uint8Array.from([0, 0, 0, 1]).buffer; + const buf2 = Uint8Array.from([0, 0, 0, 1]).buffer; + expect(bufEquals(buf1, buf2)).toBe(true); + }); + test('rejects buffers with different lengths', () => { + const buf1 = Uint8Array.from([0, 0, 0, 0, 1]).buffer; + const buf2 = Uint8Array.from([0, 0, 0, 1]).buffer; + expect(bufEquals(buf1, buf2)).toBe(false); + }); + test('rejects buffers with different values', () => { + const buf1 = Uint8Array.from([0, 0, 0, 2]).buffer; + const buf2 = Uint8Array.from([0, 0, 0, 1]).buffer; + expect(bufEquals(buf1, buf2)).toBe(false); + }); +}); + +describe('encodeLenBytes', () => { + test('Length of up to 127', () => { + const byteLength = Uint8Array.from(new Array(127)).byteLength; + expect(encodeLenBytes(byteLength)).toEqual(1); + }); + test('Length of up to 255', () => { + const min = Uint8Array.from(new Array(128)).byteLength; + expect(encodeLenBytes(min)).toEqual(2); + const max = Uint8Array.from(new Array(255)).byteLength; + expect(encodeLenBytes(max)).toEqual(2); + }); + test('Length of up to 65536', () => { + const min = Uint8Array.from(new Array(256)).byteLength; + expect(encodeLenBytes(min)).toEqual(3); + const max = Uint8Array.from(new Array(65535)).byteLength; + expect(encodeLenBytes(max)).toEqual(3); + }); + test('Length of up to 16777215', () => { + // Using numbers directly for performance + const min = 65536; + expect(encodeLenBytes(min)).toEqual(4); + const max = 16777215; + expect(encodeLenBytes(max)).toEqual(4); + }); + test('Over maximum length', () => { + const shouldFail = () => encodeLenBytes(16777216); + expect(shouldFail).toThrowError('Length too long (> 4 bytes)'); + }); +}); + +describe('encodeLen', () => { + const buf = Uint8Array.from(new Array(256)); + test('Length of up to 127', () => { + const min = encodeLen(buf, 0, 1); + const max = encodeLen(buf, 0, 127); + expect(min).toEqual(1); + expect(max).toEqual(1); + }); + test('Length of up to 255', () => { + const min = encodeLen(buf, 0, 128); + const max = encodeLen(buf, 0, 255); + expect(min).toEqual(2); + expect(max).toEqual(2); + }); + test('Length of up to 65535', () => { + const min = encodeLen(buf, 0, 256); + const max = encodeLen(buf, 0, 65535); + expect(min).toEqual(3); + expect(max).toEqual(3); + }); + test('Length of up to 16777215', () => { + const min = encodeLen(buf, 0, 65536); + const max = encodeLen(buf, 0, 16777215); + expect(min).toEqual(4); + expect(max).toEqual(4); + }); + test('Length of up to 16777215', () => { + const min = encodeLen(buf, 0, 65536); + const max = encodeLen(buf, 0, 16777215); + expect(min).toEqual(4); + expect(max).toEqual(4); + }); + test('Over maximum length', () => { + const shouldFail = () => encodeLen(buf, 0, 16777216); + expect(shouldFail).toThrowError('Length too long (> 4 bytes)'); + }); +}); + +describe('DecodeLenBytes', () => { + test('encoded length of zero', () => { + // length of buf doesn't matter + const buf = Uint8Array.from(new Array(2)); + // 129 signifies a DER length of 2 + buf[0] = 128; + const shouldFail = () => decodeLenBytes(buf, 0); + expect(shouldFail).toThrowError('Invalid length 0'); + }); + test('encoded length of 1', () => { + const buf = Uint8Array.of(100); + expect(decodeLenBytes(buf, 0)).toBe(1); + }); + test('encoded length of 2', () => { + const buf = Uint8Array.from(new Array(2)); + // 129 signifies a DER length of 2 + buf[0] = 129; + expect(decodeLenBytes(buf, 0)).toBe(2); + }); + test('encoded length of 3', () => { + const buf = Uint8Array.from(new Array(2)); + // 130 signifies a DER length of 3 + buf[0] = 130; + expect(decodeLenBytes(buf, 0)).toBe(3); + }); + test('encoded length of 4', () => { + const buf = Uint8Array.from(new Array(2)); + // 131 signifies a DER length of 4 + buf[0] = 131; + expect(decodeLenBytes(buf, 0)).toBe(4); + }); + test('encoded length of 4', () => { + const buf = Uint8Array.from(new Array(2)); + buf[0] = 132; + const shouldFail = () => decodeLenBytes(buf, 0); + expect(shouldFail).toThrowError('Length too long'); + }); +}); + +describe('decodeLen', () => { + test('encoded length of 1', () => { + const buf = Uint8Array.of(1); + expect(decodeLen(buf, 0)).toBe(1); + }); + test('encoded length of 2', () => { + const buf = Uint8Array.from(new Array(10)); + buf[0] = 129; + // returns value stored at index 1 + buf[1] = 5; + + expect(decodeLen(buf, 0)).toBe(5); + }); + test('encoded length of 3', () => { + const buf = Uint8Array.from(new Array(10)); + buf[0] = 130; + buf[1] = 1; + buf[2] = 1; + expect(decodeLen(buf, 0)).toBe(257); + }); + test('encoded length of 4', () => { + const buf = Uint8Array.from(new Array(10)); + buf[0] = 131; + buf[1] = 1; + buf[2] = 1; + buf[3] = 1; + // returns value encoded by summing buf[offset + 3] and left-shifts of the values at index 1, and 2 + expect(decodeLen(buf, 0)).toBe(65793); + }); + test('length of over 4 bytes', () => { + const buf = Uint8Array.from(new Array(10)); + buf[0] = 133; + const shouldFail = () => decodeLen(buf, 0); + expect(shouldFail).toThrowError('Length too long'); + }); +}); diff --git a/packages/secp256k1/src/der.ts b/packages/secp256k1/src/der.ts new file mode 100644 index 000000000..be1ea858d --- /dev/null +++ b/packages/secp256k1/src/der.ts @@ -0,0 +1,166 @@ +export const bufEquals = (b1: ArrayBuffer, b2: ArrayBuffer): boolean => { + if (b1.byteLength !== b2.byteLength) return false; + const u1 = new Uint8Array(b1); + const u2 = new Uint8Array(b2); + for (let i = 0; i < u1.length; i++) { + if (u1[i] !== u2[i]) return false; + } + return true; +}; + +export const encodeLenBytes = (len: number): number => { + if (len <= 0x7f) { + return 1; + } else if (len <= 0xff) { + return 2; + } else if (len <= 0xffff) { + return 3; + } else if (len <= 0xffffff) { + return 4; + } else { + throw new Error('Length too long (> 4 bytes)'); + } +}; + +export const encodeLen = (buf: Uint8Array, offset: number, len: number): number => { + if (len <= 0x7f) { + buf[offset] = len; + return 1; + } else if (len <= 0xff) { + buf[offset] = 0x81; + buf[offset + 1] = len; + return 2; + } else if (len <= 0xffff) { + buf[offset] = 0x82; + buf[offset + 1] = len >> 8; + buf[offset + 2] = len; + return 3; + } else if (len <= 0xffffff) { + buf[offset] = 0x83; + buf[offset + 1] = len >> 16; + buf[offset + 2] = len >> 8; + buf[offset + 3] = len; + return 4; + } else { + throw new Error('Length too long (> 4 bytes)'); + } +}; + +export const decodeLenBytes = (buf: Uint8Array, offset: number): number => { + if (buf[offset] < 0x80) return 1; + if (buf[offset] === 0x80) throw new Error('Invalid length 0'); + if (buf[offset] === 0x81) return 2; + if (buf[offset] === 0x82) return 3; + if (buf[offset] === 0x83) return 4; + throw new Error('Length too long (> 4 bytes)'); +}; + +export const decodeLen = (buf: Uint8Array, offset: number): number => { + const lenBytes = decodeLenBytes(buf, offset); + if (lenBytes === 1) return buf[offset]; + else if (lenBytes === 2) return buf[offset + 1]; + else if (lenBytes === 3) return (buf[offset + 1] << 8) + buf[offset + 2]; + else if (lenBytes === 4) + return (buf[offset + 1] << 16) + (buf[offset + 2] << 8) + buf[offset + 3]; + throw new Error('Length too long (> 4 bytes)'); +}; + +/** + * A DER encoded `SEQUENCE(OID)` for DER-encoded-COSE + */ +export const DER_COSE_OID = Uint8Array.from([ + ...[0x30, 0x0c], // SEQUENCE + ...[0x06, 0x0a], // OID with 10 bytes + ...[0x2b, 0x06, 0x01, 0x04, 0x01, 0x83, 0xb8, 0x43, 0x01, 0x01], // DER encoded COSE +]); + +/** + * A DER encoded `SEQUENCE(OID)` for the Ed25519 algorithm + */ +export const ED25519_OID = Uint8Array.from([ + ...[0x30, 0x05], // SEQUENCE + ...[0x06, 0x03], // OID with 3 bytes + ...[0x2b, 0x65, 0x70], // id-Ed25519 OID +]); + +/** + * A DER encoded `SEQUENCE(OID)` for secp256k1 with the ECDSA algorithm + */ +export const SECP256K1_OID = Uint8Array.from([ + ...[0x30, 0x10], // SEQUENCE + ...[0x06, 0x07], // OID with 7 bytes + ...[0x2a, 0x86, 0x48, 0xce, 0x3d, 0x02, 0x01], // OID ECDSA + ...[0x06, 0x05], // OID with 5 bytes + ...[0x2b, 0x81, 0x04, 0x00, 0x0a], // OID secp256k1 +]); + +/** + * Wraps the given `payload` in a DER encoding tagged with the given encoded `oid` like so: + * `SEQUENCE(oid, BITSTRING(payload))` + * + * @param payload The payload to encode as the bit string + * @param oid The DER encoded (and SEQUENCE wrapped!) OID to tag the payload with + */ +export function wrapDER(payload: ArrayBuffer, oid: Uint8Array): Uint8Array { + // The Bit String header needs to include the unused bit count byte in its length + const bitStringHeaderLength = 2 + encodeLenBytes(payload.byteLength + 1); + const len = oid.byteLength + bitStringHeaderLength + payload.byteLength; + let offset = 0; + const buf = new Uint8Array(1 + encodeLenBytes(len) + len); + // Sequence + buf[offset++] = 0x30; + // Sequence Length + offset += encodeLen(buf, offset, len); + + // OID + buf.set(oid, offset); + offset += oid.byteLength; + + // Bit String Header + buf[offset++] = 0x03; + offset += encodeLen(buf, offset, payload.byteLength + 1); + // 0 padding + buf[offset++] = 0x00; + buf.set(new Uint8Array(payload), offset); + + return buf; +} + +/** + * Extracts a payload from the given `derEncoded` data, and checks that it was tagged with the given `oid`. + * + * `derEncoded = SEQUENCE(oid, BITSTRING(payload))` + * + * @param derEncoded The DER encoded and tagged data + * @param oid The DER encoded (and SEQUENCE wrapped!) expected OID + * @returns The unwrapped payload + */ +export const unwrapDER = (derEncoded: ArrayBuffer, oid: Uint8Array): Uint8Array => { + let offset = 0; + const expect = (n: number, msg: string) => { + if (buf[offset++] !== n) { + throw new Error('Expected: ' + msg); + } + }; + + const buf = new Uint8Array(derEncoded); + expect(0x30, 'sequence'); + offset += decodeLenBytes(buf, offset); + + if (!bufEquals(buf.slice(offset, offset + oid.byteLength), oid)) { + throw new Error('Not the expected OID.'); + } + offset += oid.byteLength; + + expect(0x03, 'bit string'); + const payloadLen = decodeLen(buf, offset) - 1; // Subtracting 1 to account for the 0 padding + offset += decodeLenBytes(buf, offset); + expect(0x00, '0 padding'); + const result = buf.slice(offset); + if (payloadLen !== result.length) { + throw new Error( + `DER payload mismatch: Expected length ${payloadLen} actual length ${result.length}`, + ); + } + return result; +}; diff --git a/packages/identity/src/identity/hdkey.ts b/packages/secp256k1/src/hdkey.ts similarity index 100% rename from packages/identity/src/identity/hdkey.ts rename to packages/secp256k1/src/hdkey.ts diff --git a/packages/secp256k1/src/secp256k1.ts b/packages/secp256k1/src/secp256k1.ts index efa6e7083..ecf41e69d 100644 --- a/packages/secp256k1/src/secp256k1.ts +++ b/packages/secp256k1/src/secp256k1.ts @@ -6,7 +6,7 @@ import { randomBytes } from 'tweetnacl'; import hdkey from './hdkey'; import { mnemonicToSeedSync } from 'bip39'; import { PublicKey, SignIdentity } from '@dfinity/agent'; -import { fromHexString, toHexString } from '../buffer'; +import { fromHexString, toHexString } from './buffer'; import { SECP256K1_OID, unwrapDER, wrapDER } from './der'; declare type PublicKeyHex = string; diff --git a/packages/secp256k1/test-setup.ts b/packages/secp256k1/test-setup.ts new file mode 100644 index 000000000..c993e8a5c --- /dev/null +++ b/packages/secp256k1/test-setup.ts @@ -0,0 +1,11 @@ +// This file may be used to polyfill features that aren't available in the test +// environment, i.e. JSDom. +// +// We sometimes need to do this because our target browsers are expected to have +// a feature that JSDom doesn't. +// +// Note that we can use webpack configuration to make some features available to +// Node.js in a similar way. + +global.crypto = require('@trust/webcrypto'); +global.fetch = require('isomorphic-fetch'); diff --git a/packages/secp256k1/tsconfig-cjs.json b/packages/secp256k1/tsconfig-cjs.json new file mode 100644 index 000000000..524a27af4 --- /dev/null +++ b/packages/secp256k1/tsconfig-cjs.json @@ -0,0 +1,7 @@ +{ + "extends": "./tsconfig.json", + "compilerOptions": { + "module": "CommonJS", + "outDir": "lib/cjs" + } +} diff --git a/packages/secp256k1/tsconfig.json b/packages/secp256k1/tsconfig.json new file mode 100644 index 000000000..bc91e21f1 --- /dev/null +++ b/packages/secp256k1/tsconfig.json @@ -0,0 +1,26 @@ +{ + "extends": "../../tsconfig.json", + "compilerOptions": { + "baseUrl": "./", + "composite": true, + "declaration": true, + "esModuleInterop": true, + "forceConsistentCasingInFileNames": true, + "incremental": true, + "lib": ["dom", "es2017"], + "module": "ES2020", + "moduleResolution": "node", + "outDir": "lib/esm", + "paths": { + "@dfinity/secp256k1": ["src"] + }, + "resolveJsonModule": true, + "rootDir": "./src", + "sourceMap": true, + "inlineSources": true, + "strict": true, + "target": "es2017", + "tsBuildInfoFile": "./build_info.json" + }, + "include": ["src/**/*.ts"] +} From 3dfe86b61375dcc49dad30fb38316da9d673550e Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Wed, 7 Dec 2022 16:49:59 -0800 Subject: [PATCH 04/15] removing packages --- package-lock.json | 477 +++++++++++++++++++++++----- packages/identity/package.json | 14 +- packages/secp256k1/.gitignore | 3 + packages/secp256k1/package.json | 2 + packages/secp256k1/src/index.ts | 1 + packages/secp256k1/tsconfig.json | 2 +- packages/secp256k1/types/hdkey.d.ts | 1 + 7 files changed, 412 insertions(+), 88 deletions(-) create mode 100644 packages/secp256k1/.gitignore create mode 100644 packages/secp256k1/src/index.ts create mode 100644 packages/secp256k1/types/hdkey.d.ts diff --git a/package-lock.json b/package-lock.json index d6a05f8d3..18ed30502 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1943,6 +1943,10 @@ "resolved": "packages/principal", "link": true }, + "node_modules/@dfinity/secp256k1": { + "resolved": "packages/secp256k1", + "link": true + }, "node_modules/@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -5390,15 +5394,6 @@ "@types/node": "*" } }, - "node_modules/@types/bs58check": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", - "integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -5478,15 +5473,6 @@ "@types/node": "*" } }, - "node_modules/@types/hdkey": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/hdkey/-/hdkey-2.0.1.tgz", - "integrity": "sha512-4s6jhP0BT3sWBaRo0BfA3BpFllQvuRlXUzIqnuvSNmPhmMCZYjhrDe31nJb8kJLc0ZVdqj9Ep9eH2RGBNCK9Sw==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -5600,15 +5586,6 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, - "node_modules/@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -7077,6 +7054,94 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, + "node_modules/browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "dependencies": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "node_modules/browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "dependencies": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "node_modules/browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "dependencies": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "node_modules/browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "dependencies": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + } + }, + "node_modules/browserify-rsa/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "dependencies": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + } + }, + "node_modules/browserify-sign/node_modules/bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "node_modules/browserify-sign/node_modules/safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "funding": [ + { + "type": "github", + "url": "https://github.com/sponsors/feross" + }, + { + "type": "patreon", + "url": "https://www.patreon.com/feross" + }, + { + "type": "consulting", + "url": "https://feross.org/support" + } + ] + }, "node_modules/browserslist": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", @@ -7179,6 +7244,11 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "node_modules/buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -7956,6 +8026,15 @@ "node": ">=10" } }, + "node_modules/create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "dependencies": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -8014,6 +8093,27 @@ "node": "*" } }, + "node_modules/crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "dependencies": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + }, + "engines": { + "node": "*" + } + }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -8627,6 +8727,15 @@ "node": ">= 0.8" } }, + "node_modules/des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "dependencies": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -8678,6 +8787,16 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, + "node_modules/diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "dependencies": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -9973,6 +10092,15 @@ "node": ">=0.8.x" } }, + "node_modules/evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "dependencies": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -14292,6 +14420,18 @@ "node": ">=8.6" } }, + "node_modules/miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "dependencies": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + }, + "bin": { + "miller-rabin": "bin/miller-rabin" + } + }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -15131,6 +15271,18 @@ "node": ">=6" } }, + "node_modules/parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "dependencies": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -16153,6 +16305,19 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, + "node_modules/public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "dependencies": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -16229,6 +16394,15 @@ "safe-buffer": "^5.1.0" } }, + "node_modules/randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "dependencies": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -19820,21 +19994,12 @@ "version": "0.14.1", "license": "Apache-2.0", "dependencies": { - "@peculiar/webcrypto": "^1.4.0", - "bip39": "^3.0.4", "borc": "^2.1.1", - "bs58check": "^2.1.2", "js-sha256": "^0.9.0", - "secp256k1": "^4.0.2", - "stream": "^0.0.2", - "ts-node": "^10.8.2", "tweetnacl": "^1.0.1" }, "devDependencies": { - "@types/bs58check": "^2.1.0", - "@types/hdkey": "^2.0.1", "@types/jest": "^28.1.4", - "@types/secp256k1": "^4.0.3", "@types/webappsec-credential-management": "^0.6.2", "@typescript-eslint/eslint-plugin": "^5.30.5", "@typescript-eslint/parser": "^5.30.5", @@ -19853,7 +20018,8 @@ }, "peerDependencies": { "@dfinity/agent": "^0.14.1", - "@dfinity/principal": "^0.14.1" + "@dfinity/principal": "^0.14.1", + "@peculiar/webcrypto": "^1.4.0" } }, "packages/identity-ledgerhq": { @@ -20050,12 +20216,14 @@ "dev": true }, "packages/secp256k1": { + "name": "@dfinity/secp256k1", "version": "0.14.1", - "deprecated": "This package has been deprecated. isDelegationValid has been migrated to @dfinity/identity", "license": "Apache-2.0", "dependencies": { - "@dfinity/identity": "^0.14.1", + "@dfinity/agent": "^0.14.1", "bip39": "^3.0.4", + "bs58check": "^2.1.2", + "crypto-browserify": "^3.12.0", "hdkey": "^2.0.1" } } @@ -21564,8 +21732,10 @@ "@dfinity/authentication": { "version": "file:packages/secp256k1", "requires": { - "@dfinity/identity": "^0.14.1", + "@dfinity/agent": "^0.14.1", "bip39": "^3.0.4", + "bs58check": "^2.1.2", + "crypto-browserify": "^3.12.0", "hdkey": "^2.0.1" } }, @@ -21665,29 +21835,20 @@ "@dfinity/identity": { "version": "file:packages/identity", "requires": { - "@peculiar/webcrypto": "^1.4.0", - "@types/bs58check": "^2.1.0", - "@types/hdkey": "^2.0.1", "@types/jest": "^28.1.4", - "@types/secp256k1": "^4.0.3", "@types/webappsec-credential-management": "^0.6.2", "@typescript-eslint/eslint-plugin": "^5.30.5", "@typescript-eslint/parser": "^5.30.5", - "bip39": "^3.0.4", "borc": "^2.1.1", - "bs58check": "^2.1.2", "esbuild": "^0.15.16", "eslint": "^8.19.0", "eslint-plugin-jsdoc": "^39.3.3", "idb-keyval": "^6.2.0", "jest": "^28.1.2", "js-sha256": "^0.9.0", - "secp256k1": "^4.0.2", "size-limit": "^8.1.0", - "stream": "^0.0.2", "text-encoding": "^0.7.0", "ts-jest": "^28.0.5", - "ts-node": "^10.8.2", "tslint": "^5.20.1", "tweetnacl": "^1.0.1", "typedoc": "^0.22.11", @@ -21842,6 +22003,16 @@ } } }, + "@dfinity/secp256k1": { + "version": "file:packages/secp256k1", + "requires": { + "@dfinity/agent": "^0.14.1", + "bip39": "^3.0.4", + "bs58check": "^2.1.2", + "crypto-browserify": "^3.12.0", + "hdkey": "^2.0.1" + } + }, "@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", @@ -24312,15 +24483,6 @@ "@types/node": "*" } }, - "@types/bs58check": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", - "integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -24399,15 +24561,6 @@ "@types/node": "*" } }, - "@types/hdkey": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/@types/hdkey/-/hdkey-2.0.1.tgz", - "integrity": "sha512-4s6jhP0BT3sWBaRo0BfA3BpFllQvuRlXUzIqnuvSNmPhmMCZYjhrDe31nJb8kJLc0ZVdqj9Ep9eH2RGBNCK9Sw==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/html-minifier-terser": { "version": "6.1.0", "resolved": "https://registry.npmjs.org/@types/html-minifier-terser/-/html-minifier-terser-6.1.0.tgz", @@ -24521,15 +24674,6 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, - "@types/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -25664,6 +25808,84 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, + "browserify-aes": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", + "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", + "requires": { + "buffer-xor": "^1.0.3", + "cipher-base": "^1.0.0", + "create-hash": "^1.1.0", + "evp_bytestokey": "^1.0.3", + "inherits": "^2.0.1", + "safe-buffer": "^5.0.1" + } + }, + "browserify-cipher": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", + "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", + "requires": { + "browserify-aes": "^1.0.4", + "browserify-des": "^1.0.0", + "evp_bytestokey": "^1.0.0" + } + }, + "browserify-des": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", + "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", + "requires": { + "cipher-base": "^1.0.1", + "des.js": "^1.0.0", + "inherits": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, + "browserify-rsa": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", + "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", + "requires": { + "bn.js": "^5.0.0", + "randombytes": "^2.0.1" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + } + } + }, + "browserify-sign": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", + "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", + "requires": { + "bn.js": "^5.1.1", + "browserify-rsa": "^4.0.1", + "create-hash": "^1.2.0", + "create-hmac": "^1.1.7", + "elliptic": "^6.5.3", + "inherits": "^2.0.4", + "parse-asn1": "^5.1.5", + "readable-stream": "^3.6.0", + "safe-buffer": "^5.2.0" + }, + "dependencies": { + "bn.js": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", + "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" + } + } + }, "browserslist": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", @@ -25730,6 +25952,11 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, + "buffer-xor": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", + "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" + }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -26314,6 +26541,15 @@ "yaml": "^1.10.0" } }, + "create-ecdh": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", + "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", + "requires": { + "bn.js": "^4.1.0", + "elliptic": "^6.5.3" + } + }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -26366,6 +26602,24 @@ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true }, + "crypto-browserify": { + "version": "3.12.0", + "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", + "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", + "requires": { + "browserify-cipher": "^1.0.0", + "browserify-sign": "^4.0.0", + "create-ecdh": "^4.0.0", + "create-hash": "^1.1.0", + "create-hmac": "^1.1.0", + "diffie-hellman": "^5.0.0", + "inherits": "^2.0.1", + "pbkdf2": "^3.0.3", + "public-encrypt": "^4.0.0", + "randombytes": "^2.0.0", + "randomfill": "^1.0.3" + } + }, "css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -26822,6 +27076,15 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, + "des.js": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", + "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "requires": { + "inherits": "^2.0.1", + "minimalistic-assert": "^1.0.0" + } + }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -26854,6 +27117,16 @@ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", "dev": true }, + "diffie-hellman": { + "version": "5.0.3", + "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", + "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", + "requires": { + "bn.js": "^4.1.0", + "miller-rabin": "^4.0.0", + "randombytes": "^2.0.0" + } + }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -27733,6 +28006,15 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, + "evp_bytestokey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", + "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "requires": { + "md5.js": "^1.3.4", + "safe-buffer": "^5.1.1" + } + }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -30915,6 +31197,15 @@ "picomatch": "^2.3.1" } }, + "miller-rabin": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", + "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "requires": { + "bn.js": "^4.0.0", + "brorand": "^1.0.1" + } + }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -31555,6 +31846,18 @@ "callsites": "^3.0.0" } }, + "parse-asn1": { + "version": "5.1.6", + "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", + "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "requires": { + "asn1.js": "^5.2.0", + "browserify-aes": "^1.0.0", + "evp_bytestokey": "^1.0.0", + "pbkdf2": "^3.0.3", + "safe-buffer": "^5.1.1" + } + }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -32316,6 +32619,19 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, + "public-encrypt": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", + "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "requires": { + "bn.js": "^4.1.0", + "browserify-rsa": "^4.0.0", + "create-hash": "^1.1.0", + "parse-asn1": "^5.0.0", + "randombytes": "^2.0.1", + "safe-buffer": "^5.1.2" + } + }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -32369,6 +32685,15 @@ "safe-buffer": "^5.1.0" } }, + "randomfill": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", + "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "requires": { + "randombytes": "^2.0.5", + "safe-buffer": "^5.1.0" + } + }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", diff --git a/packages/identity/package.json b/packages/identity/package.json index 8fbbac539..272a82d1c 100644 --- a/packages/identity/package.json +++ b/packages/identity/package.json @@ -4,7 +4,7 @@ "author": "DFINITY Stiftung ", "license": "Apache-2.0", "description": "JavaScript and TypeScript library to manage identity with the Internet Computer", - "homepage": "https://smartcontracts.org", + "homepage": "https://internetcomputer.org", "repository": { "type": "git", "url": "https://github.com/dfinity/agent-js.git", @@ -47,24 +47,16 @@ }, "peerDependencies": { "@dfinity/agent": "^0.14.1", - "@dfinity/principal": "^0.14.1" + "@dfinity/principal": "^0.14.1", + "@peculiar/webcrypto": "^1.4.0" }, "dependencies": { - "@peculiar/webcrypto": "^1.4.0", - "bip39": "^3.0.4", "borc": "^2.1.1", - "bs58check": "^2.1.2", "js-sha256": "^0.9.0", - "secp256k1": "^4.0.2", - "stream": "^0.0.2", - "ts-node": "^10.8.2", "tweetnacl": "^1.0.1" }, "devDependencies": { - "@types/bs58check": "^2.1.0", - "@types/hdkey": "^2.0.1", "@types/jest": "^28.1.4", - "@types/secp256k1": "^4.0.3", "@types/webappsec-credential-management": "^0.6.2", "@typescript-eslint/eslint-plugin": "^5.30.5", "@typescript-eslint/parser": "^5.30.5", diff --git a/packages/secp256k1/.gitignore b/packages/secp256k1/.gitignore new file mode 100644 index 000000000..ae40e41e6 --- /dev/null +++ b/packages/secp256k1/.gitignore @@ -0,0 +1,3 @@ +lib +dist + diff --git a/packages/secp256k1/package.json b/packages/secp256k1/package.json index dbf93de8e..174b8a164 100644 --- a/packages/secp256k1/package.json +++ b/packages/secp256k1/package.json @@ -16,6 +16,8 @@ "dependencies": { "@dfinity/agent": "^0.14.1", "bip39": "^3.0.4", + "bs58check": "^2.1.2", + "crypto-browserify": "^3.12.0", "hdkey": "^2.0.1" } } diff --git a/packages/secp256k1/src/index.ts b/packages/secp256k1/src/index.ts new file mode 100644 index 000000000..4b54be3ca --- /dev/null +++ b/packages/secp256k1/src/index.ts @@ -0,0 +1 @@ +export * from './secp256k1'; diff --git a/packages/secp256k1/tsconfig.json b/packages/secp256k1/tsconfig.json index bc91e21f1..6618b9299 100644 --- a/packages/secp256k1/tsconfig.json +++ b/packages/secp256k1/tsconfig.json @@ -22,5 +22,5 @@ "target": "es2017", "tsBuildInfoFile": "./build_info.json" }, - "include": ["src/**/*.ts"] + "include": ["src/**/*.ts", "types/*"] } diff --git a/packages/secp256k1/types/hdkey.d.ts b/packages/secp256k1/types/hdkey.d.ts new file mode 100644 index 000000000..09c83b135 --- /dev/null +++ b/packages/secp256k1/types/hdkey.d.ts @@ -0,0 +1 @@ +declare module 'crypto-browserify'; From f3977c85b1fa2eac5a19442b0062a80c61357226 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Wed, 7 Dec 2022 16:56:57 -0800 Subject: [PATCH 05/15] types --- package-lock.json | 44 +++++++++++++++++++++++++++++++++ packages/secp256k1/package.json | 4 +++ 2 files changed, 48 insertions(+) diff --git a/package-lock.json b/package-lock.json index 18ed30502..93454becb 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5394,6 +5394,15 @@ "@types/node": "*" } }, + "node_modules/@types/bs58check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", + "integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -5586,6 +5595,15 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "node_modules/@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dev": true, + "dependencies": { + "@types/node": "*" + } + }, "node_modules/@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", @@ -20225,6 +20243,10 @@ "bs58check": "^2.1.2", "crypto-browserify": "^3.12.0", "hdkey": "^2.0.1" + }, + "devDependencies": { + "@types/bs58check": "^2.1.0", + "@types/secp256k1": "^4.0.3" } } }, @@ -21733,6 +21755,8 @@ "version": "file:packages/secp256k1", "requires": { "@dfinity/agent": "^0.14.1", + "@types/bs58check": "*", + "@types/secp256k1": "^4.0.3", "bip39": "^3.0.4", "bs58check": "^2.1.2", "crypto-browserify": "^3.12.0", @@ -22007,6 +22031,8 @@ "version": "file:packages/secp256k1", "requires": { "@dfinity/agent": "^0.14.1", + "@types/bs58check": "*", + "@types/secp256k1": "^4.0.3", "bip39": "^3.0.4", "bs58check": "^2.1.2", "crypto-browserify": "^3.12.0", @@ -24483,6 +24509,15 @@ "@types/node": "*" } }, + "@types/bs58check": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@types/bs58check/-/bs58check-2.1.0.tgz", + "integrity": "sha512-OxsysnJQh82vy9DRbOcw9m2j/WiyqZLn0YBhKxdQ+aCwoHj+tWzyCgpwAkr79IfDXZKxc6h7k89T9pwS78CqTQ==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/connect": { "version": "3.4.35", "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", @@ -24674,6 +24709,15 @@ "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==" }, + "@types/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-Da66lEIFeIz9ltsdMZcpQvmrmmoqrfju8pm1BH8WbYjZSwUgCwXLb9C+9XYogwBITnbsSaMdVPb2ekf7TV+03w==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/serve-index": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", diff --git a/packages/secp256k1/package.json b/packages/secp256k1/package.json index 174b8a164..baf1a1a88 100644 --- a/packages/secp256k1/package.json +++ b/packages/secp256k1/package.json @@ -19,5 +19,9 @@ "bs58check": "^2.1.2", "crypto-browserify": "^3.12.0", "hdkey": "^2.0.1" + }, + "devDependencies": { + "@types/bs58check": "^2.1.0", + "@types/secp256k1": "^4.0.3" } } From 8a0714d2bb9ac166946b4a21e4de370620b229b3 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 11:08:27 -0800 Subject: [PATCH 06/15] removes browserify, changes test import --- e2e/node/basic/identity.test.ts | 2 +- package-lock.json | 452 +------------------------------ packages/secp256k1/package.json | 4 +- packages/secp256k1/src/hdkey.ts | 4 +- packages/secp256k1/tsconfig.json | 2 +- 5 files changed, 13 insertions(+), 451 deletions(-) diff --git a/e2e/node/basic/identity.test.ts b/e2e/node/basic/identity.test.ts index e549ec52a..ba94da909 100644 --- a/e2e/node/basic/identity.test.ts +++ b/e2e/node/basic/identity.test.ts @@ -9,9 +9,9 @@ import { DelegationChain, DelegationIdentity, Ed25519KeyIdentity, - Secp256k1KeyIdentity, ECDSAKeyIdentity, } from '@dfinity/identity'; +import { Secp256k1KeyIdentity } from '@dfinity/secp256k1'; import agent from '../utils/agent'; import identityCanister from '../canisters/identity'; diff --git a/package-lock.json b/package-lock.json index 93454becb..5a0710f14 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7072,94 +7072,6 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-rsa/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ] - }, "node_modules/browserslist": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", @@ -7262,11 +7174,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, "node_modules/builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -8044,15 +7951,6 @@ "node": ">=10" } }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, "node_modules/create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -8111,27 +8009,6 @@ "node": "*" } }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, "node_modules/css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -8745,15 +8622,6 @@ "node": ">= 0.8" } }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "node_modules/destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -8805,16 +8673,6 @@ "node": "^10.13.0 || ^12.13.0 || ^14.15.0 || >=15.0.0" } }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, "node_modules/dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -10110,15 +9968,6 @@ "node": ">=0.8.x" } }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "node_modules/execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -11113,16 +10962,6 @@ "minimalistic-assert": "^1.0.1" } }, - "node_modules/hdkey": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.0.1.tgz", - "integrity": "sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA==", - "dependencies": { - "bs58check": "^2.1.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - } - }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -14438,18 +14277,6 @@ "node": ">=8.6" } }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, "node_modules/mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -14718,11 +14545,6 @@ "tslib": "^2.0.3" } }, - "node_modules/node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -14777,6 +14599,7 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "dev": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -15289,18 +15112,6 @@ "node": ">=6" } }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "node_modules/parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -16323,19 +16134,6 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "node_modules/pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -16412,15 +16210,6 @@ "safe-buffer": "^5.1.0" } }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "node_modules/range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -16971,20 +16760,6 @@ "url": "https://opencollective.com/webpack" } }, - "node_modules/secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "hasInstallScript": true, - "dependencies": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - }, - "engines": { - "node": ">=10.0.0" - } - }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -20240,9 +20015,7 @@ "dependencies": { "@dfinity/agent": "^0.14.1", "bip39": "^3.0.4", - "bs58check": "^2.1.2", - "crypto-browserify": "^3.12.0", - "hdkey": "^2.0.1" + "bs58check": "^2.1.2" }, "devDependencies": { "@types/bs58check": "^2.1.0", @@ -21755,12 +21528,10 @@ "version": "file:packages/secp256k1", "requires": { "@dfinity/agent": "^0.14.1", - "@types/bs58check": "*", + "@types/bs58check": "^2.1.0", "@types/secp256k1": "^4.0.3", "bip39": "^3.0.4", - "bs58check": "^2.1.2", - "crypto-browserify": "^3.12.0", - "hdkey": "^2.0.1" + "bs58check": "^2.1.2" } }, "@dfinity/bls-verify": { @@ -22031,12 +21802,10 @@ "version": "file:packages/secp256k1", "requires": { "@dfinity/agent": "^0.14.1", - "@types/bs58check": "*", + "@types/bs58check": "^2.1.0", "@types/secp256k1": "^4.0.3", "bip39": "^3.0.4", - "bs58check": "^2.1.2", - "crypto-browserify": "^3.12.0", - "hdkey": "^2.0.1" + "bs58check": "^2.1.2" } }, "@discoveryjs/json-ext": { @@ -25852,84 +25621,6 @@ "integrity": "sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==", "dev": true }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - } - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "bn.js": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.2.1.tgz", - "integrity": "sha512-eXRvHzWyYPBuB4NBy0cmYQjGitUrtqwbvlzP3G6VFnNRbsZQIxQ10PbKKHt8gZ/HW/D/747aDl+QkDqg3KQLMQ==" - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==" - } - } - }, "browserslist": { "version": "4.21.3", "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.3.tgz", @@ -25996,11 +25687,6 @@ "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.2.tgz", "integrity": "sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==" }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha512-571s0T7nZWK6vB67HI5dyUF7wXiNcfaPPPTl6zYCNApANjIvYJTg7hlud/+cJpdAhS7dVzqMLmfhfHR3rAcOjQ==" - }, "builtin-modules": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", @@ -26585,15 +26271,6 @@ "yaml": "^1.10.0" } }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, "create-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", @@ -26646,24 +26323,6 @@ "integrity": "sha512-mCxBlsHFYh9C+HVpiEacem8FEBnMXgU9gy4zmNC+SXAZNB/1idgp/aulFJ4FgCi7GPEVbfyng092GqL2k2rmow==", "dev": true }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, "css-select": { "version": "4.3.0", "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", @@ -27120,15 +26779,6 @@ "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==" }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, "destroy": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", @@ -27161,16 +26811,6 @@ "integrity": "sha512-k1gCAXAsNgLwEL+Y8Wvl+M6oEFj5bgazfZULpS5CneoPPXRaCCW7dm+q21Ky2VEE5X+VeRDBVg1Pcvvsr4TtNQ==", "dev": true }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, "dir-glob": { "version": "3.0.1", "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", @@ -28050,15 +27690,6 @@ "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==" }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, "execa": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", @@ -28812,16 +28443,6 @@ "minimalistic-assert": "^1.0.1" } }, - "hdkey": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/hdkey/-/hdkey-2.0.1.tgz", - "integrity": "sha512-c+tl9PHG9/XkGgG0tD7CJpRVaE0jfZizDNmnErUAKQ4EjQSOcOUcV3EN9ZEZS8pZ4usaeiiK0H7stzuzna8feA==", - "requires": { - "bs58check": "^2.1.2", - "safe-buffer": "^5.1.1", - "secp256k1": "^4.0.0" - } - }, "he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -31241,15 +30862,6 @@ "picomatch": "^2.3.1" } }, - "miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - } - }, "mime": { "version": "1.6.0", "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", @@ -31463,11 +31075,6 @@ "tslib": "^2.0.3" } }, - "node-addon-api": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", - "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" - }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -31509,7 +31116,8 @@ "node-gyp-build": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", + "dev": true }, "node-gyp-build-optional-packages": { "version": "5.0.3", @@ -31890,18 +31498,6 @@ "callsites": "^3.0.0" } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, "parse-json": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", @@ -32663,19 +32259,6 @@ "integrity": "sha512-E/ZsdU4HLs/68gYzgGTkMicWTLPdAftJLfJFlLUAAKZGkStNU72sZjT66SnMDVOfOWY/YAoiD7Jxa9iHvngcag==", "dev": true }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, "pump": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", @@ -32729,15 +32312,6 @@ "safe-buffer": "^5.1.0" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, "range-parser": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", @@ -33153,16 +32727,6 @@ "ajv-keywords": "^3.5.2" } }, - "secp256k1": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", - "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", - "requires": { - "elliptic": "^6.5.4", - "node-addon-api": "^2.0.0", - "node-gyp-build": "^4.2.0" - } - }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", diff --git a/packages/secp256k1/package.json b/packages/secp256k1/package.json index baf1a1a88..35e0ce67a 100644 --- a/packages/secp256k1/package.json +++ b/packages/secp256k1/package.json @@ -16,9 +16,7 @@ "dependencies": { "@dfinity/agent": "^0.14.1", "bip39": "^3.0.4", - "bs58check": "^2.1.2", - "crypto-browserify": "^3.12.0", - "hdkey": "^2.0.1" + "bs58check": "^2.1.2" }, "devDependencies": { "@types/bs58check": "^2.1.0", diff --git a/packages/secp256k1/src/hdkey.ts b/packages/secp256k1/src/hdkey.ts index 8cc432953..cb533393d 100644 --- a/packages/secp256k1/src/hdkey.ts +++ b/packages/secp256k1/src/hdkey.ts @@ -1,12 +1,12 @@ /* eslint-disable @typescript-eslint/ban-ts-comment */ -// Package adapted from https://www.npmjs.com/package/hdkey to run in the browser +// Package adapted from https://www.npmjs.com/package/hdkey /* eslint-disable @typescript-eslint/no-explicit-any */ /* eslint-disable @typescript-eslint/no-this-alias */ import assert from 'assert'; import { Buffer } from 'buffer'; import bs58check from 'bs58check'; import secp256k1 from 'secp256k1'; -import { createHmac, createHash, randomBytes } from 'crypto-browserify'; +import { createHmac, createHash, randomBytes } from 'crypto'; const MASTER_SECRET = Buffer.from('Bitcoin seed', 'utf8'); const HARDENED_OFFSET = 0x80000000; diff --git a/packages/secp256k1/tsconfig.json b/packages/secp256k1/tsconfig.json index 6618b9299..ba909aef5 100644 --- a/packages/secp256k1/tsconfig.json +++ b/packages/secp256k1/tsconfig.json @@ -7,7 +7,7 @@ "esModuleInterop": true, "forceConsistentCasingInFileNames": true, "incremental": true, - "lib": ["dom", "es2017"], + "lib": ["es2020"], "module": "ES2020", "moduleResolution": "node", "outDir": "lib/esm", From bd4b5076ee34654c2311ad1a7802e4ae7133076c Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 11:21:25 -0800 Subject: [PATCH 07/15] improved Readme --- packages/secp256k1/README.md | 47 +++++++++++++++++++++++++++--------- 1 file changed, 35 insertions(+), 12 deletions(-) diff --git a/packages/secp256k1/README.md b/packages/secp256k1/README.md index c10c74ba5..b5af918da 100644 --- a/packages/secp256k1/README.md +++ b/packages/secp256k1/README.md @@ -1,26 +1,49 @@ # @dfinity/secp256k1 -JavaScript and TypeScript library to support manage Secp256k1 Identities and import from seed phrases for applications on the [Internet Computer](https://dfinity.org/) +The Secp256k1KeyIdentity package provides an implementation of the SignIdentity interface for the secp256k1 elliptic curve. It allows you to create and manage key pairs for signing and verification of messages. -Visit the [Dfinity Forum](https://forum.dfinity.org/) and [SDK Documentation](https://sdk.dfinity.org/docs/index.html) for more information and support building on the Internet Computer. +Example +Here's an example of how to use the Secp256k1KeyIdentity class to generate a new key pair and sign and verify a message: -Additional API Documentation can be found [here](https://agent-js.icp.xyz/secp256k1/index.html). +```ts +import { Secp256k1KeyIdentity } from '@dfinity/secp256k1'; ---- +// Generate a new key pair +const identity = Secp256k1KeyIdentity.generate(); -## Installation +// Sign a message +const message = 'Hello, world!'; +const signature = identity.sign(message); -``` -npm i --save @dfinity/secp256k1 +// Verify the signature +const isValid = identity.verify(message, signature); + +console.log(`Signature is ${isValid ? 'valid' : 'invalid'}`); ``` -### In the browser: +You can also use a seed to generate deterministic key pairs: -or using individual exports: +```ts +import { Secp256k1KeyIdentity } from '@dfinity/secp256k1'; +const seed = Buffer.from('my-secret-seed', 'utf8'); +const identity = Secp256k1KeyIdentity.generate(seed); ``` -import { Secp256k1PublicKey, Secp256k1KeyIdentity } from "@dfinity/authentication"; + +The Secp256k1KeyIdentity class also provides methods for converting the key pair to and from JSON-serializable objects: + +```ts +import { Secp256k1KeyIdentity } from '@dfinity/agent'; + +// Generate a new key pair +const identity = Secp256k1KeyIdentity.generate(); + +// Convert the key pair to a JSON-serializable object +const json = identity.toJson(); + +// Convert the JSON-serializable object back to a key pair +const restoredIdentity = Secp256k1KeyIdentity.fromJson(json); ``` -Note: depends on [@dfinity/agent](https://www.npmjs.com/package/@dfinity/agent) and -[@dfinity/identity](https://www.npmjs.com/package/@dfinity/identity). +References +The Secp256k1KeyIdentity class extends the SignIdentity interface from the @dfinity/agent package. For more information about the SignIdentity interface and how to use it, see the [@dfinity/agent documentation](https://agent-js.icp.xyz/agent/classes/SignIdentity.html) From 08c74182c4cd7b8f7290c153ecf963767b4f6e61 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 11:22:36 -0800 Subject: [PATCH 08/15] dependency --- package-lock.json | 47 ++++++++++++++++++++++++++++----- packages/secp256k1/package.json | 3 ++- 2 files changed, 43 insertions(+), 7 deletions(-) diff --git a/package-lock.json b/package-lock.json index 5a0710f14..a59fa94d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -14545,6 +14545,11 @@ "tslib": "^2.0.3" } }, + "node_modules/node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, "node_modules/node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -14599,7 +14604,6 @@ "version": "4.5.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "dev": true, "bin": { "node-gyp-build": "bin.js", "node-gyp-build-optional": "optional.js", @@ -16760,6 +16764,20 @@ "url": "https://opencollective.com/webpack" } }, + "node_modules/secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "hasInstallScript": true, + "dependencies": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + }, + "engines": { + "node": ">=10.0.0" + } + }, "node_modules/select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", @@ -20015,7 +20033,8 @@ "dependencies": { "@dfinity/agent": "^0.14.1", "bip39": "^3.0.4", - "bs58check": "^2.1.2" + "bs58check": "^2.1.2", + "secp256k1": "^4.0.3" }, "devDependencies": { "@types/bs58check": "^2.1.0", @@ -21531,7 +21550,8 @@ "@types/bs58check": "^2.1.0", "@types/secp256k1": "^4.0.3", "bip39": "^3.0.4", - "bs58check": "^2.1.2" + "bs58check": "^2.1.2", + "secp256k1": "*" } }, "@dfinity/bls-verify": { @@ -21805,7 +21825,8 @@ "@types/bs58check": "^2.1.0", "@types/secp256k1": "^4.0.3", "bip39": "^3.0.4", - "bs58check": "^2.1.2" + "bs58check": "^2.1.2", + "secp256k1": "*" } }, "@discoveryjs/json-ext": { @@ -31075,6 +31096,11 @@ "tslib": "^2.0.3" } }, + "node-addon-api": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-2.0.2.tgz", + "integrity": "sha512-Ntyt4AIXyaLIuMHF6IOoTakB3K+RWxwtsHNRxllEoA6vPwP9o4866g6YWDLUdnucilZhmkxiHwHr11gAENw+QA==" + }, "node-fetch": { "version": "2.6.7", "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.7.tgz", @@ -31116,8 +31142,7 @@ "node-gyp-build": { "version": "4.5.0", "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", - "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", - "dev": true + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==" }, "node-gyp-build-optional-packages": { "version": "5.0.3", @@ -32727,6 +32752,16 @@ "ajv-keywords": "^3.5.2" } }, + "secp256k1": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/secp256k1/-/secp256k1-4.0.3.tgz", + "integrity": "sha512-NLZVf+ROMxwtEj3Xa562qgv2BK5e2WNmXPiOdVIPLgs6lyTzMvBq0aWTYMI5XCP9jZMVKOcqZLw/Wc4vDkuxhA==", + "requires": { + "elliptic": "^6.5.4", + "node-addon-api": "^2.0.0", + "node-gyp-build": "^4.2.0" + } + }, "select-hose": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", diff --git a/packages/secp256k1/package.json b/packages/secp256k1/package.json index 35e0ce67a..05d9fb832 100644 --- a/packages/secp256k1/package.json +++ b/packages/secp256k1/package.json @@ -16,7 +16,8 @@ "dependencies": { "@dfinity/agent": "^0.14.1", "bip39": "^3.0.4", - "bs58check": "^2.1.2" + "bs58check": "^2.1.2", + "secp256k1": "^4.0.3" }, "devDependencies": { "@types/bs58check": "^2.1.0", From aab877a13b5e77fdb59e598e613c496df0b1e05b Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 11:29:31 -0800 Subject: [PATCH 09/15] platform node for bundle --- packages/secp256k1/package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/secp256k1/package.json b/packages/secp256k1/package.json index 05d9fb832..acd500330 100644 --- a/packages/secp256k1/package.json +++ b/packages/secp256k1/package.json @@ -9,7 +9,7 @@ "build": "tsc -b && tsc -p tsconfig-cjs.json", "eslint": "eslint --ext '.js,.jsx,.ts,.tsx'", "make:docs/reference": "typedoc src/index.ts --out ../../docs/generated/secp256k1 --excludeInternal", - "bundle": "esbuild --bundle src/index.ts --outfile=dist/index.js", + "bundle": "esbuild --bundle src/index.ts --outfile=dist/index.js --platform=node", "test": "jest", "test:coverage": "jest --verbose --collectCoverage" }, From d6a3dfb57c84b6f88357f7f27e9fbdf41cb579d1 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 11:52:41 -0800 Subject: [PATCH 10/15] disable secp size check until after package is on main for CI --- package.json | 5 ----- 1 file changed, 5 deletions(-) diff --git a/package.json b/package.json index 1849e9ac8..e3c56c5af 100644 --- a/package.json +++ b/package.json @@ -98,11 +98,6 @@ "name": "@dfinity/identity", "path": "./packages/identity/dist/index.js", "limit": "320 kB" - }, - { - "name": "@dfinity/secp256k1", - "path": "./packages/secp256k1/dist/index.js", - "limit": "320 kB" } ] } From 602c1681fec456476914795600a78a42d9242d34 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 14:28:36 -0800 Subject: [PATCH 11/15] renaming package for more clarity --- package.json | 2 +- packages/{secp256k1 => identity-secp256k1}/.gitignore | 0 packages/{secp256k1 => identity-secp256k1}/LICENSE | 0 packages/{secp256k1 => identity-secp256k1}/README.md | 2 +- .../{secp256k1 => identity-secp256k1}/jest.config.ts | 2 +- .../package-lock.json | 0 .../{secp256k1 => identity-secp256k1}/package.json | 2 +- .../src/__snapshots__/secp256k1.test.ts.snap | 0 .../{secp256k1 => identity-secp256k1}/src/buffer.ts | 0 .../{secp256k1 => identity-secp256k1}/src/der.test.ts | 0 packages/{secp256k1 => identity-secp256k1}/src/der.ts | 0 .../{secp256k1 => identity-secp256k1}/src/hdkey.ts | 0 .../{secp256k1 => identity-secp256k1}/src/index.ts | 0 .../src/secp256k1.test.ts | 0 .../src/secp256k1.ts | 0 .../{secp256k1 => identity-secp256k1}/test-setup.ts | 0 .../tsconfig-cjs.json | 0 .../{secp256k1 => identity-secp256k1}/tsconfig.json | 0 .../types/hdkey.d.ts | 0 packages/identity/src/index.ts | 11 +++++++++++ 20 files changed, 15 insertions(+), 4 deletions(-) rename packages/{secp256k1 => identity-secp256k1}/.gitignore (100%) rename packages/{secp256k1 => identity-secp256k1}/LICENSE (100%) rename packages/{secp256k1 => identity-secp256k1}/README.md (98%) rename packages/{secp256k1 => identity-secp256k1}/jest.config.ts (92%) rename packages/{secp256k1 => identity-secp256k1}/package-lock.json (100%) rename packages/{secp256k1 => identity-secp256k1}/package.json (95%) rename packages/{secp256k1 => identity-secp256k1}/src/__snapshots__/secp256k1.test.ts.snap (100%) rename packages/{secp256k1 => identity-secp256k1}/src/buffer.ts (100%) rename packages/{secp256k1 => identity-secp256k1}/src/der.test.ts (100%) rename packages/{secp256k1 => identity-secp256k1}/src/der.ts (100%) rename packages/{secp256k1 => identity-secp256k1}/src/hdkey.ts (100%) rename packages/{secp256k1 => identity-secp256k1}/src/index.ts (100%) rename packages/{secp256k1 => identity-secp256k1}/src/secp256k1.test.ts (100%) rename packages/{secp256k1 => identity-secp256k1}/src/secp256k1.ts (100%) rename packages/{secp256k1 => identity-secp256k1}/test-setup.ts (100%) rename packages/{secp256k1 => identity-secp256k1}/tsconfig-cjs.json (100%) rename packages/{secp256k1 => identity-secp256k1}/tsconfig.json (100%) rename packages/{secp256k1 => identity-secp256k1}/types/hdkey.d.ts (100%) diff --git a/package.json b/package.json index e3c56c5af..80c554e02 100644 --- a/package.json +++ b/package.json @@ -12,7 +12,7 @@ "packages/identity", "packages/auth-client", "packages/assets", - "packages/secp256k1", + "packages/identity-secp256k1", "e2e/node", "e2e/browser", "demos/ledgerhq", diff --git a/packages/secp256k1/.gitignore b/packages/identity-secp256k1/.gitignore similarity index 100% rename from packages/secp256k1/.gitignore rename to packages/identity-secp256k1/.gitignore diff --git a/packages/secp256k1/LICENSE b/packages/identity-secp256k1/LICENSE similarity index 100% rename from packages/secp256k1/LICENSE rename to packages/identity-secp256k1/LICENSE diff --git a/packages/secp256k1/README.md b/packages/identity-secp256k1/README.md similarity index 98% rename from packages/secp256k1/README.md rename to packages/identity-secp256k1/README.md index b5af918da..d6273199e 100644 --- a/packages/secp256k1/README.md +++ b/packages/identity-secp256k1/README.md @@ -1,4 +1,4 @@ -# @dfinity/secp256k1 +# @dfinity/identity-secp256k1 The Secp256k1KeyIdentity package provides an implementation of the SignIdentity interface for the secp256k1 elliptic curve. It allows you to create and manage key pairs for signing and verification of messages. diff --git a/packages/secp256k1/jest.config.ts b/packages/identity-secp256k1/jest.config.ts similarity index 92% rename from packages/secp256k1/jest.config.ts rename to packages/identity-secp256k1/jest.config.ts index abe142340..fa0a560a1 100644 --- a/packages/secp256k1/jest.config.ts +++ b/packages/identity-secp256k1/jest.config.ts @@ -1,5 +1,5 @@ import baseConfig from '../../jest.config.base'; -const packageName = 'secp256k1'; +const packageName = 'identity-secp256k1'; module.exports = { ...baseConfig, diff --git a/packages/secp256k1/package-lock.json b/packages/identity-secp256k1/package-lock.json similarity index 100% rename from packages/secp256k1/package-lock.json rename to packages/identity-secp256k1/package-lock.json diff --git a/packages/secp256k1/package.json b/packages/identity-secp256k1/package.json similarity index 95% rename from packages/secp256k1/package.json rename to packages/identity-secp256k1/package.json index acd500330..76689d08a 100644 --- a/packages/secp256k1/package.json +++ b/packages/identity-secp256k1/package.json @@ -1,5 +1,5 @@ { - "name": "@dfinity/secp256k1", + "name": "@dfinity/identity-secp256k1", "version": "0.14.1", "author": "DFINITY Stiftung ", "license": "Apache-2.0", diff --git a/packages/secp256k1/src/__snapshots__/secp256k1.test.ts.snap b/packages/identity-secp256k1/src/__snapshots__/secp256k1.test.ts.snap similarity index 100% rename from packages/secp256k1/src/__snapshots__/secp256k1.test.ts.snap rename to packages/identity-secp256k1/src/__snapshots__/secp256k1.test.ts.snap diff --git a/packages/secp256k1/src/buffer.ts b/packages/identity-secp256k1/src/buffer.ts similarity index 100% rename from packages/secp256k1/src/buffer.ts rename to packages/identity-secp256k1/src/buffer.ts diff --git a/packages/secp256k1/src/der.test.ts b/packages/identity-secp256k1/src/der.test.ts similarity index 100% rename from packages/secp256k1/src/der.test.ts rename to packages/identity-secp256k1/src/der.test.ts diff --git a/packages/secp256k1/src/der.ts b/packages/identity-secp256k1/src/der.ts similarity index 100% rename from packages/secp256k1/src/der.ts rename to packages/identity-secp256k1/src/der.ts diff --git a/packages/secp256k1/src/hdkey.ts b/packages/identity-secp256k1/src/hdkey.ts similarity index 100% rename from packages/secp256k1/src/hdkey.ts rename to packages/identity-secp256k1/src/hdkey.ts diff --git a/packages/secp256k1/src/index.ts b/packages/identity-secp256k1/src/index.ts similarity index 100% rename from packages/secp256k1/src/index.ts rename to packages/identity-secp256k1/src/index.ts diff --git a/packages/secp256k1/src/secp256k1.test.ts b/packages/identity-secp256k1/src/secp256k1.test.ts similarity index 100% rename from packages/secp256k1/src/secp256k1.test.ts rename to packages/identity-secp256k1/src/secp256k1.test.ts diff --git a/packages/secp256k1/src/secp256k1.ts b/packages/identity-secp256k1/src/secp256k1.ts similarity index 100% rename from packages/secp256k1/src/secp256k1.ts rename to packages/identity-secp256k1/src/secp256k1.ts diff --git a/packages/secp256k1/test-setup.ts b/packages/identity-secp256k1/test-setup.ts similarity index 100% rename from packages/secp256k1/test-setup.ts rename to packages/identity-secp256k1/test-setup.ts diff --git a/packages/secp256k1/tsconfig-cjs.json b/packages/identity-secp256k1/tsconfig-cjs.json similarity index 100% rename from packages/secp256k1/tsconfig-cjs.json rename to packages/identity-secp256k1/tsconfig-cjs.json diff --git a/packages/secp256k1/tsconfig.json b/packages/identity-secp256k1/tsconfig.json similarity index 100% rename from packages/secp256k1/tsconfig.json rename to packages/identity-secp256k1/tsconfig.json diff --git a/packages/secp256k1/types/hdkey.d.ts b/packages/identity-secp256k1/types/hdkey.d.ts similarity index 100% rename from packages/secp256k1/types/hdkey.d.ts rename to packages/identity-secp256k1/types/hdkey.d.ts diff --git a/packages/identity/src/index.ts b/packages/identity/src/index.ts index 48c1afeda..24bc2b9dc 100644 --- a/packages/identity/src/index.ts +++ b/packages/identity/src/index.ts @@ -4,3 +4,14 @@ export * from './identity/ecdsa'; export * from './identity/delegation'; export { WebAuthnIdentity } from './identity/webauthn'; export { wrapDER, unwrapDER, DER_COSE_OID, ED25519_OID } from './identity/der'; + +/** + * @deprecated due to size of dependencies. Use `@dfinity/identity-secp256k1` instead. + */ +export class Secp256k1KeyIdentity { + constructor() { + throw new Error( + 'Secp256k1KeyIdentity has been moved to a new repo: @dfinity/identity-secp256k1', + ); + } +} From b28bb483f99c12d771d03a08d673226a865536b0 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 14:33:21 -0800 Subject: [PATCH 12/15] docs: changelog --- docs/generated/changelog.html | 4 ++++ packages/identity/tsconfig.json | 4 ++-- 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/docs/generated/changelog.html b/docs/generated/changelog.html index 037ff888d..c28a22b44 100644 --- a/docs/generated/changelog.html +++ b/docs/generated/changelog.html @@ -12,6 +12,10 @@

Agent-JS Changelog

Version x.x.x

    +
  • + Breaking change: Moves Secp256k1KeyIdentity to its own package. +
    @dfinity/identity-secp256k1
    +
  • Breaking change: Deprecates
    @dfinity/authentication
    diff --git a/packages/identity/tsconfig.json b/packages/identity/tsconfig.json index a0bcc02bd..2dffec2ed 100644 --- a/packages/identity/tsconfig.json +++ b/packages/identity/tsconfig.json @@ -23,8 +23,8 @@ "src/**/*", "client-test", "index.d.ts", - "../secp256k1/src/secp256k1.test.ts", - "../secp256k1/hdkey.ts" + "../identity-secp256k1/src/secp256k1.test.ts", + "../identity-secp256k1/hdkey.ts" ], "references": [{ "path": "../agent" }] } From 179251c9794b01c84942541a87f9a2617d5cc534 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 14:35:48 -0800 Subject: [PATCH 13/15] paths --- e2e/node/basic/identity.test.ts | 2 +- package-lock.json | 48 +++++++++++++++-------- packages/identity-secp256k1/README.md | 4 +- packages/identity-secp256k1/tsconfig.json | 2 +- 4 files changed, 35 insertions(+), 21 deletions(-) diff --git a/e2e/node/basic/identity.test.ts b/e2e/node/basic/identity.test.ts index ba94da909..964abdf29 100644 --- a/e2e/node/basic/identity.test.ts +++ b/e2e/node/basic/identity.test.ts @@ -11,7 +11,7 @@ import { Ed25519KeyIdentity, ECDSAKeyIdentity, } from '@dfinity/identity'; -import { Secp256k1KeyIdentity } from '@dfinity/secp256k1'; +import { Secp256k1KeyIdentity } from '@dfinity/identity-secp256k1'; import agent from '../utils/agent'; import identityCanister from '../canisters/identity'; diff --git a/package-lock.json b/package-lock.json index a59fa94d1..29dce904e 100644 --- a/package-lock.json +++ b/package-lock.json @@ -45,7 +45,7 @@ "packages/identity", "packages/auth-client", "packages/assets", - "packages/secp256k1", + "packages/identity-secp256k1", "e2e/node", "e2e/browser", "demos/ledgerhq", @@ -1939,12 +1939,12 @@ "resolved": "packages/identity", "link": true }, - "node_modules/@dfinity/principal": { - "resolved": "packages/principal", + "node_modules/@dfinity/identity-secp256k1": { + "resolved": "packages/identity-secp256k1", "link": true }, - "node_modules/@dfinity/secp256k1": { - "resolved": "packages/secp256k1", + "node_modules/@dfinity/principal": { + "resolved": "packages/principal", "link": true }, "node_modules/@discoveryjs/json-ext": { @@ -19843,6 +19843,20 @@ "@zondax/ledger-icp": "^0.6.1" } }, + "packages/identity-secp256k1": { + "version": "0.14.1", + "license": "Apache-2.0", + "dependencies": { + "@dfinity/agent": "^0.14.1", + "bip39": "^3.0.4", + "bs58check": "^2.1.2", + "secp256k1": "^4.0.3" + }, + "devDependencies": { + "@types/bs58check": "^2.1.0", + "@types/secp256k1": "^4.0.3" + } + }, "packages/identity/node_modules/brace-expansion": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", @@ -21551,7 +21565,7 @@ "@types/secp256k1": "^4.0.3", "bip39": "^3.0.4", "bs58check": "^2.1.2", - "secp256k1": "*" + "secp256k1": "^4.0.3" } }, "@dfinity/bls-verify": { @@ -21734,6 +21748,17 @@ } } }, + "@dfinity/identity-secp256k1": { + "version": "file:packages/identity-secp256k1", + "requires": { + "@dfinity/agent": "^0.14.1", + "@types/bs58check": "^2.1.0", + "@types/secp256k1": "^4.0.3", + "bip39": "^3.0.4", + "bs58check": "^2.1.2", + "secp256k1": "^4.0.3" + } + }, "@dfinity/principal": { "version": "file:packages/principal", "requires": { @@ -21818,17 +21843,6 @@ } } }, - "@dfinity/secp256k1": { - "version": "file:packages/secp256k1", - "requires": { - "@dfinity/agent": "^0.14.1", - "@types/bs58check": "^2.1.0", - "@types/secp256k1": "^4.0.3", - "bip39": "^3.0.4", - "bs58check": "^2.1.2", - "secp256k1": "*" - } - }, "@discoveryjs/json-ext": { "version": "0.5.7", "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", diff --git a/packages/identity-secp256k1/README.md b/packages/identity-secp256k1/README.md index d6273199e..74cd69eac 100644 --- a/packages/identity-secp256k1/README.md +++ b/packages/identity-secp256k1/README.md @@ -6,7 +6,7 @@ Example Here's an example of how to use the Secp256k1KeyIdentity class to generate a new key pair and sign and verify a message: ```ts -import { Secp256k1KeyIdentity } from '@dfinity/secp256k1'; +import { Secp256k1KeyIdentity } from '@dfinity/identity-secp256k1'; // Generate a new key pair const identity = Secp256k1KeyIdentity.generate(); @@ -24,7 +24,7 @@ console.log(`Signature is ${isValid ? 'valid' : 'invalid'}`); You can also use a seed to generate deterministic key pairs: ```ts -import { Secp256k1KeyIdentity } from '@dfinity/secp256k1'; +import { Secp256k1KeyIdentity } from '@dfinity/identity-secp256k1'; const seed = Buffer.from('my-secret-seed', 'utf8'); const identity = Secp256k1KeyIdentity.generate(seed); diff --git a/packages/identity-secp256k1/tsconfig.json b/packages/identity-secp256k1/tsconfig.json index ba909aef5..b59d311da 100644 --- a/packages/identity-secp256k1/tsconfig.json +++ b/packages/identity-secp256k1/tsconfig.json @@ -12,7 +12,7 @@ "moduleResolution": "node", "outDir": "lib/esm", "paths": { - "@dfinity/secp256k1": ["src"] + "@dfinity/identity-secp256k1": ["src"] }, "resolveJsonModule": true, "rootDir": "./src", From 79636f921185f217828a44191457a14adc9f613c Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 15:57:56 -0800 Subject: [PATCH 14/15] Update packages/identity/src/index.ts Co-authored-by: Eric Swanson <64809312+ericswanson-dfinity@users.noreply.github.com> --- packages/identity/src/index.ts | 1 - 1 file changed, 1 deletion(-) diff --git a/packages/identity/src/index.ts b/packages/identity/src/index.ts index 24bc2b9dc..e00d8780e 100644 --- a/packages/identity/src/index.ts +++ b/packages/identity/src/index.ts @@ -1,6 +1,5 @@ export { Ed25519KeyIdentity, Ed25519PublicKey } from './identity/ed25519'; export * from './identity/ecdsa'; -// export { Secp256k1KeyIdentity, Secp256k1PublicKey } from './identity/secp256k1'; export * from './identity/delegation'; export { WebAuthnIdentity } from './identity/webauthn'; export { wrapDER, unwrapDER, DER_COSE_OID, ED25519_OID } from './identity/der'; From 4871ecd891387c6c881b4982fb41cbad19ec3ed0 Mon Sep 17 00:00:00 2001 From: Kyle Peacock Date: Thu, 8 Dec 2022 16:00:18 -0800 Subject: [PATCH 15/15] removes stats.html --- packages/identity/stats.html | 3583 ---------------------------------- 1 file changed, 3583 deletions(-) delete mode 100644 packages/identity/stats.html diff --git a/packages/identity/stats.html b/packages/identity/stats.html deleted file mode 100644 index a71383c33..000000000 --- a/packages/identity/stats.html +++ /dev/null @@ -1,3583 +0,0 @@ - - - - - - - EsBuild Visualizer - - - -
    - - - -