{"_id":"symbol-hd-wallets","_rev":"34-4e9db268a662df300d31fe42d70bca04","name":"symbol-hd-wallets","dist-tags":{"latest":"0.14.2","alpha":"0.14.3-alpha-202112301944","next":"0.12.1"},"versions":{"0.9.1":{"name":"symbol-hd-wallets","version":"0.9.1","description":"Symbol library to handle hierarchical deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.17.2","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","typemoq":"^2.1.0","typescript":"^2.9.2"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","test":"mocha --ui bdd --recursive ./dist/test","test:cov-html":"nyc --reporter=html npm t","test:coverage":"nyc --reporter=text-lcov npm t","report-coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"Apache 2.0","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"0884882d367424e595b1c9afdb1d1f9daa660c6e","_id":"symbol-hd-wallets@0.9.1","_nodeVersion":"13.2.0","_npmVersion":"6.13.7","dist":{"integrity":"sha512-RwitGxo2p3G4yYqMXv1Q8B+SRJOLMaCNVPouGfpU01RvqO3nA3hnKGdG6MXK3LMQ/zlfw0iEDe55p4fzV+YeYw==","shasum":"fd518977d381946e8b6480dfc7391ec83dc7db8d","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.9.1.tgz","fileCount":48,"unpackedSize":200463,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXnuRCRA9TVsSAnZWagAAycMP/iagOp/tBI8iBySjaIsa\nzIn4dcGDQsGhYxNFjwVnjlPcOtWU8Y8HgTXUSVAeV27DX3b9ydaAbef5vdsK\nRuExBDDggbRDcXJU2rh8AROs4hoQlLROqCYrBMRTzlCWGSVYgld65H+eJURZ\n1Uc51kFUyAHfNTU+ikplgxNEdQT48JbnfIaHPE/5o0wn/hu5ZLW786EH5fi+\nvA8kpt7vh7DNEIe9HFp2FGBxs3wK84JZIYWKqr8OrCaPg1jyBL3LJhDIApyZ\nVHvH57T/oM+zCWhMPvFF0nEFR3PP23semC80tO67A8mnmA7HVaBa2SoIFEV5\n+6PsJnw2mczbIHY7fUwyjEcOoTCNWcQAK+hBQmHEEkrMn5S+VkFPG2HAofh8\nsTMeO03826g6lC7ymu8hgnymO5Zv9bIjMsWF9g0iTZx3m+TEwinFFVFYvz1c\np9UFzPsjdZGTdrS3U3/cgXmOmFFZhGeC8uJfp5gn99iuqmBpnrvMvBFToSlG\nIRlF5uLn+3NlpMQLP62qHzeuGJOVrL+F3jV2GzQXtyMBC40mziCpPaAxVF8H\nXUcuYMm9g69360ZXlOOi5jQMudjj4TO4JwsLWo1ezCQml8Y5NKYZZ9VYABif\neWIFMVDE3zl0yWwqzp+P3FUSV8yFprR/dJ9UjIJuTqOMuLQkqHhkIBtcDCpE\nPBor\r\n=OraJ\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGYidjdTiD1B6PBelTTkWI7KfvXvjccqzMqgYZ5KDDAYAiEAsh7RM7ymC/nzbvvm3y1HY8Ae560W6tchfTyt21TVBn4="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"evias.be","email":"greg@evias.be"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.9.1_1583250320703_0.540307980999168"},"_hasShrinkwrap":false},"0.9.2":{"name":"symbol-hd-wallets","version":"0.9.2","description":"Symbol library to handle hierarchical deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.17.2","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","typemoq":"^2.1.0","typescript":"^2.9.2"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","test":"mocha --ui bdd --recursive ./dist/test","test:cov-html":"nyc --reporter=html npm t","test:coverage":"nyc --reporter=text-lcov npm t","report-coverage":"nyc report --reporter=text-lcov | coveralls"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"Apache 2.0","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"2d98a9639860eb5b8b5541f31c3cb4f08dd2ef8e","_id":"symbol-hd-wallets@0.9.2","_nodeVersion":"13.2.0","_npmVersion":"6.13.7","dist":{"integrity":"sha512-rRPHY85M2gm3k5x5IlFosJBDljY5yVvbUgY7rOseio/5QebdRZ1wszNxhCIw5+PFRE52A6AOJyGtvf6yjWssjg==","shasum":"27b95342e23248e09c71dbb41488ac81e019934f","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.9.2.tgz","fileCount":48,"unpackedSize":200499,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJeXn4pCRA9TVsSAnZWagAAkDMP/igQQb8/0qTmwH9Yt6V3\nzHfEsjQCUdUCe7rJukLbVObw3FUJ4ghTcikYI4JMD77Hszo8axoDTeEKO1ea\n9E8c5FJjmDWzxzhFK3X8z3KvgmGygA3eS3ojVEA9dTPZePnZhKePCUo9Vpb6\n1dBT5kZFcK89Aa5znc3QUqR76TSohsBoKLkwyqAy9Q9Zmx9aJvAp6S1co3Go\n7MRoZWJIVz/Sd+K+/vrGkzpKI/70+h1ihgQd/P7Wd7FR7KH9LmofKWcmB5Xz\n3ierO3f3Zkqj8TkAJJZA2NuqY3sI3I7zrupyS7Kohkoto6lixgZ7eAxhw8kl\nN4m09hfYlGrIvXmW6y3YrcNku8kM5qFAjmFN7mxx95CZmHje4/z/3nkokIAm\nDkhRpyizM8xVyB8bfXrDjNAjvNyzgKPVlHeUWJzTPtwfKvDZYcitEm/KrW5M\nwF+Vr8/rebf+ovqW8muW8YDUyw+xupCuBDNSs1Uq5O1+BWzETDbwncdPGhBB\nAxQShGXqwePslY92YcNUXWt1YHBaVSoOFxTGDMHZLOrMUDEgOFcGixZZ4wQT\nEOAdQoqPstvYhpN4w9pwGPujCdftRAHoMpkhRyOP4/oBHYy4uzTERj3sbT70\n15R9y9kywaJL/ep8iTjlNHR6S/OpENFhI/6glUoUWRiUn8QGjSNrOFEDHtRh\nF91f\r\n=sBDY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCsLLXlxygunv3NkCnjLwKWUAioyADAYBVZuqxea0CL0wIgNwobV60SexF+KyZLiktSeBXheNlGtVSvyPgyO4/x+rA="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"evias.be","email":"greg@evias.be"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.9.2_1583250985490_0.3295937428941631"},"_hasShrinkwrap":false},"0.9.3-alpha-202004151535":{"name":"symbol-hd-wallets","version":"0.9.3-alpha-202004151535","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.17.2","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"5e6bb9b4d5ba3574eedf04bbce68f7510e4cceac","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHyper-deterministic wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a hyper-deterministic wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.9.3-alpha-202004151535","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-FrOR/uyEZfgkvIm5PEIvV6h6ZMouZ0fVV+XMks/mCXCovP7Qlou4L7kbxJ0Ua83QoGMbZvpeoOAiavxZCSZ7vA==","shasum":"9dca560a0211755e00d7fadb29300c6dffad9728","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.9.3-alpha-202004151535.tgz","fileCount":48,"unpackedSize":201745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJelymoCRA9TVsSAnZWagAAYKgP/0nvantix2QWnkMo9qe8\noIcZpqiWjCw1+76Wd+oCPGan1wZGUlPgqdJ+PKvH89xzuHL2bM9CW65cgDfA\ntVmWSWPv/2UX1uR7a3+iD163oJuwb7BV+RxhU6x9V7sJCtzZuR+xyAzXkvH+\nidamwaHlzYDaZi3fKBMzSXWHc6B762KqU9rKqabuhm2NL98b2ydMz+aS2fC9\nhb7Ci3BA4x5Cs0OAuBtgCghuDJb3toTFl91f1VB5kNdqbqpX4aDSyrm5SsOu\nJYKwUYlxsWKqEMnNflotVUbqLKTSQbLZzwVyW24l17GaDqFInZeoIcUHf0dj\nxUSCPtoz63swAKfyKoojqxM12Y3WdBc4xtGmLgtMYWGdv+OXQFBvwos5FYXs\n80cApgPoZ/HwXOSxYIjSJuZmM+yIPM2BYKrGDdMero/PaMPxgzV/bxqRP3GJ\nN4QRwJDtDNODa20y4ikeuJsGhZ5k+Pii0e29Xxp6Q+lsH2V9FO+UxPuzL8Da\nc2g3C9CRthwxOQF2cHQtXkH+9trDa/gVyaIiXHxy2Cp0WkS7sPd8ACTHMa53\ng/Rd4Brx6UkpQH4xOve0BOa1ePEq1BC6KIkEENB541so1QGQEX2BLwWXHon1\n0/gJYRrtsc2473D+gYuwpegWsQYSYGOo6XsctvQDwmW75UAXW1IWv0ysxoJZ\nwCQN\r\n=4kLc\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIDGhzAFTI9Sk1B1425CcLpSF/chlTzb5iLKhDTe/x8MZAiA09U13hXgo+hJ9Uc6IBNIAfaPyRkZ8jg0lwgwKyzMYug=="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.9.3-alpha-202004151535_1586964903518_0.2003395135465127"},"_hasShrinkwrap":false},"0.9.3":{"name":"symbol-hd-wallets","version":"0.9.3","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.17.2","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"5e6bb9b4d5ba3574eedf04bbce68f7510e4cceac","_id":"symbol-hd-wallets@0.9.3","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-gpOdEINxLB8XdJrYm3Fg07JJf6eUluEcRoosnDCluKvQs9kTERjtE+yGCNcdd27MoA3GjhJHKvggXgBjIDElqw==","shasum":"014d7f8b4c92c2bb7c94b1cfa2b49169e4998ef2","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.9.3.tgz","fileCount":48,"unpackedSize":201726,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemZZqCRA9TVsSAnZWagAA4aIP/33Rg8FUsdadD+mZ0c53\nmoGSfo/Nw/joWnZj4rSmbtEKeI65SSUr1NNdYoKrwkFvujvJ98QaXshnNmXO\nq+6GtGUzd/tGPW91SflpurjLXwrKe4LFLuM2E7YYVsWoyhwUQ+Ao0En6c+qV\n0rr2kbPbzicheWcgGCiGN3FoxGAHdXf0s0VyH4qY8Qhd+5KaCQvaSLl6uvce\nLyg4r/dzSp8f0I6z21Ry6jzS6/ZOYBO102wZtyDArPM8BNG1pKJgaNce91OB\nm5ks0AiGr1qEDW2QHXvrBfP/aomQp2jc2+LjZKeJei5H8eBqLEH8dQL6R4TI\nNIxujCQ5hglmdoniZfCysByZlK8eM/9o6D7EosO8t80TNwEwVoVCFb7rgqvs\nwZ+RwAFf8ZM9+bHBId5hri/nMD5RQuVYXi407hWA6c5wM4gXPN9zDjwF8Z+X\no9dmjX7g3Ib5VD+EAmxco3DD9AzfrKSqdyWqJBWxd84/2KJBQXQs2HFhK+Rw\nCzKTh1W0PuDJmbyHql++XuXKR8QZTUWuPQUrgEe8e2HH02V3CrO9SkhMddZ8\nfxHpR1jnhhZTB634XzIt7qU75K3fpT4hEPmf2iDO3Ir0MpgpzB51dguQ0ENJ\nfJPHlRIG41Dbakpj5OBN9WTfxjWwtGTY22fx9/Uc3OIt6cyq7dzrvRF7Hssp\nYCTG\r\n=vy4x\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDKcx1TRhmQ5TaBlSS9utdsuotK5GYbjEl9MpDFBlGwNAIhAKm7Do5QBOFYfqdtsVZRQkwFWTDhHhniCjxDfcA18jhd"}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.9.3_1587123818198_0.4038420775715075"},"_hasShrinkwrap":false},"0.9.4-alpha-202004171151":{"name":"symbol-hd-wallets","version":"0.9.4-alpha-202004171151","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.17.2","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"7b01ff64310375341618b415bb5ab88fe3913a70","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHyper-deterministic wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a hyper-deterministic wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.9.4-alpha-202004171151","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-q0lsQHtGT3PJYAtfuUM2RG+YSVLtkVQOd6wvSlq0X87fCJGQjDa+N8KPRIU4VF1MAxNIZK7AtIbhzu5ipsr+aA==","shasum":"510576d164c45de26f5a17186a28658e56727314","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.9.4-alpha-202004171151.tgz","fileCount":48,"unpackedSize":201745,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJemZhHCRA9TVsSAnZWagAAG+kP/iBw17xY+YYX6iONfR95\nAI/4s0ffWWyv3+N0YDPnrndvEvqJ25TQE5fYN0cPYZasEocIZdXaiVt5BiUt\nvEX5NZApae1ZOZ66jBtQbk4uNB7QfHHlAZAX5hMdl56fSGNBVcrwkNZwPSHF\n6JNTQrGBSCLI/r68B+MzWVIguKQnnkHAoEtjLQNi09IXsT6he6VqFYq5vzON\nZ1cvczrvfJfU28o+FHygcZ2gb3pCo+pSNbF4/hF1zMlu8QWZ2FUeOqRd/ozC\njfk8gevkrXS5EyDmE7PNs0yYdbVq/37jv7Z7BHKzPtljRZEX+PP8Mye56u2D\nauloX4bNhOeUCvxdlFFfWulJRFm/ulisRTLURMbnZnB/Sr3AgJR3EwTesrlv\nK1+sxi+5NwIZb7ZgtkJA55Pid4XJ/IFAIQ0C7AWMUrKWy9FMDt3LSEU/yt/w\nZas/7KY7ec5SOEsJF8SiWNWUlJ/+2GfhmQfI3wve89hpXSmZlkFKLNkCxgSH\nmk/E9wm7LiXjzLXBL3hxENgUBqUikS1w9Zwl8PFRuWmKVMXz0GBNNxw1HMT6\nbUZhtaZS+Y29Npe1s6FqF0Jklkazr27di6KknSjIWRckOGselrsKlBOxpbXW\n4GgIhgQuxGkH4MYKLI0+G0z8cxbXoHHeW5Pj+Se/YHrtery+Byk7eazhb/d8\nYmTq\r\n=oJiG\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4ZskdtE8CiCqAKUV1b1BOqxYiejuhc7X0f8/tEK45RAIgTHY/cmyV2QL6DRuWUCejpyZkb04Hrx0uqKVVrVNTxQk="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.9.4-alpha-202004171151_1587124294888_0.12360169716225156"},"_hasShrinkwrap":false},"0.10.0-alpha-202004271648":{"name":"symbol-hd-wallets","version":"0.10.0-alpha-202004271648","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.18.0","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"9ee3ef55eaf29a9750157e929ec06ade973a44dc","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHyper-deterministic wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a hyper-deterministic wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.10.0-alpha-202004271648","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-cEtN/DYzRf81G9EoJeakCabrc5N6/wtnEVj7MfC/2h2W3+KCjOGmbHV8+UTaLKN0XgLcKuexiuW/hrHe8s8ooA==","shasum":"e86d426186fc31d3bca57fe736b31f529db8f225","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.10.0-alpha-202004271648.tgz","fileCount":48,"unpackedSize":201791,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepwzOCRA9TVsSAnZWagAAti4P/3kM1rHuxld+oUWfuGK7\nIQB6lWAEv+VptMtMbWKlGJu3MpzLkSfTqNNxq2ZUmpiVvZXEl9267gkepRN9\n8Ii3hyo8Pqa5QTbqR6MUDkPjW6/aduwKfwH+8c928Ebgd0jyfEup2/BAKos4\nktxbFWKJQiZygYIYRBjC7uAvb0MYkoF8FR5btWSvn8JUlcWMQ9xlw0dw8K7N\noLNFlkjvG7ZuXl+lGCPG31KjhXsYlA3pNzFLjHGLjoJ7Lt3p3gHRiTM9bbgK\n49hJqeMV2n1Fvovu8BaYrh27o97P15kq+8zDY265preX3chRxSKRWXX9YjJ8\nqrpxlFkUP3Q4CeANqxEHGTa249NB8GpQ/Jr2wZKvZS17IxKfeBWriTOCAFLY\nkCckCvKRh0BiTHIxPOzL3rOMgLZ8JXzFaYPX/+eHHovoqYYLdGiyDW/RdOvm\n1uj3Jq+Ox70sRXiNWyu1bTl/WY8osbnwVY1YTCHoFu5g3xClwsauH34IXT2C\nOTO9o4+igcJjQc5/U7JezRd1UlHCzoC2dumBzru9/5R4Bkij8/ER1/790sfJ\nzJJiHTTMTGmbiaT0CJNa+AozD0c8A3x34Bug/I4Ync2MywMVhcEQbDPfyrQr\n+1wHTBFpFuKS8S0Srpl4WUyB0W09CJ2dYvPVE3Czj6dq6DrPIYSZMbPw/k0O\nytde\r\n=FqrI\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCJI9avSEu320x33kIlOo4qAjlq+tlnh7WDLQeUAv111wIhAPKKSjuVSVQ79vECwexgDahcAqYdRYcRQdOxX84dvLCR"}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.10.0-alpha-202004271648_1588006094602_0.6874239421182102"},"_hasShrinkwrap":false},"0.10.0":{"name":"symbol-hd-wallets","version":"0.10.0","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.18.0","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"9ee3ef55eaf29a9750157e929ec06ade973a44dc","_id":"symbol-hd-wallets@0.10.0","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-fwluiCQt1fiL1Z9EcfQWZTTkwmSg2bqfW4uMb2thQ/Lue4Dl+sRmQZxcwIUIhkTAIHzNhK4EoLo5qUprPvgFhg==","shasum":"47c447d4764a97d42b21f242473b69dc31122fe3","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.10.0.tgz","fileCount":48,"unpackedSize":201772,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepw4sCRA9TVsSAnZWagAAuHoP/0jnrFJ0yU6qNqPBf6vn\nLgwfVFr3MVDAak/gx7gsHNRImgyBq+aQQLznJx8JV+N4zVzVuh+tKcmQJpuk\nSJB5wKeD9nep56hQEY0QZXzAlKqPIUYcmi3oepENSiWz5EhnyB72klI6ac1D\nkJWyHO9wuZ8PvMGuygDvCcYssha1Iz4j0T5x3jkJkch3Cs2p0/K0UZXV6uWU\noltjBk1co0TUsmZkgN8XGd/g/4fqG9dEomoX7VQw5MIizlB3oPdEGi0yI3UD\nfK+lOexlz7WkIZzGQqZCuM3phPot5Q7qeYBlMkxgIJirv2xvBJmNiWrnhMt8\nPWmWy9iwn4PmELvUh0E0UAFPSNvQ2Zz1gzJofrJxsVYNkTD90Y4k9aRc2vo1\nFIRw2OX+h/9zLJknwDZlKr8DepGkyPOpl726eAvmqlN4ThjaVYCDGwAFAdp7\nO2jMhiEFq2VCxBxy0mdXanv+fV6qiYvTusyHXU+BqgY3TieXD/H1gsu2usxQ\nNNuKPPnfQDS0cXUDBJFeAa6BWzdRG8mt3INNk9akRYDmdFrnJwa9WHd+lKHl\ngANiqQe3EajDKmChwwuV+BqV8QwQVzrXkaWQtEr+KmHlbEGMiwFHFcICtQ7s\n7ckhM+Hn6a1lu4u7+8uyr+hHJeg3PW/8jha2zRNUZw6ghxANqhzMT/qP8PJY\nNaHa\r\n=AyfS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCWcEvJrmdN8oSAM61pN2SwJ+T0satzrb1O2zsf1C3mgwIhAIJKrIExCTeeJjn3FNlOpaN+mA24YrPzBD32j59K2zec"}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.10.0_1588006443755_0.0760012470485234"},"_hasShrinkwrap":false},"0.10.1-alpha-202004271655":{"name":"symbol-hd-wallets","version":"0.10.1-alpha-202004271655","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.18.0","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"dd0f2b017249e1458d5a8a7d1b51547da4cc8f61","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHyper-deterministic wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a hyper-deterministic wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.10.1-alpha-202004271655","_nodeVersion":"12.16.2","_npmVersion":"6.14.4","dist":{"integrity":"sha512-IpawRC7o71YHQuI3AvY9dSN8zHaB1ndWB1CAR0prWBb369a9ebpf1e4vr4dmuNxG4XT6s3A1NFp9vjVSl4gXVg==","shasum":"78abf70e8d7b781789b11304b1bd7b99bfa7e0b9","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.10.1-alpha-202004271655.tgz","fileCount":48,"unpackedSize":201791,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJepw6gCRA9TVsSAnZWagAAUWwP/jjHFqcnNdhuUCGI/9JG\nub0acR014Iv7YMpN48+MnPMJK/UnYALiTQTKQ9QOfzmB5sB2LQRYoqO0x4ah\n4hK9VE7kYmZOiBwP2qyUSNkKUZppnQr9cNS0ZdMXws2esuu6FLhuDgpw2jBz\nxXrkqJ1rlMg5R5SWh6vtkHt+zfkYKsZO+2JDwLd7JOg+QM6hM/Lf6m3J2RcG\nX39VEb6hLxZGDf3wmK3dWEQRtON4iGesOgWnW0prpisTrmAiWBY8jIrmNPJU\nu5j7agJI8MN4lfG+RDYB/HA8dGREUUmm1buPlRbQTvdRXF9XPladx89ZIkbQ\njXk+cUa74TZPVC2sX7l7FAqzoSBMoKJs82fAKjUEdOz12J9PT1mi8VKzD7l7\nANoESuiFgBB5jW00lyk2uxu7a2M85N4BetqsA5Y2ONs0cSDnxPrR1WWJEHqk\n5llAYvFw8gY74pywGuSswD7gSX07kCf+ExchOUY1Aq1NH3fZvjcF/UmerHwZ\n5flLN8alckxAVB8U2PQFaUtUTlNVhZ8QZ+r/wz64eQCxKn0XgyHoVXGxziIA\nm0mWPcqs50O3YfTRcmSIkIc2MjnzqJWJlCIEa/rZ3s1U3DselTlN8Il35y1r\nYyp8o5vOCUWIWiwTgIvmZrjwFGoskymLQbyBLMwJfKRjEX0/mdDbmf8p5P1Y\nerEA\r\n=PAis\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIHNEG90swFGlua5lUoAqZnRgdPa9Cu6XpJmwfl1Xdh02AiAO6ziJKurAR8otvtzwMb5uphQ8BnXba1+9oZvorW4f7w=="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.10.1-alpha-202004271655_1588006559740_0.2864522394580953"},"_hasShrinkwrap":false},"0.11.0-alpha-202005251410":{"name":"symbol-hd-wallets","version":"0.11.0-alpha-202005251410","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.19.1","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"9d58d60140512b71852b0136e2104e30e925f188","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHyper-deterministic wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a hyper-deterministic wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.11.0-alpha-202005251410","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-SgKrrNwugqgpqFRWyMrxKcC9LUjiGyD5x6AwSRc7Cp6R8DRtksY4QiibP3iXIn0f/6tkhQm1daRS5TaZd76ysg==","shasum":"66ede6def8ffdfdb03aad03f457d1b99b71ddc5c","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.11.0-alpha-202005251410.tgz","fileCount":48,"unpackedSize":201836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJey9G+CRA9TVsSAnZWagAAM3IP/1KlhrKJQQ4OM/6nz4uE\nl/nzW9ydI8F3EY/vSPo3JFxf7M8Zj0CeH2VwfBcLE6k1yiogWKB8CxONi+Gi\npJyUEWUUypXBkW0MvsYyqoNBzfeNV7Q3UM5hv9nVigXlwY7oumTFX3ug93r+\nY2vlXIx+eSYwegf7v2mP+aJvZi23+R35wnUysqoukJcGdBXYaaaPF2zcbFYa\nxs8aZ1UDhn9HjSFClyNXZUvgNYVhueQUgwLcHH3WcAVqPTT2Zk+WyO2ZNwc1\nk31UfSthPVLtAkYV5Z6828cbAL6nWh4pQ48quR0+j4Eq9mz0a4lmoua6ylEe\n4n656I2Ig6XwUb9agfV9o6NowhClkGee4SWA0r0FNk/3SVvXhXXjT2nvkE7F\nKnQum0rqQ8/NUm5qU0dJyJu5Wf9KH4agnz2BfaRZhWovQfE98k4idfDjQ8bz\nxVvkoracx2Ra3l/G2SZjUhrbc1Q2FE/DrR3T6y/6qdlnuZRz1eUfjf+cHe4J\n4EJZHAOW3esX39IJ+j+1JwEAISgkaM2yFyOlZQcg4LSLlIqlws0xsaijLMeE\n1rijD/0Ddkt8AIPnFcEfZef8yEMynF1gwvnAnVjjVt9iZfXpralVBhUBbC+c\nrOBPlLvDqPlwCROV9WADFXDIKYN3Djw63mcBdzG2r45OViyLTHBaL2Ttbnpg\nLG3Q\r\n=whbL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBA7XsA3gBDnPmi9rdmzd8hb/jXMvXgwzAjz084PWyslAiBAPM1p3O9mw1I6vOgzdEtHSf0HSBjSsH2RucofByWPJg=="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.11.0-alpha-202005251410_1590415806219_0.37427206994026396"},"_hasShrinkwrap":false},"0.11.0":{"name":"symbol-hd-wallets","version":"0.11.0","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.19.1","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"9d58d60140512b71852b0136e2104e30e925f188","_id":"symbol-hd-wallets@0.11.0","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-XI8ePn+NS7EIoyOhgADEKkltxhjXioH0Q65Pyo0aaPNH3uKhulEvUkTi0SvgeRw0zotUFwuwGeKCOvnmHnfeNg==","shasum":"6c963b48472afd10ab1492cd8fd07e6948c27564","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.11.0.tgz","fileCount":48,"unpackedSize":201817,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJey9IxCRA9TVsSAnZWagAAbsEQAJpcv5LvyETnuul9FKrA\nGJgEtOnc4E9TEuG3BugWNM0YQuaC1dhzEAjZOONumXVkPuQTVjEqyjnaZXgd\ngCb83GTrkra/8/e3GEyXOeLBXrCg8lgPnHSeO6hz1QdnPN7azD683mIx6TL9\nozzm6fVsre+3gRxKJLwZ3XVAiGrHHjftYQx7e+ocjUkqs0lFLQ8/RrL/hBcx\nYzea6xDnjlPPMkUOl8YNDxMjL6UDeeZgmn4vNRpRjCYUYPcCvegQZ8zswPSb\njxqYSyaH/SJ2qAcuWE3XYKKeLMh29KUlbdKfclqz8QiykqWPZxVlYkePMZXa\nO3ElMqe8ADUO++JqZmImpMz2UGP94F0Oq82IX29PbZlfldNeY8tgR6pXzdmz\nHm71PJyKKDae8d5XM0xqqO/UOOGLotUafyG2x6WTgIpM3T3WGkbUYY8k5w3R\nbngfdVyzUM1BlnRBUliwc1/LPvE1Uwmd03Mq2xm+Ri8+KRFwAlY/uxa14fi3\nJEcAy0R9TxtHKqrnvAhn9/peGIm1qd21YQ41EXyhf4Dz2Lcve64qtWkSHjmY\nEs4jf9fWxUBtZDRVaWqD5ScJ9JetTy4yfYF6Uis9S0DGDynKzBR1/jsdfjdT\nUVFRUqtvCNFn6q/Bz910lDoQXjPAl5tUGfqh0PnEbbJIqQNTCDbEk4yei9QO\netD2\r\n=tqFw\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIC7lFOK0h+Q87XgcI27MQD/Le8BPcmkeJlrYD84htoXSAiEAx9FEquXxU28+n4orGUJXsqGhhHn3KC3hp5RAPOv5tMw="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.11.0_1590415921433_0.9521686237208349"},"_hasShrinkwrap":false},"0.11.1-alpha-202005251413":{"name":"symbol-hd-wallets","version":"0.11.1-alpha-202005251413","description":"Symbol library to handle hyper-deterministic wallets","author":"","main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.19.1","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD 2-Clause License","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"2aeecfd21ea33ca82c36e6397c60aa2ba4f8c6eb","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHyper-deterministic wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a hyper-deterministic wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.11.1-alpha-202005251413","_nodeVersion":"12.16.3","_npmVersion":"6.14.4","dist":{"integrity":"sha512-pFfK7K/ezHgzNnZ+xc1kvVfWupIZulcu+ZfsRbXAmdB68+HVWkg2aPENZa1rWmn0c7dGtfwU/gwk40Y1Iod1sg==","shasum":"72c9cb6d84a971c4da33c88556f297e039c4b279","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.11.1-alpha-202005251413.tgz","fileCount":48,"unpackedSize":201836,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJey9KcCRA9TVsSAnZWagAAo9YQAI+pjEPH6Xsk0dhBWjba\nqSnwdWHPRdYQz22ZrFX4SSvjJGMLzsNstdrM31j1EB8tA4QANNIaDrH2Xvi/\nFE3ytnb1FvRVy89b4gfAYl+iCVZDDhad0V+f2cJ/ZqvRsPJL0wlk8aJdxgmb\nvpo5Y7yNw8UFoNYKCPMC/u0IWVmuOYfMsgFFNv8Dl0B1KJDItiC2OuiRUIYr\n1R0M315aNypZyuv5aMTpaZllY6jaEW4BnFwVtatWazFUE9Zvc+g2Cr1CCzX8\nmf+HlGzZkKBIF0li2d+xhVflwfuTem+iOE+JGryak/liKAke0pJkKIuCDQWa\nr11Z4MVeQtu6vT7jcCzmr5XDqWOFFqSAY/2de7BhkKQAgfBJlrYO9APbFR6h\nECl9Qi3MHMFQrj1Wi2kxoDTtP2B9w9Nv1FXb70UFK32WfJlqPwux+72MeSYs\nEpiTQZZHl74MpkHwstPiciQt2DYD39c0PRsPDXKa0ZfXxDFmb3N+6ikSefQn\nRfZSiN9FYltI8Qe3FRzc2GZQ8Z1Rju3vfBH1+O//taU7CSOoaqXCzvb7ESCA\ngNZd97caJa+2W9KCnVpV/2baV5XBC4p/JpfaN1zctubv+1q6SwBjHN4UEZ3t\nahRvi4y7PU+EZMo+vQRzKdj0fAxOv9mn2tqeQlZtk22hO6ffdUD/4bRxDe01\nhAja\r\n=oeMV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIB3YWnpXWovzyLL37tiYMbtgSB7Oz2cCla6VK5zsmlqhAiAiOCsIUjBBspkJY9Pfk2m2PKrM2OP6mdmtaU80062k2w=="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.11.1-alpha-202005251413_1590416028519_0.6044355624152582"},"_hasShrinkwrap":false},"0.12.0-alpha-202007130854":{"name":"symbol-hd-wallets","version":"0.12.0-alpha-202007130854","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.20.6","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"bea0006d9e611c605bc5bd702f3a6bb53f0050bb","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHyper-deterministic wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a hyper-deterministic wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a hyper-deterministic wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.12.0-alpha-202007130854","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-y3lz6DGIRUHZ1rObARKcomqPcPK9s3uU2qW16KzP+/fbL40lSqoAvtUnZtPq1ko5NJbjtFq4QfRSfFF0JXGoUg==","shasum":"8c8f75d7b18ba26a4c4c17705b83463e4fdf9067","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.12.0-alpha-202007130854.tgz","fileCount":48,"unpackedSize":201932,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDCFlCRA9TVsSAnZWagAAOPQP/RQuDqBK5AZxocBkbBYP\nhI1xsH3RY/jQj2fAdU4FqVrtbz4O9xqfr5OZMT0abYJAOYUCGhnlytzSQsIH\nRd9LYrhs1rmt68AidwqqVDJDZYpO+FE87Sm2T2BWzEES78MiV8Sbq3eFiANa\nktlf1tdfnQZD9NL/2VQGJI/rQh9dBxAZpkeh7okyIXUGWJjB2UuwjJ1qy/Gi\nRUiMmmup39tOLzb7jk6E4tGvm8EgESGVKpKJDqFwJmFuAU/QKaIPaFfVYN+O\ntYbIWVBZkklVFPYD7xP9him4MfDrWlgeC+57jDwrd3TH0aPluYSSVtXKY8VQ\n8ZZyXiFagVp+ukC2y5AV6Oc7kWR45iw7E6VPUW6KUzOM7t750bE1UBGhUftW\nZrNZpBdf/DO1Lz7SkDAt1y/Bv0wtDJ6TFxGphTUFUv1GVD+xIQN3eIjTNXrd\nsq3TAbJyEwOLxR4Ad2bpdZ11zfjl1mpFmHWVP6mEUkMpY0E4IZWIFLiR9S3z\n6otkSQUa5GqgT6vbI90VpiUm3hpzi/GvJnPUnI+Evgz5r4KRy75VXNq0Sq2+\nxzSCaYZPNqPWPWCP7+VbijXVpgHXC+yArlX6W92/E9rePB71IMR4688hqxz5\nlj3tsPbpZO6Xu469VPlPVoXEq17qHuu/wSpU0kFH+NG2dfkT4ZtKL5ouTjS3\n9fTg\r\n=rYtX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDrRiNHyJe5BJiozFpO5xk7WeeWDnzzaQUWENs2Fn/knAIhANA0q1ytRmINo/YdAtJaMqgRyNauDINOpAtm/ycipfVd"}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.12.0-alpha-202007130854_1594630501004_0.9003084011089004"},"_hasShrinkwrap":false},"0.12.0-alpha-202007130856":{"name":"symbol-hd-wallets","version":"0.12.0-alpha-202007130856","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.20.6","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"d8955506dcf0ac2fb2757329cd483ec8a0a38309","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.12.0-alpha-202007130856","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-EnfVr8VFJHvv15x9bp9r9qEuSZizURHwiFhPVaik9MxF3rtVhXjV3z2HxvFIKZ6rX4FS7fK1Um66YFS+QNXQLg==","shasum":"4ad2fda5623ffc3ab5c85a681deefec7e08703d1","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.12.0-alpha-202007130856.tgz","fileCount":48,"unpackedSize":201893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDCHFCRA9TVsSAnZWagAATp0QAJ3TSLF+HdvAvs3l2gMr\nVEIuAEnafCDuzfHDkFy3iwT5/Tt5ufODGgnY30BDQmtrsMKaZVfXSL13tHV7\nK2kUOCKtsG6VZS2bh8PBlubNZV1sVH5kEheHyuybvFINckpwxz+WDestUAzM\ndt0n+hAcRV5Hq8hkuwTBWRTH8xSxL8y4VcSZtawZl0Km3RLrtBM1RrPLxvcI\ntskyfMAKJr5HeAMOBNVIlwLvyTTFEJoUVcxw8PXLRt1fEV7FRsDATMWtlkFb\nkm/0lDDouNJp5tk54U39zAR7dLOMVfiM1u9/dmAFxEbqAZr1TJN/6WQKJ+tV\n7/zOJsh2wd9hqNTNSqNvMIRLIXUro86VlJ5kxR5hOgbuG3KYqZbEWWLnrKyG\nABfn/HjemEXueO4w9k7QBsHdEp+A72y47eh+X7v3nI8NAdqWgtRWBPAMSS35\nW6RqjtI2J6gSN9Ss3hbmC/jK7Rs5o5R8dYgBC83JDl7BmdbsEIV0H1GgrZOP\nf0f0hRV32nTSfHh1issGay1gsdZ08A6Rveh8ZhsYwK/iFQpr2rw3r01S5IUc\na9WXwwpHbDN0Vrw9q+JeFg7puB0AaFyJJYQzg1LHqSqnxYAdc0NMD6PR95iF\nffe2QDFwUxpy8psCpFl6SFoEA4JpECqperKeW6KdoCMlB+bZpkCoqlY5/IbF\nEnW8\r\n=xZE5\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCICn7tocuPl7Hgv+vsEF+5dw3F2oEtiVc6S/4op9svCcqAiAFdCvhu8Z2Lw+shexybpq71rn5tGnEE6HpovI9SCRIwg=="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.12.0-alpha-202007130856_1594630597213_0.7314541188579085"},"_hasShrinkwrap":false},"0.12.0-alpha-202007130908":{"name":"symbol-hd-wallets","version":"0.12.0-alpha-202007130908","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.20.6","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"9047495d4e749ef6a0571e9ace0185695cbfa0cb","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.12.0-alpha-202007130908","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-WBv90lVCFdvt0mHXuo+AxAo/JJ3anRCKhgir0BcyPHXHC4Bkg7Aw8fQhiwSpNqm69mXritF9HftBjpK4IHbmsQ==","shasum":"9dee1b8e637c9928dc78a58c50896f392801d7a7","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.12.0-alpha-202007130908.tgz","fileCount":48,"unpackedSize":201893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDCR0CRA9TVsSAnZWagAAHOQP/RVR6NRBfaBl7O+pcPS6\nTpa9pHAXfveh0iYeo7SUjLAh6UpCVDzSfr6xUgm7DBDoL76Di5BUR6ZL1Wsn\nmMV3olcbEruwgC2do/pnQRj6ezTr7fYJkaa5eX7y6J4z+QMkkrG0sLAn3sZ7\nLM0fdkCrJlJwZPasqVWVclj0PONiAwF07dozfbrDk0WavaPE/Pz3NVVv/shz\nw/Mqd6OBqLqSSJGLck/5b258ymlhuDAf4Ai2e+ok4ySZsHi8MgVdzby/jNh+\nNJiT02f6RoWiLOApRYKryY8OwNKaUblslQLoFHRIpjuej1GINOsuPXf+mBlY\n4lwDwZObPhs74IDxVBAduKYhWUdUGmZCwO4vXhj0Pnv8egAtblp8Pbw6tior\nscUOVvnAN2x1lLu0dZB5m66kxWRmlwbIzSs5ltBsgA1Jx7ve3uhCwP9fkZMW\n9k6IQ6V2xsScohToyK2JNr6081dsuag0gdjPeKBEdvQ6CIvRQ302TdGXgdlT\nGM92TDxvGyIt4eBdtwOvhyGpkQwR6DCXEOoAKBzo3A7gG3Us4JVm088Omnf2\n/k6DMWvTw0GriA1+s1pVuM1BZoHFsaIYcp7fepWq10nB0F0fMmOZJpWDrJ3d\nASyCoIp9ImqTeHLnddH6XasMla5CeAdWd/pj9a9jI52eSKQh0l5vYRrg7Ztw\n7XAp\r\n=6sMS\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDXkocCTwgBOy88d6vNDeMUWRjEk2CudeMFLvRDL2DlqwIgZ9/rwm6qzRl5S6Jb/e7dbNof5mhWHgNUIRt+hFhkhn0="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.12.0-alpha-202007130908_1594631284237_0.48657220028574"},"_hasShrinkwrap":false},"0.12.0":{"name":"symbol-hd-wallets","version":"0.12.0","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.20.6","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"9047495d4e749ef6a0571e9ace0185695cbfa0cb","_id":"symbol-hd-wallets@0.12.0","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-LZSKSxEFcKNfXywijcTYFRN/KTaN19viNoJmNafDbAsD880/hnRWWsDYQnXR0IRjUi+Ry8kn4XJLUz0t34pthQ==","shasum":"9bc8392c263fcd11269479867cd499c19179ba48","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.12.0.tgz","fileCount":48,"unpackedSize":201874,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDCTGCRA9TVsSAnZWagAAByMP/AoEUEA0Wd1NV9shdDa+\nRcUbXufuLunyoA17JAQvu0lXHiyWuevAQetpYS7uIQaBR8zkE3K0MYbpjTE1\n9zElnDKq8GZjtcfnne1GUYTSKvC3I6XS5OZz0ffyo1IsacgiAH44b7UPp/+A\n6C4GKKffLLkJEDXzTy89Qr1gOJNfbmlnJw0wI2DyKaE3qOBVZSkxri7ZOxke\ndDGfg49v+Sfz7QZDuYtioI6dP/KsxVcOJU1UvWr9TpEVzCbf/wC/vZCiO5kp\nvyLkZVTKmmk7c16s6LOxlKJE+5g+gqBlSL4ivs0t9Yt3mggLZ78oJJKCWjeY\nT23/GpZyNiegYqg5v+Co5Ocnj98ZWTHgEXYio01K8hOvm+tA68l90I9loCsc\nugxqQ/3dzbvV8GhhzWvGlmP7eng6oTxh8L7EL83EJzLqnNZdESYgdhVRFcO1\nfOtZVuOlpzjK9xoA7jaVu3lDLZKKc+N78zGmlCIO6S4RmZwSOq/1cpuBcM2T\npDvLVGt+63zXGaMbipkX+ESDtweIC5n0x2mHySxn/WnxsDTBAOjAmLZyGYtO\njwS7Bekd3bnOmooZ01wbW/4YyQzCfXc5oOgUFf9H0nAUAO/iCZe2x5koHRW4\ntrP+2K0cxDW4aq3Ir0TYn95a47Dohd6JT9TW+U9xt/aw3e2HLv4RvPbvGXJQ\nHQO1\r\n=8/MV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQDNmSf9KeNpJa5NeOJpvhU59SAC5O8XvprpOT+zX3v7GQIgKrtZayKPWhSmnO/GfjJ74oM3evbPwcRKANI84Y5XBZE="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.12.0_1594631366307_0.8790137218935492"},"_hasShrinkwrap":false},"0.12.1-alpha-202007130911":{"name":"symbol-hd-wallets","version":"0.12.1-alpha-202007130911","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.20.6","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"acdd40014f27e2c9ccd009456eef821a3cdae4e7","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemfoundation/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemfoundation/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nThis project is developed and maintained by NEM Foundation.\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemfoundation/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemfoundation/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.12.1-alpha-202007130911","_nodeVersion":"12.18.2","_npmVersion":"6.14.5","dist":{"integrity":"sha512-6lya4I/jBT9WAe0SEPgUaIn1yyB1emk9PTPf9t2Auax+7xqtMd36lLBQpPaWK+7NptGKjPtJlbj1ebX91NwmJA==","shasum":"89583ba41ae99b6da92f4f880faf700f6335ea8b","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.12.1-alpha-202007130911.tgz","fileCount":48,"unpackedSize":201893,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfDCUuCRA9TVsSAnZWagAAHBUQAJ1OQkcpUA/zs+2pvy8i\nWaMEMaB5/fdiLs9dyJZHREtTutG5yuOjIPyiMHTVyf1XYDpreF4I3SSg8mIV\nUykyLb/ZUTSM0Bp3K1pgzP2iajaUpoF6hrpQRQfH9glGXeA1UfX17q5XXcuZ\neNFjgLSSnUzaGnOxnOikn8KfcGci/zFHysbw+1QSg7Un88Tys/ZN+SApi+tU\nEWoeXcecWEX+ZidU1DuE7WCd641ItUxHcZs/uCtAa3mHsjwtrPGtSbKptI6K\nf2SoFOg1RP5Bhlh5q272lgwxJzYUslgzLFIC5Vjp325zXvYp9uxqJXlGOC5t\nVnFG3kBGj+aeN6C1VXTSKUk6+sTsMVfZvlVaxDQyACFamxU+L+I/4TEThye7\nY8G4XA5SVxH0mgCIQmU89+/yeafhFkcEkNtIcyN6A7doSb2jz2X+NU+b9Ffk\nulzfde75gPR9IIHevobt7RUHjzVzLAc5gCYD29K/iSDdQDnYtA2FCLbluZ88\nq2DS3xW2btj4AVv2NptRuq1CzqvR2RtVM8LmvO0b6B7jlEzCtO99G/1ngSLw\nuEIkwdEGfBxIvQBi6/NczEKVFl0vLBgtBDuH8CpfBcRwUZFyaL2tlXQ+A6XJ\nIUzKy1AratPw7eksfQthvhAjLFbllqc7thG/BQakUvtqzax1vtjhewL936Pa\ntPvD\r\n=/dLr\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIGzxrZ+coYC1u231er6CEfxO7v9MwnmPj7Dt3ysLRjAsAiEAmnUYSdIiTIOFVLXtV74AxU13YBpboQbUxv1OeNsQs5I="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.12.1-alpha-202007130911_1594631470571_0.08561557383417284"},"_hasShrinkwrap":false},"0.12.1-alpha-202007231110":{"name":"symbol-hd-wallets","version":"0.12.1-alpha-202007231110","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.20.6","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemfoundation/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemfoundation/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemfoundation/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"2796af7fcab544eb2308106d28719c709b809c09","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.12.1-alpha-202007231110","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-CVYs/kDOaZyc2t8QXwA7/rCgAMPo3k6CbZvg1KwA4Hgm7NAkdoTbHILMehyViZo2/ISsggzeJUUXtJETtPsYlQ==","shasum":"820feee734d6cb212e2412316cddff75d8550508","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.12.1-alpha-202007231110.tgz","fileCount":48,"unpackedSize":201808,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGXA0CRA9TVsSAnZWagAA7gQP/0WVznKy6dpFt4Aew83B\nTS0HvNmdYKAkWsqHvbJ/vNilX2yzDyCu2KbsJoRHpj6B7eTKZSRTX+If3Yy8\nBP+n+yGlbYBRF1mzihIPfp9eYz2W9zHLAU6Wdsu34u+x62/BAW3OPQYPQsS3\nV4C4WZflLtiaOPH1oRbJ5r/DvYxlAopeatkipYIVkU2F900Tiyc8JnT/rxh/\nMlypj8XVhCZByLMGcl6o57xLyML5V2uZHSuoPvciZfDPNdk8GtphZ/cPg16+\nEfiXnUBLtgFeSaKz1hpDhwBQVXcO6CWyI6EEWyVrK3beEUY/OAWirn0iki/i\nlHEUtb64Bydgptk5Lm+4PkhGCvMk1YtEukXhsNKtSlBYH+J1QidQR6slR0GG\nlkyL5617Xz4tizkSqRDDlpzTuYHboyGFv7fTaW8JGHSsTq8aBRKqRTpRk42q\nUwylMer9NNf2YZTBoJAEMzK7HVgqjOzJ9Y5nCMDUIa7cPwigPYjgtQqGFvED\nwKtwNM/ftLGQGYVvJuaJRhDt360xkpXrrhT05xmH3p/Hmf1kvsrPlJW16Bob\n5maBt14nE43o5fc0oNDDy6i8x/L079WNotXeKaQuwzK5rqqWlZKKfDy+Dnsb\nO6NaoWBK1dpH/416SugxPrsC4JCG+BR7Fyh1AILBRBOWWBe5ar/0RVwRHcO0\nZbpb\r\n=4BDb\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDsmv2pDpdi+Sdm6waKoyn2BvzQj2BD9b0ipHxQUGnxwQIhAPjgsMuBgEQo1I5VND3FMFAcEClkxFDWs2tpUPddrLKo"}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.12.1-alpha-202007231110_1595502643886_0.9382296750957557"},"_hasShrinkwrap":false},"0.12.1-alpha-202007231111":{"name":"symbol-hd-wallets","version":"0.12.1-alpha-202007231111","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.20.6","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"8e0d9a1aed1b66b802b7b47650bc165944a1e536","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.12.1-alpha-202007231111","_nodeVersion":"12.18.3","_npmVersion":"6.14.6","dist":{"integrity":"sha512-7F/IH1wO6RjK+e31IP41YgVAN0mUT6YAYvaqKmMo2eSqYm7hYTcrN7R93TM7V9X7Hdr1gedzeWw2ZfylkibfIA==","shasum":"05465ae1049e9a726220c36587410ff4445d1c85","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.12.1-alpha-202007231111.tgz","fileCount":48,"unpackedSize":201790,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.4\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfGXBeCRA9TVsSAnZWagAAAcEP/36qiPyYOdarZ/gj1mXJ\nTJQjay5R/vr9300UO/IalisgJJhiqcEcHHKL0dvtnK5EEP5tjI0kq0WnUvw9\n49o0/4Jr5CrOnukZcKkprOZPDGlhE3pwkmpyabA5+F7zBThCJAFZr6UBbMUI\nNs6uBZ/1lrUTB2FlLClwwENo/wAqECd5MYdVCmNCaLMa97T3DuVQKUSP1mcg\nbrJpi2bTJ9pTzuTtgFdnRAXZgu59JXulz0CHgnGLXFXwPVpSfx99Fbv9MmIF\nNuo19UHLi9Vp6r+bwcD9FnzVOTtRnKDf2djwJ+1sJywCqety5GXQQPJC9zi4\nMtfIMXFj0ZQtOtOEO6riKECTkr7UuL5+URojMyTsyxmIWHQe7RdqgNXsJCgf\nBuJ0PkkpDHHdqHQv8Gze/ZEjl9xo8NJl0wMhqGRPJHiefgjLtQWbXK5V382h\n7+fr3dEvrCceujzNpBTlw3fWFFl1FaFbJea2dxJN8Cs5ztJC/MQ5LtR0ZcBh\nXMKVlromVZGkXsRd9QZzyxpB0qGOGoA9xvnUrtpjq9iy6fys5qQMsfQ5Z5BZ\n/Z97j7gCGhaMP+AqrZG++Yw6fpVwN6R3RUdECk82u4gPy511kUAdbDwz0Vh3\nhk6iadp2KX6TP4asHWSu4yJrI7P1iDAQUtEKg70dcvTbQQGSHo/HbinkXQ2G\nCRB2\r\n=mIeM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIECk9qCtviEsDdRaTWZGyJYVUM+yf6vk3JcludI45cg3AiEAqXFI5ftQ+qdTyWe9l99GyZN0HxtL3b+s5RlTV6LwnfI="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"}],"_npmUser":{"name":"nemfoundation","email":"devs@nem.foundation"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.12.1-alpha-202007231111_1595502686236_0.2586222879914697"},"_hasShrinkwrap":false},"0.12.1":{"name":"symbol-hd-wallets","version":"0.12.1","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.20.8-alpha-202009180859","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","gitHead":"a732fbb5b085ddf415ca66abca1ab02876ed74c9","_id":"symbol-hd-wallets@0.12.1","_npmVersion":"6.5.0","_nodeVersion":"11.9.0","_npmUser":{"name":"evias.be","email":"greg@evias.be"},"dist":{"integrity":"sha512-zwo7b74nmm6EUGli+iTwi5K7RDDs9vNw+8KqWdIgcOqQZw8W+abVW2lMl2ilbWdg74ZLe6bRDbT4edfl1haFMg==","shasum":"7a97d4b7bf4501935a785036a1e589dd979e29bc","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.12.1.tgz","fileCount":48,"unpackedSize":201835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfbSrrCRA9TVsSAnZWagAAY7sP/0U3pCIzCqziBdXEEFaa\n0uADBwqHjSZ5qDQQ85KPYevQHjgF8jmYaiUED+EnYnRDz8A88wjk0p8mrdqc\nAcW4cKeIC+t1vGRXNuKcwzY2Omfp1GeZMtxVWUdFmlhDl6ZCll3VC6ZMohQP\nnnhTJUN/BqYOGD7J/bMo3ZhOlIyb8iR1VsC6SH9oniehB+7mSmCUrHPgDh/x\nLKrmNkXi68vIHQy+Ege/krgV1EqefZWdD7NpQKyr85Z3zfStNoE9jtpAEJP+\nuPZN6R1Tyj2WhzfwTUDh7Wo053YNgsuliUfABsHMOnFyM3d9sT4BcGRVFCOa\nYeH6CYjahgkIQnDkmQ6iXhDaXd5H6u5tQrA4C8eCVcsHKDcMLM7MzdMh7NNf\nVkJU+OQS6l+N9mimmyHuCG9KUhrWmUFF2hSaDx06kTkFkrzZn0zLaLSQygVP\nzHGYaalKf784jHQHiJPfsacIoD6o9vZtat52AvWRWM/E5TCVsdi4YOpYQlCM\nZpQlZZ6qgzQlCt+kQjWYbGFrGDrejC7wwbtZNfqkUT2tj9DED7e3ij6lPTho\nXDZHc5oKBxdRu6zg/DVLD6a/0qx+A/3iFXi6ib+BEfOTq7+JKibmw4TOr0cn\nUWdlWOgbZw5MwEKf/41CB57o5HPoQjE5kDex9SXbAfU2JRIYbJ2zRgowF+FW\nYEwq\r\n=3rLK\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCrsiU9sgSeG9kUUOD1VhPUtnIn+mdct5W+bo0fNQp9HgIgIwF21L+5ks8GmKYWTO98vjLG+3LmWG+alRqLOOe5ifY="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.12.1_1600989930953_0.9838975746462544"},"_hasShrinkwrap":false},"0.13.0":{"name":"symbol-hd-wallets","version":"0.13.0","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.21.0","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"39fe89248dc66bc48bd391efe9c5c18aa8302a2f","_id":"symbol-hd-wallets@0.13.0","_nodeVersion":"14.5.0","_npmVersion":"6.14.5","dist":{"integrity":"sha512-hu/+j4Bvsr5sWMwoEbdYAriQwcHTxtm4NUXF8z/HqSLZOa2euOgZsvP3KHhE4M4oN/GuA5CdrIVIC3qn4uyihg==","shasum":"405c3701ba0695af13bd22c6418f8d0254a6919e","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.13.0.tgz","fileCount":48,"unpackedSize":201816,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfczUPCRA9TVsSAnZWagAA28QP/iWX7PjnAgEo1q3fyME8\n2AeG3cshsB8+XXxAgdI7Y4wZX/RojMyHJ0+JKemzgIB9SNpQl6mwZ8bVD74I\nTanALbQyaqUOE2gi87+a7y4Oyt9OEkWBjP11o1ARx4UYPe3ZN++x/kwOAac3\nQQxyF5DikQcUItQdHWtQz6BA9t2EKJz+U43mIVQkeUJeppy2osZATBXl2DXM\nj/9OAe1stratn9NyFX0TzIuerFE8L7ALyHqrCZAmdJl3mko8WQ/QeIDtoQZu\n6vBkNzCDXXYj6tOQYShLAX8Jv+MnqKU8cik1ehtCdmObQKvWoXagxO4Xmcvl\nMwzb6MPCtkPf6t3NaXHaHHQ8gfpKZio9GRAXqSbtoHux0wh7bKYhqzmWKkk0\nvlUtkPQWZA6GWPs7dJgaKvEWgG/j1hKrWGsPhzN0/CM/VxqBwFUzexByn85U\nUyGOua2g6zP0yXB7clvmQepaIFoCQnPW5GAsHTXi2p7mjZwvVUI+XME8TpEj\nPgO2diQZm/9gk2ZADraVkeAy+FOTfWaf4Maf/Uh9j6QowjAn1IOi1G7ltAhF\n6s1wU38WTa28NKxbjjFqDEEUChGMPVitDDXnwjVj3opEAnWkccHg6XSXKyuQ\nEH7O2G3/C2lp+wp/QMh3y4zjDBjEeKn9ybvx1lTfzVE5IqPz4hYMN7/cNKDI\nb63D\r\n=lJuL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQD4InfVJ/c5Mn46Q4jOJ+pkXbvjvVXZfYKXfTC/WsY0rAIga17epBTYxBbn+n7EljFrXzmkXSfpSb6qJBUuPG82WAo="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmUser":{"name":"evias.be","email":"greg@evias.be"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.13.0_1601385742760_0.5492342174461342"},"_hasShrinkwrap":false},"0.13.0-alpha-202009291322":{"name":"symbol-hd-wallets","version":"0.13.0-alpha-202009291322","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.21.0","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"39fe89248dc66bc48bd391efe9c5c18aa8302a2f","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/43\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.13.0-alpha-202009291322","_nodeVersion":"12.18.4","_npmVersion":"6.14.6","dist":{"integrity":"sha512-pc9M3/tdyerCe3Q73gAdOh6k5zAEQDGB3ZxzftRltqQN4ORrJiuS5ElVVsNChbHqk7ret7JbUuGQNDy3dBROFw==","shasum":"cb1945539f585757983b7fc208540db446736e71","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.13.0-alpha-202009291322.tgz","fileCount":48,"unpackedSize":201835,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfczUaCRA9TVsSAnZWagAA/qAQAJ+6Knz+Le7TjnkoD+mf\nBdNy7JI552sWe6SIpS/1fHiNJgsfc/Bix4kiMLWxBPTb9MOsVu3c9e3FbN0i\n1sWVZoJTnz9VYey+VbCJfF6wrjwsBrQtcyIswNs762HVYGem0N5X9WvCCKQ2\n+T+98l8kSGYaqjNsVItHzVHS8Jqa8n8jqVwmVCoq5k8qiaw/wNQ0doGFzD/p\nIRN1T7by6feoZVRtgboXvZzBX59PQdQZVk65aGcErSWIIQGXVr880CaSNSF4\n/HB0J06obPmS3pyYSL0qioPNpMXHCcmfoYsqA06wqh27pGCqVPFcRfcMwv6L\nFmJaAVOxLv4/y2UMCzHCF4ol+seS8xo4ViMB4d46pPnvzfSWhfy1dETxrObT\n2cd7BejKhdfN8jg8oDEZSOXLe2MXmHKqx15wEXreNIBhEQ67Lzs3o2ayET4X\n+SnFxnHS4uzvO2UjMyu6NM5DviwJl9gu4j3tHOFn6P4VNcN6NS9My/XNwNlz\noyTpKG1GQdTH4K2HiHTquHGIqMo8p5xHiMzmFQ/CZsNKMngAb+r8byR4vOBn\nHtvNxMHvPa5SIqLma6CecObaogGrpLoSTf697tYkD8nW/sUOEk+Bp7BdkMT2\nP2k1uJrAh5kCDyBcl5Awwp+whBW6+S/rugiExItzWKoxckIwTMRV5pKzixvl\nmsh+\r\n=ikBM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCTeTdLF4a+KXfFB+YsvkT/KCvbFvauNAa6QuMqg+1upQIhAKqVqaq8e2I5D0UdRrNWWZcl17Dvtq1x0KqTO/Kt3UWG"}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.13.0-alpha-202009291322_1601385753823_0.4512731574352533"},"_hasShrinkwrap":false},"0.13.0-alpha-202010221454":{"name":"symbol-hd-wallets","version":"0.13.0-alpha-202010221454","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","js-sha3":"^0.8.0","symbol-sdk":"^0.21.0","rxjs":"^6.5.4","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"89ad78df10733a0f8f47d2ca6c5acd32dfd3c362","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.13.0-alpha-202010221454","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-L0/4woMnUESKPM2tXjX8RXbTf1TCDYbVFV/4P5SVjuZ3SEqLXMvt0OfTkNzCp2Aom3YDOS7Q2vaZ/kE8sA8p9Q==","shasum":"76355203d5ca9417aacfbc5d4c577dc6e5ab193b","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.13.0-alpha-202010221454.tgz","fileCount":48,"unpackedSize":201867,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfkZ00CRA9TVsSAnZWagAAKJIQAJihdWBM6MCN88d/OtFk\nLg+KKHupN5a3oj+/jVgsurZyqKBRYG8dn0+EKpx1vGqD37ybn4Z4GgPZANcv\n3hn8SpnfIVUL70UFh2zt3SnVxDxaLwmNdh52nDnTavVDySFfvUOIUK339Ssl\nKQDx3QFGHVxFFxy1KKlAIBEwSh5d1O3J/qaxCEXcS6Aj1hli1vSMLzlACekd\n3ouvoFr4gh0+BTMiDJ5Dk6spGVB9oljs0GCQwDyT3kn3fC+bciray2g6KJi/\na/GCLFu6vRT9gLXU3u0dBKgdTERRpGeWHkNuDRrohFKfif3tpbTAekU1F+Aq\ne/7pd3f0nRRTL48dQISdAE66rAppSmL+TP6Bpc198KtT1b8m5RsX9x7bL62q\nYAItVoSD+8g6RQd9twNc07uxW1/oTb7N85a6Fxrq1xsmiuE3WFa4jBE257zT\nW+n82bUxeL4wEj71NfVOv/lGHdqjuBslVsud0opr7oZbDh9Ed+ZRb7KP6tyR\n86zSKGoJAqBRf5+HIYINkJ+UeUoEjzYHYCFSYdytqGcX0aVSlVfvig+8L56Z\nKVdm23bvLhe6ueFszMxndGOMvrHgFutPSSkMsXLZJdKbbEtaHIrOXvXKz7un\nmd4qy5wrQRSurCZGCxz/7+ROWagG19U3MBcSukUgHfW+zmTcT4Vc2Wmz0cx+\nGR9R\r\n=y0FV\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIGdp6YVj9Z5KJVQe8APstR4uCSSFGagewXSLhvxB/ZZdAiBm6UOK0Vdh4I2XBFTyl8y6UuY0pYXP0viP5SmbXR+DOQ=="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.13.0-alpha-202010221454_1603378484278_0.8803610301325502"},"_hasShrinkwrap":false},"0.14.0-alpha-202010231206":{"name":"symbol-hd-wallets","version":"0.14.0-alpha-202010231206","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"e06487405801a1458f31ed816e7de2a30aa6a2b7","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.0-alpha-202010231206","_nodeVersion":"12.19.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-+fFapo0tizhUXupTlTgB2QDzCEujKt7RH36qOXgsuB/bgn+5fnYujVjM3LnJdfMCEhQQaaljvkpgV0+MNF2bIg==","shasum":"ab4767a87bee089389c9c084f9d8fc83408d67d2","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.0-alpha-202010231206.tgz","fileCount":48,"unpackedSize":200083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJfksdXCRA9TVsSAnZWagAAvaUQAKBunat+0GHBNK8fDPXE\nT0To+kIUaDMeBw/swZbZmHvUKw4QX37Nouix1OZ3x68MWZi2AIdk5aBQit5k\nbMT/1hfexH3UajO+d5I2cJtO1CHCjfooNoDhYVzBWd8IGUWTTuZjEI99aaF5\n1aabewK725jKlz0IiGb3kML/cpjrvwHQIJQ8u8YYyKrYPQUE2luyvNsRhVNK\n5GGbF7rZpuTPEB1OIe3buUTK78kaOln+lYI+vo4D4sVAWLK24vKSe37neyVk\nvN7bm6bY4GSes+7EWCJU+Ql4nHqcVdEMD3fB0MImjpVTaFhlPC6gy+m0SMYa\nE9wq3iMRnJA4uMxFKQwKQly9iaUwfP4qo0QMDnAyA/eg2qfyKjyh5n/FkCUf\nzWDeCfm/WEh8B0e1S/pCbZRiOZ1jqOLhc5VBGKDntPkJyJwRZlhBmKQeYxLW\nPCYzZKU47+XmhLo7II6tj2ZZI4wPmy8io5+urWrDrF0MB7svITyilN244y+g\nC8b2LIqq4pxYuWseLzhCRYBkICQXc4UY6HQPVCrNIhSUUoGBVFM4x22r+0D9\nhBdeq4c+aiXdjaqzyYDhaTN2ZclPK5r/QflgtwgO7uipYqFyx1SbRpbSQL4o\n39A0Gje+AVWW9ZbqvH+U3Y/jSYFYMjlaQsGoDPsUFpSwWnRLQEpo+VFkcxjT\nUejV\r\n=J6mH\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIQCWuDKteiFGlSh5a1J6G1C9iCi/lGFZVDD7Nn1S45HVXAIgQSPcZf1ERYijQxa6ykURrhH7aeZ7DF9b/s7vw1iA8bI="}]},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.0-alpha-202010231206_1603454806839_0.14755094773171207"},"_hasShrinkwrap":false},"0.14.0-alpha-202012161037":{"name":"symbol-hd-wallets","version":"0.14.0-alpha-202012161037","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^5.2.0","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"294819a038a47eb942077713643987b6f57c3a30","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.0-alpha-202012161037","_nodeVersion":"12.20.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-Odq/Jcelpzzf6n6HXajKDRT8V8/4rDGuc8662/JPGJKstAvVXjpL2459qAGTok8RjSJSN5Qaw9sW+gir2nZv5g==","shasum":"8f60c8a4287ad7bf26519e896e8c19b3358b5038","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.0-alpha-202012161037.tgz","fileCount":48,"unpackedSize":200083,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf2eNhCRA9TVsSAnZWagAAWVwP/iE9deIb/D8lx8PsMfMj\nirSfhPN8d+a5Gktk7VJbU5H6pkYZXUpSYEKou8snhPzc6DCj8WSaQ1033UOq\nIPMwTov5S0okXbmoinzsRVhBLtGC4KLIow59lPHt/Dv2zNtpMO5NBN8vI1Yb\nPZldyDpj1DfxJlS/1bYNKqT1eKYB7Zavq7xQ77x4lqGZxEO+OOou+WJ0aVxx\ne1zrlBV5lgmrIqQhyCAxwd0uszdIfhG92OZ1tHk9JdMy6Qv+1qal2S9+JFoK\nzaff4PcisHFN97btnb7JvE3RFNeN2fp+2DZVPhhTpX3alWgHDeoG81srLS7z\nlNIDWmSGBY7IqtVV0Z0f2yU3nPnhg0nCj2NJ/26H41wX13O3zS3hYinm0FQ6\npRjN7VocC52k3NXWT/+griKHUGOh/CS3e+36VYNcWFRd5QzAcvE3xL3n3xl/\nOA5YkTcvYNZKwquciGZeZl9l9O70vzpr4XZDPnhvxNoF7J9offsHHJUcBOBC\nccBVtbP83c8jriD2VJ2M3qVGgO2jJXzicSASzG9KNTge20OtCeliBfAgjTYF\n2axyITOofqi5hiOOv8bxTMML4m7dSXG4v4PQg6IWwILbZgpG1eeEC//J9m1o\n1r5UjFbZTnB4NZW90U/qc0mKglyvt4tj9DBrI6cgJv66WtyAKYSmQa8YXdNk\nwxrk\r\n=GrUL\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHpqbpE6oskVeeuVHJcugW7nK3imiFxp2hnqrBKn/mZoAiEA1ZQ/wvBV2eu05iP9YAV2hgeknSeDoksYFeEsXrisSCk="}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.0-alpha-202012161037_1608115040864_0.27822054445058986"},"_hasShrinkwrap":false},"0.14.0-alpha-202012221017":{"name":"symbol-hd-wallets","version":"0.14.0-alpha-202012221017","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/bip32":"^1.0.2","@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^8.2.1","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"be54a6e65043145d18fd6973fc7be9be7f1f2e2a","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.0-alpha-202012221017","_nodeVersion":"12.20.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-jcSrcreD48E0fKK6Zz/hzktYNPm3ORp1xmfU5UoVVKSB1Ui3voWiM9FgPMdOx7/LCAl849Jk3c4skD/ZjLh0Wg==","shasum":"d3147b95adb2e21e14464021ea043f701d18c690","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.0-alpha-202012221017.tgz","fileCount":48,"unpackedSize":200155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4ceqCRA9TVsSAnZWagAALPUP/3yjPHNAVitpLN9V4eF3\n7v4x8/dWuNAcIXTEt4rELqUV1x67dq0quRMhdlB0qZKgRGEepIAfh1bYg+aG\nFpwHTZ7UpbMRaoEpGycuSUd7z2lY4ztZcsuRXqWahh/276wb45NsvOR0fnWO\nHG3EqkyC+0bYsJPmOW716rGxOFVWnpNqf7GBS0CSvo85rnbWzhEeptbNbULR\nm8OW8mLPXYZEOJA3t4GCxkqp1fXvyF3u9332EinSsZi0QHXKWVlat43IkZ1L\nHa08n4rTbTg64g9UzfM+ire96S9H1zTEXPBEVw4GQF0d92oySkQ7Gk8Mu80G\nTY494CldFqj6+0+kAPF6OlFCMjmqMdJwuKJFa14NXuRxyip5ypauTSnTeCfh\nm6eBTOlQtfmZcj/ZSf+G84biodtrwnBTP/K/KD/wSX0/h8+/Tic8ZTNf/QHj\niTMWSj8jx5PuDwO/ttXIG6mI0Advgi3faDcxMm6o/SJwRuVhXrvvm1c3Vgql\nqvJOjYq4hhlDeKoNV8oS3Gosum/uDFI97ReFvsfVHCTWCGEdPS4yTEzzbLE6\nP2i8sSGZf5mv8rD8KlW2TWaHrs30FfTn4FuPsFLW0QFPxDH9HV66klVhBPwj\npbFM3CUFsDUmlMrmxkelrfjqAmlPwqyJzG03yDQHS7kIeQLaSw1UQHreuqLO\nKxL8\r\n=uWTy\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCMJ8SafACYMMn5GGPABLR1n+s4wjFempfBZ5hLEDXGHAIhALEIDMJTa4dcjiRY3QxxYQrsfYnD67GRcgPiuZOLk5Cu"}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.0-alpha-202012221017_1608632234529_0.9550887386056435"},"_hasShrinkwrap":false},"0.14.0":{"name":"symbol-hd-wallets","version":"0.14.0","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/bip32":"^1.0.2","@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^8.2.1","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"be54a6e65043145d18fd6973fc7be9be7f1f2e2a","_id":"symbol-hd-wallets@0.14.0","_nodeVersion":"12.20.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-JlhwrI5gfIFY0yzqfVCXeC01XlZVbTZwEvI5PnQwGuF1kr9Aiey/orEn3mdP9ij+lRj9ck7kH2O6uT2GIG5uMA==","shasum":"979b786603447053b8f6cc924f58fc4efb3d9ab4","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.0.tgz","fileCount":48,"unpackedSize":200136,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4cf9CRA9TVsSAnZWagAAqiYP/jirVY/65hZnKhPMjaQZ\nCHyNhO+ygRdQafMElElZt04LXP8CdHlkE6BpCEv4jv/QQYe2Gt9qensrbkiZ\nlliZTgi6GCCWz4CWuwx7j6HUnE0uyDcqGtpMY7k4LcpMzogtcwalPhKo1JW4\nv15xdyy4cbq4Cava69QwAgzgDTowMKW2/4VN5NfD7KjeFG9IjpLkxf7bkR/0\ntTIY/d7Qnzt4ObJ+qpB/VCZMlCeFYRyuzPI/MUHaUYxEF/w/CVyD+L32S5lJ\nuzrd4ijnEybUuCOZkXcqfMf4xI5RrswX44jlnmE/sGbiZbTwlXSAziT73pjL\n0wqKksyznwZV8x7y26kkD+FXGV9GhaK5+Hy5iICN5uvxJ5YPl6hutHgf0XHu\n1Q9MR3vpug5HbqCyB79etASuo4QQuYeQcELKSxpUGGqPlV7vUj8eSGbrxyt6\n31VevmzXjWn7WICyneD0/sU7iIjoL0AZ/8BZ4MBVESnh+nFrB+Tc61bs38N8\n/TyMG1DnbkVz19nxGkKgbrGQsCC0GEpE+s5RXHZmSQw3Xr4NT28eZAhB2M1N\ngALqIhXBJTknJnXxjngUQHkRa09SxSODYELf+oGrsGNvqXsnMtZw2vIx30wz\nYDJQnysgf5vwPFtCc9VPEsP01hktYwDdPjikQJ3oaSlclx5JxsV+zfT4XZFd\nQwUn\r\n=d9KX\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIDz18Cg2p8H16EfzZtc1mpT6mdjK+ATsFBR4PHqoY/DFAiEAwWpm8xlVdpQx8WEFxyP/+0dRP1fAE52JyEZTjiQnGLA="}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.0_1608632317299_0.8470606093127462"},"_hasShrinkwrap":false},"0.14.1-alpha-202012221022":{"name":"symbol-hd-wallets","version":"0.14.1-alpha-202012221022","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/bip32":"^1.0.2","@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^8.2.1","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"3901856f82cd87dd2538c8a3848eba1e8433b6e6","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (CATAPULT **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (CATAPULT **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (CATAPULT compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.1-alpha-202012221022","_nodeVersion":"12.20.0","_npmVersion":"6.14.8","dist":{"integrity":"sha512-OE1dc0Jw18EVI1IwDGW+6vqRrg/3SqSUKKlrB/qjfuoGAtvO42q/1xxWqsHbrZKvm+wf5PQTotCT2+DZzRJwuw==","shasum":"2028262899e875b59c81e61f9571e156c222ebb7","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.1-alpha-202012221022.tgz","fileCount":48,"unpackedSize":200155,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJf4cj3CRA9TVsSAnZWagAAecAQAKJkwJeQcz52eSGAfe1d\naV7Q+6vua61csKTvAkN9lqSrMRjdbGJ2wZWNjYjlhwDfU4KjTmuQcnB4bN4c\nxuco+kdqZjwjEMSPXrrsEuj/t18UTkNIgVDE6vIjZM3fu+nMXlEPN7pfyIsW\nU76+D+C3CcJTs12Yc5S2eJ9xoENk/IrjTPgVLxSNKe0DbMvvCELf48xqAZrM\nUtEkjL45434y3bNZ2MEWErec1lpTsvioa5zCIiWId60LClkwS84hD/IzIdeZ\nnAeh5T0+1Ca51wI6+zGprfkJNx/66g/YzFKhafUFKkzDPyN2Gt+AN/834ogV\n6vwZkTUcu7+DLPqgfMR4vkOMGbFAeeDEPRJvM3DfbwvAInZxaY2hI4pXniyN\naJYqWxPxb/8DPHzaY07ynYvtWiKasDO27ACsJUOBhw6xUSAkj4iiFjrD9vhE\n7lzOEzGFEb+X55Pp+/tJKkNJj2kn61WHfimeK5W2fHWc377TY3B7T4yFhwOB\n495jlvZK/ZkuoXSlx5jTDRdRd8CQ3bwEgovHh0exrBpLmnF8BZ8jBWOOyzLi\nb8FZVzleuULMwKfipKtZeEtuM3oG+R09+YdGVO+yWXXGRECdEH8+a9HDBM/Z\nyXoZ/u034QMktN0SVsc/suNy9hbmnjjTr21UQ1oGdoFJyL8MEYEAIW3iDmtJ\ntTD1\r\n=Ksl+\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEQCIBFySP9C60PEoA9AGBa0ny1DjG089Hu9OZwj7LINVGxTAiAwNIQ+GoQAH+yeYKIfL3bHQbv5VCfE55zcUi4BT8xXYw=="}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.1-alpha-202012221022_1608632566669_0.7695633645548645"},"_hasShrinkwrap":false},"0.14.1-alpha-202103051108":{"name":"symbol-hd-wallets","version":"0.14.1-alpha-202103051108","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/bip32":"^1.0.2","@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^8.2.1","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"5edbf921991a603cad933d3beae70cfd50b095fd","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (SYMBOL **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (SYMBOL **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (SYMBOL compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.1-alpha-202103051108","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-EF0ptcwJGdm7yF2CFAAhybN2f7EN9YlZU7OwjwJh7Ae23UeNB/dkJfxfQk//Tfor9776dksId3YdUsO2oD0T6A==","shasum":"bdd58271eda868569e759ae9ca8b643b8957e079","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.1-alpha-202103051108.tgz","fileCount":48,"unpackedSize":199329,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQhEbCRA9TVsSAnZWagAA4z4P/Ra3BLxBiRT9Lfd8FF/B\nqLxJroIyHk/4gdx+Iq2EjLbQO5he2WmtZNUIowvfQCMV/fapOuuTkt5zXu3l\nYBPeCb2yo+iynTsPTsofNVmAshbrKkxtKDhSPWzVUMpek1rgLlJcEQGLtgvL\nJCtsEpRGtOijyqDs1EbiF8eWrd36BTBZRQiO0fiS0aMz/lsh6YDZk9TNkSyO\nfQF8j3RwFUBiNF3xeGtQwa/jdgnC4TFf+lHccbuWq4ajsP1Nza5xb8o7ZIJn\nLtfD809X4MBK0lTMIOllutSF1qTyAGNmiePEYKaQvs7X/lNHH8PS8BugFsCy\ntOR6WLdF2bBdeeEM37E6/VmAX2/3koZXT3b1to6bePqfPs4B5WCWnQfDtYKD\nUL+Q7z8GvcX57JGtFrIhzn95y3JXJyydloO1/AqMFUA9wdxzi5uBXLGxF/FS\nrqwhFusSL2rYYnvQbeCyhPYZZ4jA8j7U5goPTkYh1/3cm+PptfFrBRuw7630\nwdR9LlIbuSQOJZxt9o9dFs1/iAuvsi9/D3zdDh2lSfNqGNAHaoqyDzSyFvSA\nKSm5OrfhqQGd394hfSZBM4EG00/ALc6eYZ5qR9BTrRhSmqOId8LvG8sV+/nU\nTYP/F/cSlk6LLES2jxr+1jfWIovQinr+TLfObXyWgOtKQmpxHLs/Y0PCeveN\nUsGu\r\n=BdMn\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBdCHZzpnEqbrwpqwtBvJB/QbwX51yXoPgFhQN/iv0P3AiEA+0mx+b0s/YVwRpvHRu7vfYKb7OAU0oiZV0bBQCcoU1I="}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.1-alpha-202103051108_1614942491352_0.018653714439816893"},"_hasShrinkwrap":false},"0.14.1-alpha-202103052158":{"name":"symbol-hd-wallets","version":"0.14.1-alpha-202103052158","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/bip32":"^1.0.2","@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^8.2.1","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","lint:fix":"tslint --fix --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"3da5ffea3bcae009fb26337ba40d962fe1a3ddb7","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (SYMBOL **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (SYMBOL **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (SYMBOL compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.1-alpha-202103052158","_nodeVersion":"12.21.0","_npmVersion":"6.14.11","dist":{"integrity":"sha512-nEKxRZxNhBWwMf5apisSFrXfExucMuDqme1Ke5/Q9v6E6wmQ22i+qBB1ni10Nzk4cHd9VGVTnXRAK0V+JnqqJA==","shasum":"93334e12553167ffc4efc9c033206bc6c3cedc2f","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.1-alpha-202103052158.tgz","fileCount":50,"unpackedSize":341664,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgQqmKCRA9TVsSAnZWagAAAOgP/3H7jmQFS60/yo+YsIZt\n8AIjSzSNHRLyBFucSopEU/AYcdk5mIKkpXMEDkJ3H+xBYl90s4zf5bMkrMDu\nr3//XbBN6lJHjWiqmIE3/Wo6Wsydg4RG2L5z+JEyZQ19+7jQGEntPBdo6TN+\nBc55dEL/v2+pTD7k7NoiNRJP+n4Fz7gp6cmyL088rQnJZoHD6wOeUs5uZ08K\nUljUIlNDTL+VQHhbDynwIwzCjh6+d3JWlNVmyW7bQ30I8FryZ1YiI4cHO1jf\nOQqA4ICWM9POQvoVEvBFebYSB4h4R4DzfLUvba9+HhuczxZ+HzROGjZA2XfF\nipGUZPeQaKr77JLnX60UNa+1Lo8tdpQwmTaKumLYDic2zEHyZgvwAIXAg99H\nOxCx5aTAwTeb3GUuvDpokmkooWjZQuPQ46o+Hru49s++MLZh+EE+CWLMiIg+\n56z5a7x75vgSThfdwSE6aC7sOeOkLhGdVI+JXSFmIH1UsNBHj7fBiRJHsJPQ\nmO7VxTyVl1PB8Ewu1rLmyQ6rCok5pZlvzuxVCSD993p0Hhz1EVsNxu0pVC/L\niIw3DMcVoPx/oNUaNzj2FTkfVSqi6Xwxu5Ps3/TvTACgrX34z5JCpuwoVvKi\nYiy5AuG+ZgWJcvjompjXYomJndCKrLUBaMuAK+0X9MDUc8wlJP7tvSRdsEnT\n7Mrk\r\n=seGt\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQCmFRJBbPMg1E/1bqgA4SnZHlHFiefm+4RWvk4KXQxZLgIhAKFCseIFkQ5kXIQUjLvarZSqDWvcSUxiKtZzdG488pZw"}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.1-alpha-202103052158_1614981514432_0.07211534745490122"},"_hasShrinkwrap":false},"0.14.1":{"name":"symbol-hd-wallets","version":"0.14.1","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/bip32":"^1.0.2","@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^8.2.1","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","lint:fix":"tslint --fix --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"3da5ffea3bcae009fb26337ba40d962fe1a3ddb7","_id":"symbol-hd-wallets@0.14.1","_nodeVersion":"12.22.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-jMYbVHlGtB9IiufME4nGDKEvYXz7e6YfBK0eulGhetMH/0TZ+qIomCmNaMU2EfJEeywo0Kb6TIMIN4AEq9ObBA==","shasum":"42d6855c622aa6e5b649553e47cbac2f8bd09957","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.1.tgz","fileCount":50,"unpackedSize":341645,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeF09CRA9TVsSAnZWagAAmbgP/j3bDliAFUu89fownKDP\njE5igB5skl8rv2CiK5G5UiFlLaYknaF8YbPa0D6RgrfjJoN+Ek8kPAjPLBNi\nIFHNWeswLkHR2lYyMXerEAqxXznk3VQ6UrINogU8AVDyqMpGQx7Y+f6CNlpx\ndP15D+DN7skLiPYGYJXhHBzWcNbB80P4vVvgIfIM8sn9uo/5PcrZEmIRqE5b\n5YbNF6IxwUlwkdJlqrmzM2f3H3Q3POkygBEBFAVU4/g4G9weqrn4oaADNum8\n83W2aXTg6PcmHUL9Nng3mRWyQDo/qtaJA/gghamF6bjhr4afQLxg3UiNTS9K\n7+Sb55C7rG8CysVO6R6w0vkRKu7N/rHBmneBgy9MevnyyDUQ/7QIyMLeHAcq\neiyJsLNVaGuw9nT04IwKIDJJrPvOmP7DResx1uMIrMoTm4mzGpfBbah4wzJW\nnnhCsvD+UoTpSwCDEk8R/QL7pJM1BYAr/lJc5XzSau8CSnJdj2xvQaiCUqhq\nCKWsP6yioW0W30FutkW9zv/mtCstVLNn+2McpxtUDmG6TRBcDca9U5u6jjwq\n5ormfXUMrJwOdBO+tMherikt0NRL2MVuNL/kdCyh2j2BuI/4oE0XlF5owV1i\nchGsVZtdgZmCw9OGQQLhFykHv6Mc+0sLoLm/hLvqM61cT0wH2mDc8Pq2KyRY\n9WV5\r\n=x87G\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIF+ZohWDREj7+RJsFr35+hHKXx7dKHX5IhGHC2c3xBpyAiEAjgUrv364Fjo2aCRBTa84r8T5Hx/j6/fMsq7ORrq9Roc="}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.1_1618500924997_0.9518971928671152"},"_hasShrinkwrap":false},"0.14.2-alpha-202104151539":{"name":"symbol-hd-wallets","version":"0.14.2-alpha-202104151539","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"bip32":"^1.0.4","bip39":"^3.0.2","bip44-constants":"^8.0.5","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.0.0","js-sha3":"^0.8.0","tiny-secp256k1":"^1.1.3","tweetnacl":"^1.0.3"},"devDependencies":{"@types/bip32":"^1.0.2","@types/chai":"^4.2.9","@types/mocha":"^5.2.7","chai":"^4.1.2","coveralls":"^3.0.9","mocha":"^8.2.1","nyc":"^14.1.1","symbol-sdk":"^0.21.0","ts-node":"^7.0.0","tslint":"^6.0.0","typedoc":"^0.15.0","typemoq":"^2.1.0","typescript":"^3.8.3"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","lint:fix":"tslint --fix --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"99fd898716ff49b4f310ea7ca22478d83f52a412","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (SYMBOL **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (SYMBOL **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (SYMBOL compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.2-alpha-202104151539","_nodeVersion":"12.22.1","_npmVersion":"6.14.12","dist":{"integrity":"sha512-zrr1Lw0a1aw//r5wf7evz3mi6dOHzZmVjGB2kqn8h8nGk96hXkZJHud0OrgXxH611A+HKQMG61HxghZE+s4LSg==","shasum":"cccf6362f051b5bfd8e2169c1975ec3324118139","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.2-alpha-202104151539.tgz","fileCount":50,"unpackedSize":341664,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJgeF5OCRA9TVsSAnZWagAAP1UP/Ay1p+YGg8HhaJMJM7RM\nxX2iorIduzV/CIJIDbnDUCawFyFbW1strnsd7yfdGyi52YratLwgMQ9wLJqM\n8LDSfYHwl6nNYVfZAVVaqTQvBXsWjndTQiWi+THQg1dz1H4LRnkrAT83iDWe\ndL07qT1aCLGqIelqVPjFxei7xuURu4aiRtKyRPNB9aHQ0VSyaSvM5Sdb7W9i\nBwssiFJzhaVdMO2TqrGiEJqTZjqEl0DRzSdCZs34v4nmeUCNua/IEjLqQRvJ\npq7fpP3MuMdqb6z3PhyMva3UU7wh2nvfSwwEOHvXPGh65S92e6qB0zogh35s\nukBpAIv2A28Q9ugS2fWdpiagdR1GmblXF4CV58zbU29SVIIqEKSTeC4ty7gT\ne4KGKpDs/x+4HagIFa5VSAvpjz9KZVIaARqA0SvHCQND4gCjWerGGKRTjyWf\nk+MmJZoS+RpIiH4h6Sa/T10ms828g7d9dLPPI8LXjO2yG8P/u8ndoObLqi0o\nFgCNQvJ7CtjdgQ6/fSc9A1W60ZmyUNXpu4djA7/y15mlZH0M6cvZH1d6NNKS\nAEE2rNDe2uMOM3g+5smVedE24XoDczMaR4FCvUspPkJlvBZAphMH6lpGqJxs\nNFrgl2Xx8jO8mpxuYTKtDjvoejmue0HxxlD4ehUxf1yPcjXWZzKfl/soQaqx\nZiCr\r\n=a6MO\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIHCDLgRbHIpolo7WhryQxPGHulzbKOB7IiPJpHyghzffAiEA/LZznaG+edpnw9I2OMikgW3lffQ5a0Erwm6NGMv60vU="}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.2-alpha-202104151539_1618501197654_0.45397354288194003"},"_hasShrinkwrap":false},"0.14.2-alpha-202112301503":{"name":"symbol-hd-wallets","version":"0.14.2-alpha-202112301503","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.4","bip44-constants":"^89.0.0","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.1.1","js-sha3":"^0.8.0","tiny-secp256k1":"^2.1.2","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.3.0","@types/mocha":"^9.0.0","chai":"^4.3.4","coveralls":"^3.1.1","mocha":"^9.1.3","nyc":"^15.1.0","symbol-sdk":"^1.0.3","ts-node":"^10.4.0","tslint":"^6.1.3","typedoc":"^0.22.10","typemoq":"^2.1.0","typescript":"^4.5.4"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","lint:fix":"tslint --fix --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --entryPointStrategy expand --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"f0ce390f1f9a88b4a087350488cf72991f7ce893","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (SYMBOL **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (SYMBOL **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (SYMBOL compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.2-alpha-202112301503","_nodeVersion":"12.22.8","_npmVersion":"6.14.15","dist":{"integrity":"sha512-/AmuwZlEVHFtL+1K+j7Wp65J0MRC0VP0iKUKsvzQeAOUyVu5ejX9oDFWPiHsICZY5psGrY8bbUAex7YCNiZ6XQ==","shasum":"d0f71fb4b00197dd6ec8e84fa0cd3168fc2705da","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.2-alpha-202112301503.tgz","fileCount":50,"unpackedSize":346500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzcpYCRA9TVsSAnZWagAAZfAP/0e+834igZdEYleCDDNm\nxNWv6DQfTmEl66uOgLj9AJgHeVpaEMgzZwbmxbte6ukrXmGfsprutOifxY25\nCH+sP0Ma2+9gSt2lAWd9F/av2o9iS03WXMp4u8a5hcBBKYc85rS/P5dtjFsq\nqd6M6hQft6i8pZqv084IjKEvvzXeFpjEY6jq3Ewn5g2rvDOLybHgdo76jpfj\n8IZQtJLCojq5meR6zQFbUCbKfC3nxtY78IbPmb/4GLfUeCTPC5ZFQDfTRIkp\nHft1rCezbL87DWQF7lk4bo2Na/5ROOUEeWvLyQrXxczk3J/DRgbNtFfILgw9\nooZK96szKYADyAgoS4G7AML3/16s5UfEsZcOijRTjv6QJu//SkPgFlS+p/Fw\nOMFuLFCmxjpdh7Ad5WN42WjFLArl7qS0d50uCjon7WXO4RJjaqf4GmUvTqEw\n0foW7laq5asykMLkPkjsFGntqqeWlkEOHjp+O47hBbX7MMWTxE5ElqM6AOOA\nulSPj8MpPDeQUOqI7yLFDUhyoBVDaTPUl1366GXQ9ZJMBu5YAYB3VhmQctLY\nUTtH4z/Mqa44XjSWU0N7vJg559pI0hihPW6FrPdKBn06o6PKXcoqb4mH55Io\nTxxlRhW8s63sYV2DpjonIaD1POZkBXEJ2/t218KlGD/A3Vwp4YkA+14v+TID\n707q\r\n=6OeM\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIG/N6biPWTnbMDFkF9SUIvhDAupWtt6nwkL3wvuoCxrgAiEAv5izS7DU0uHBmdoKOXBLTooSXfJf60qd2zmtkzUCMPk="}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.2-alpha-202112301503_1640876631874_0.904491502069817"},"_hasShrinkwrap":false},"0.14.2":{"name":"symbol-hd-wallets","version":"0.14.2","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.4","bip44-constants":"^89.0.0","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.1.1","js-sha3":"^0.8.0","tiny-secp256k1":"^2.1.2","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.3.0","@types/mocha":"^9.0.0","chai":"^4.3.4","coveralls":"^3.1.1","mocha":"^9.1.3","nyc":"^15.1.0","symbol-sdk":"^1.0.3","ts-node":"^10.4.0","tslint":"^6.1.3","typedoc":"^0.22.10","typemoq":"^2.1.0","typescript":"^4.5.4"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","lint:fix":"tslint --fix --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --entryPointStrategy expand --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"f0ce390f1f9a88b4a087350488cf72991f7ce893","_id":"symbol-hd-wallets@0.14.2","_nodeVersion":"12.22.8","_npmVersion":"6.14.15","dist":{"integrity":"sha512-0veAo28yWvP9GYtg1dfvSKtrYa0HSbsZi5xJCnp/frJWEkOdN5uyJL2FdpKYgyAf7TU7tNC/eM1EQf2eldQDBg==","shasum":"7ade636652ee4571f31214329e42810dcd2b2aa0","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.2.tgz","fileCount":50,"unpackedSize":346481,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzgrsCRA9TVsSAnZWagAAwRcQAJ+h+c+SQa2ViDa+anEI\n2mnPiFBA2AbKCthAosVuQMdk1MCCLlUk8Xc41lvub+t/oVnvAEF2fxyTzXbU\nT6BHzO8hokL83Rle3EBs5cCzam/tHvIyX/DYwGdC1ZWmtEeqf1QiPZewa0+d\nOQw8/rmXU+B4VPvwv1zAJn0ICSoAgkxV3Da1P2lla6srgTJjRdRjXww4bG1Y\n/e+ItklGmCOojHafiz0LhZfi79U7C9rck2BhUtrZzX94HDS1znw5qpPSjgZH\nVbMxC8JUyZX3iFndt7CKUU1JEoN/+bZT03xkqfxqDRU1dwkPR3jspKuryGQw\nB/F6t1OZ2hXwj/JSQUOpzbEVEdaOlgjBmwoesi7zslkitjGrMSD7vt4dKuYn\nKXZJfY9cVD/FZJYwCgY04jrk17Ldlqnq8gPSyBQGkEq71oiA6WmU1DcVv3CR\ntIzl3Lag0oUzqDRKF8fRPqOfY0+hf7yn7Gwq9K03z7p51u7xiiWQ9ycYEjIu\nKSfsLDjVt6r6ciY7M7wePsXmDVSK+sNZXhw9tbv7YUe3/bzPsaLguEdyKfwj\n+wFNxY9RjkbieW/kLu3d5ETB2BcV4EEBRuR/uhxxHvVnLpBpsIF0yfPVMqYw\nvuVIFQNzPeREGLPH3JmzKrZl5dx+2jnPvh+4XTNJE5GRWTHeBuiJ5Kw6jZre\necpv\r\n=8ZHY\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEUCIBpe3kVqZgVbiRGLI62+PRKPS4oO4YE3kv4X2x0n79miAiEA2X0Hg8oOFX1hyFLff9jhG0ppDEEon1Y8NLB5gY1O5TA="}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.2_1640893164018_0.49251496599175093"},"_hasShrinkwrap":false},"0.14.3-alpha-202112301944":{"name":"symbol-hd-wallets","version":"0.14.3-alpha-202112301944","description":"Symbol library to handle hyper-deterministic wallets","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"},"main":"dist/index.js","typings":"dist/index.d.ts","directories":{"test":"test"},"dependencies":{"@types/bip32":"^1.0.2","bip32":"^1.0.4","bip39":"^3.0.4","bip44-constants":"^89.0.0","bs58check":"^2.1.2","create-hash":"^1.2.0","create-hmac":"^1.1.7","crypto-js":"^4.1.1","js-sha3":"^0.8.0","tiny-secp256k1":"^2.1.2","tweetnacl":"^1.0.3"},"devDependencies":{"@types/chai":"^4.3.0","@types/mocha":"^9.0.0","chai":"^4.3.4","coveralls":"^3.1.1","mocha":"^9.1.3","nyc":"^15.1.0","symbol-sdk":"^1.0.3","ts-node":"^10.4.0","tslint":"^6.1.3","typedoc":"^0.22.10","typemoq":"^2.1.0","typescript":"^4.5.4"},"scripts":{"pretest":"npm run build","build":"rm -rf dist/ && tsc","lint:all":"tslint --project .","lint:fix":"tslint --fix --project .","test":"mocha --ui bdd --recursive ./dist/test","test:cov":"nyc --reporter=lcov --reporter=text-summary npm t","test:coveralls":"npm run test:cov | coveralls","coveralls-report":"cat ./coverage/lcov.info | coveralls","doc":"typedoc --entryPointStrategy expand --out \"ts-docs/$(npm run version --silent)\" src","version":"echo $npm_package_version"},"repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"license":"BSD-2-Clause","bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","nyc":{"exclude":["**/*.spec.js"]},"gitHead":"d0d68d9b07ed6de4422b16a46a5c70715353c100","readme":"# Symbol HD Wallets\n\n[![npm version](https://badge.fury.io/js/symbol-hd-wallets.svg)](https://badge.fury.io/js/symbol-hd-wallets)\n[![Build Status](https://travis-ci.com/nemtech/symbol-hd-wallets.svg?branch=master)](https://travis-ci.com/nemtech/symbol-hd-wallets)\n[![Slack](https://img.shields.io/badge/chat-on%20slack-green.svg)](https://nem2.slack.com/messages/CB0UU89GS//)\n\nHierarchical-deterministic (HD) wallets generator library for Symbol.\n\nThis is a PoC to validate the proposed [NIP6 Multi-Account Hierarchy for Deterministic Wallets](https://github.com/nemtech/NIP/issues/12). When stable, the repository will be moved to the [nemtech](https://github.com/nemtech) organization.\n\n**NOTE**: The author of this package cannot be held responsible for any loss of money or any malintentioned usage forms of this package. Please use this package with caution.\n\n## Requirements\n\n- Node.js 12 LTS\n\n## Installation\n\n`npm install symbol-hd-wallets`\n\n## Usage\n\n### Generating a mnemonic pass phrase\n\n```ts\n// examples/GeneratingAMnemonicPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// random 24-words mnemonic\nMnemonicPassPhrase.createRandom();\n\n// random 12-words mnemonic\nMnemonicPassPhrase.createRandom('english', 128);\n\n// random 24-words mnemonic with french wordlist\nMnemonicPassPhrase.createRandom('french');\n\n// random 24-words mnemonic with japanese wordlist\nMnemonicPassPhrase.createRandom('japanese');\n\n```\n\n### Generating a password-protected mnemonic pass phrase seed (for storage)\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed('your-password');\n\n```\n\n```ts\n// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: empty password for password-protected seed\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''\n\n```\n\n### Generating a root (master) extended key\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 2: generate BIP32 master seed for known pass phrase\nconst words = 'alpha pattern real admit vacuum wall ready code '\n    + 'correct program depend valid focus basket whisper firm '\n    + 'tray fit rally day dance demise engine mango';\nconst mnemonic = new MnemonicPassPhrase(words);\n\n// the following seed can be used with `ExtendedKey.createFromSeed()`\nconst bip32Seed = mnemonic.toSeed(); // using empty password\n\n```\n\n```ts\n// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts\n\nimport {MnemonicPassPhrase} from \"../src/MnemonicPassPhrase\";\n\n// Example 1: generate BIP32 master seed for random pass phrase\nconst mnemonic = MnemonicPassPhrase.createRandom();\nconst bip32Seed = mnemonic.toSeed();\n\n```\n\n### Generating a HD wallet (SYMBOL **mijin** and **mijinTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts\n\nimport {NetworkType} from 'symbol-sdk';\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Wallet} from \"../src/Wallet\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.MIJIN_TEST);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Generating a HD wallet (SYMBOL **public** and **publicTest** compatible)\n\n```ts\n// examples/GeneratingAHDWalletPublicNetworkCompatible.ts\n\nimport {Network} from \"../src/Network\";\nimport {NetworkType} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// get master account\nconst masterAccount = wallet.getAccount();\n\n// get DEFAULT ACCOUNT\nconst defaultAccount = wallet.getChildAccount();\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// get read-only wallet\nconst readOnlyWallet = new Wallet(xkey.getPublicNode());\nconst readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET);\n\n// get read-only DEFAULT ACCOUNT\nconst readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();\n\n```\n\n### Signing with a HD wallet (SYMBOL compatible)\n\n```ts\n// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts\n\nimport {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from \"symbol-sdk\";\nimport {Wallet} from \"../src/Wallet\";\nimport {ExtendedKey} from \"../src/ExtendedKey\";\nimport {Network} from \"../src/Network\";\n\nconst xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.SYMBOL);\nconst wallet = new Wallet(xkey);\n\n// derive specific child path\nconst childAccount = wallet.getChildAccount('m/44\\'/4343\\'/0\\'/0\\'/0\\'', NetworkType.TEST_NET);\n\n// create a transfer object\nconst transfer = TransferTransaction.create(\n    Deadline.create(),\n    Account.generateNewAccount(NetworkType.TEST_NET).address,\n    [],\n    EmptyMessage,\n    NetworkType.TEST_NET);\n\n// sign the transaction with derived account\nconst generationHash = ''; // replace with network generation hash\nconst signedTx = childAccount.sign(transfer, generationHash);\n\n```\n## Getting help\n\nUse the following available resources to get help:\n\n- [Symbol Documentation][docs]\n- Join the community [slack group (#sig-client)][slack] \n- If you found a bug, [open a new issue][issues]\n\n## Contributing\n\nContributions are welcome and appreciated. \nCheck [CONTRIBUTING](CONTRIBUTING.md) for information on how to contribute.\n\n## License\n\nCopyright (c) 2019, Grégory Saive\n\nLicensed under the [BSD-2 License](LICENSE).\n\n[self]: https://github.com/nemtech/symbol-hd-wallets\n[docs]: https://nemtech.github.io\n[issues]: https://github.com/nemtech/symbol-hd-wallets/issues\n[slack]: https://join.slack.com/t/nem2/shared_invite/enQtMzY4MDc2NTg0ODgyLWZmZWRiMjViYTVhZjEzOTA0MzUyMTA1NTA5OWQ0MWUzNTA4NjM5OTJhOGViOTBhNjkxYWVhMWRiZDRkOTE0YmU\n","readmeFilename":"README.md","_id":"symbol-hd-wallets@0.14.3-alpha-202112301944","_nodeVersion":"12.22.8","_npmVersion":"6.14.15","dist":{"integrity":"sha512-tsMf2qwAZipmwzc8RrfwrLw97YRphp+E7ZCLgPrBOe0mIyJ+kzgeRqT+/NNdKzsP3feKhpuA/gzyd+UHXcM2Xg==","shasum":"5f35a0c93d080cb8287173c53497cb81338f0a50","tarball":"https://registry.npmjs.org/symbol-hd-wallets/-/symbol-hd-wallets-0.14.3-alpha-202112301944.tgz","fileCount":50,"unpackedSize":346500,"npm-signature":"-----BEGIN PGP SIGNATURE-----\r\nVersion: OpenPGP.js v3.0.13\r\nComment: https://openpgpjs.org\r\n\r\nwsFcBAEBCAAQBQJhzgwYCRA9TVsSAnZWagAA/ZkP/RWcPkf/qigG3f3bxQs1\naLjbI4DvsmwFhvkWPbqmZ7NCspnDDDLZG3VkZM9/0qQSvSmWC0x7sZkEhxZ1\n/NX6N5q+p3D9updjK2kHQk+9R5GqvgPXL8IS1DMqOAsHU+I7f7Ovqn8rdKmR\nuPRUnYtIAFR7qXTWOoZUwb7DzFAONsPVEmL/jNLCA/Af6/T/r19ufAIB0Zqz\nnswKFM2sCJ3OP6lMarF40wk9Lb+OnBe892hMQoiu7rhW0blexWZeaZDo+f2P\n+5M8M2i5Jv47hy1IWk35N3uwETvvpW9cDNDr9vUtfb3FhruOugLG8RnEfdrW\nTzarhEKvX1GnFhrB9lCFVpyj1U5hKu+DiiUCKn0KHce/hlLDaOhbTk2A8kt4\nz87CZnCuu3/CzGVrt2g3ehPiHS6hW9/ZvuZomCGoqd+M3gPEsAAnxGacr1F8\nflricx4EgIQOclMV7SN38drl/kwxgGBsCOZUNo0KD4A4rIcE4ql3xwfsE+yA\n24/ni+qm4qGmd9V3gFKh3OppHRqwxrpwRhj2mf0+3+akQkFw0WXVhI78L9QV\nJemopyetEWCcVEPcrbxbefVZxbepcad9o3lnYk8/loCbBq9DsTmtiAqU6hRX\n/qtVpw2kwZ2UGkK70eAGDYCblUc/8A1lSIQWMYW+rmKvSTO/2Ly2R45o7gjT\ngBsp\r\n=ogXq\r\n-----END PGP SIGNATURE-----\r\n","signatures":[{"keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA","sig":"MEYCIQDeRF+kwP4wlASagAEeRDeNJU5LKlVo5zvfKccINlmTVQIhAKDBIW7185+Z1kJsyDmM2jY2fd+Pvyu9k2HGMVPBvoPe"}]},"_npmUser":{"name":"nemfoundation","email":"system@nem.software"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages","tmp":"tmp/symbol-hd-wallets_0.14.3-alpha-202112301944_1640893463890_0.9470510201804265"},"_hasShrinkwrap":false}},"time":{"created":"2020-03-03T15:45:20.702Z","0.9.1":"2020-03-03T15:45:20.842Z","modified":"2022-05-19T05:56:33.272Z","0.9.2":"2020-03-03T15:56:25.570Z","0.9.3-alpha-202004151535":"2020-04-15T15:35:03.672Z","0.9.3":"2020-04-17T11:43:38.371Z","0.9.4-alpha-202004171151":"2020-04-17T11:51:35.041Z","0.10.0-alpha-202004271648":"2020-04-27T16:48:14.737Z","0.10.0":"2020-04-27T16:54:03.888Z","0.10.1-alpha-202004271655":"2020-04-27T16:55:59.876Z","0.11.0-alpha-202005251410":"2020-05-25T14:10:06.448Z","0.11.0":"2020-05-25T14:12:01.555Z","0.11.1-alpha-202005251413":"2020-05-25T14:13:48.673Z","0.12.0-alpha-202007130854":"2020-07-13T08:55:01.383Z","0.12.0-alpha-202007130856":"2020-07-13T08:56:37.355Z","0.12.0-alpha-202007130908":"2020-07-13T09:08:04.411Z","0.12.0":"2020-07-13T09:09:26.423Z","0.12.1-alpha-202007130911":"2020-07-13T09:11:10.722Z","0.12.1-alpha-202007231110":"2020-07-23T11:10:44.065Z","0.12.1-alpha-202007231111":"2020-07-23T11:11:26.397Z","0.12.1":"2020-09-24T23:25:31.189Z","0.13.0":"2020-09-29T13:22:22.994Z","0.13.0-alpha-202009291322":"2020-09-29T13:22:33.998Z","0.13.0-alpha-202010221454":"2020-10-22T14:54:44.430Z","0.14.0-alpha-202010231206":"2020-10-23T12:06:46.951Z","0.14.0-alpha-202012161037":"2020-12-16T10:37:21.016Z","0.14.0-alpha-202012221017":"2020-12-22T10:17:14.699Z","0.14.0":"2020-12-22T10:18:37.497Z","0.14.1-alpha-202012221022":"2020-12-22T10:22:46.855Z","0.14.1-alpha-202103051108":"2021-03-05T11:08:11.476Z","0.14.1-alpha-202103052158":"2021-03-05T21:58:34.584Z","0.14.1":"2021-04-15T15:35:25.200Z","0.14.2-alpha-202104151539":"2021-04-15T15:39:57.803Z","0.14.2-alpha-202112301503":"2021-12-30T15:03:52.273Z","0.14.2":"2021-12-30T19:39:24.151Z","0.14.3-alpha-202112301944":"2021-12-30T19:44:24.047Z"},"maintainers":[{"name":"evias.be","email":"greg@evias.be"},{"name":"nemfoundation","email":"system@nem.software"}],"description":"Symbol library to handle hyper-deterministic wallets","homepage":"https://github.com/nemtech/symbol-hd-wallets#readme","repository":{"type":"git","url":"git+https://github.com/nemtech/symbol-hd-wallets.git"},"bugs":{"url":"https://github.com/nemtech/symbol-hd-wallets/issues"},"license":"BSD-2-Clause","readme":"","readmeFilename":"","author":{"name":"Grégory Saive from Using Blockchain Ltd","email":"greg@ubc.digital"}}