UNPKG

@dashevo/wallet-lib

Version:
103 lines (80 loc) 5.87 kB
**Usage**: `new Wallet(walletOpts)` **Description**: This method creates a new Wallet. In Wallet-Lib, a Wallet is a manager that is tied to a passphrase/seed or privateKey and manage one or multiples Account from that. It's purpose is mainly to create or get an account, allowing multiple account to be tracked and tied from a single manager. Parameters: | parameters | type | required | Description | |------------------------------------------|--------------------|---------------------| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | | **walletOpts.network** | string/Network | no (def:'testnet') | Use either a string reference to Networks ('livenet', 'testnet') or it's Networks representation | | **walletOpts.mnemonic** | string/Mnemonic | no | If sets at null, generate a new mnemonic. If sets to a valid value, create wallet from mnemonic | | **walletOpts.passphrase** | string | no | If sets at null, generate a new privateKey. It sets to a valid privateKey, uses it (with the passphrase if provided) to unlock the seed | | **walletOpts.offlineMode** | boolean | no (def: false) | Set to true to not perform any request to the network | | **walletOpts.injectDefaultPlugins** | boolean | no (def: true) | Use to inject default plugins on loadup (BIP44Worker, ChainWorker and SyncWorker) | | **walletOpts.allowSensitiveOperations** | boolean | no (def: false) | If you want a special plugin to access the keychain or other sensitive operation, set this to true. | | **walletOpts.cache.addresses** | object | no | If you have your cache state somewhere else (fs) you can fetch and pass it along for faster sync-up | | **walletOpts.cache.transactions** | object | no | If you have your cache state somewhere else (fs) you can fetch and pass it along for faster sync-up | | **walletOpts.plugins** | Array | no | It you have some plugins, worker you want to pass to wallet-lib. You can pass them as constructor or initialized object | | **walletOpts.seed** | string | no | If you only have a seed representation, you can pass it instead of mnemonic to init the wallet from it | | **walletOpts.HDPrivateKey** | string/HDPrivateKey| no | If you only have a HDPrivateKey representation, you can pass it instead of mnemonic to init the wallet from it | | **walletOpts.HDPublicKey** | string/HDPublicKey | no | If you only have a HDPublicKey representation, you can pass it instead of mnemonic to init the wallet from it | | **walletOpts.privateKey** | string/PrivateKey | no | If you only have a PrivateKey representation, you can pass it instead of mnemonic to init the wallet from it | | **walletOpts.publicKey** | string/PublicKey | no | If you only have a PublicKey representation, you can pass it instead of mnemonic to init the wallet from it | N.B 1 : If both mnemonic, seed and privateKey are filled, only mnemonic will be used. If none is entered, the wallet will create a mnemonic. N.B 2 : When initialized from a `privateKey`, `publicKey` or an `HDPublicKey`, comportment of Wallet-lib differs slightly. - PrivateKey : There is no path in this mode. It's a unique public address. - PrivateKey : There is no path in this mode. It's a unique public address. Watch-only. - HDPublicKey : There is no signing in this mode. Watch-only. Returns : Wallet instance. **Examples** : ### Creation without a mnemonic (gets one generated) ```js const wallet = new Wallet(); ``` or ```js const wallet = new Wallet({ mnemonic: null }); console.log(wallet.exportWallet()); ``` In the case where you will want to have stronger entropy (have 24 words generated instead of 12), this snippet will allow to do that : ```js const { Mnemonic } = require('@dashevo/dashcore-lib'); const mnemonic = new Mnemonic(256).toString(); ``` ### Creation from Mnemonic ```js const wallet = new Wallet({ mnemonic: 'hole lesson insane entire dolphin scissors game dwarf polar ethics drip math' }) ``` ### Creation from HDPrivateKey ```js const wallet = new Wallet({ HDPrivateKey: 'tprv8ZgxMBicQKsPeWisxgPVWiXho8ozsAUqc3uvpAhBuoGvSTxqkxPZbTeG43mvgXn3iNfL3cBL1NmR4DaVoDBPMUXe1xeiLoc39jU9gRTVBd2' }) ``` ### Creation from HDPublicKey ```js const wallet = new Wallet({ HDPublicKey: 'tpubDEB6BgW9JvZRWVbFmwwGuJ2vifakABuxQWdY9yXbFC2rc3zagie1RkhwUEnahb1dzaapchEVeKqKcx99TzkjNvjXcmoQkLJwsYnA1J5bGNj' }) ``` ### Creation from Seed ```js const wallet = new Wallet({ seed: '436905e6756c24551bffaebe97d0ebd51b2fa027e838c18d45767bd833b02a80a1dd55728635b54f2b1dbed5963f4155e160ee1e96e2d67f7e8ac28557d87d96' }) ``` ### Creation from privateKey ```js const wallet = new Wallet({ privateKey: 'cR4t6evwVZoCp1JsLk4wURK4UmBCZzZotNzn9T1mhBT19SH9JtNt' }) ``` ### Creation from publicKey ```js const wallet = new Wallet({ HDPublicKey: 'tpubDEB6BgW9JvZRWVbFmwwGuJ2vifakABuxQWdY9yXbFC2rc3zagie1RkhwUEnahb1dzaapchEVeKqKcx99TzkjNvjXcmoQkLJwsYnA1J5bGNj' }) ```