Versión Beta de la Billetera de Escritorio v0.9.5
Nuevas Caracteristicas
- FormAccountUnlock: estandarice la práctica de desbloquear la cuenta en la aplicación
- FormTransactionBase: capa de abstracción base para formularios de transacción
- SignerSelector: selector de firmante de transacciones genérico, funciona con multigrado para cambiar los estados de activos propios
- Cambio general de rutas de archivos de vistas (* .vue) con resultado:
- Componentes en src / components /
- Diálogos modales en src / views / modals /
- Páginas en src / views / pages /
- Diseños en src / components /
- Formularios en src / views / forms /
- Se agregaron espacios de nombres vuex Store que administran los cambios de estado de la aplicación
- Se agregaron espacios de nombres vuex Store que administra solicitudes REST que cambian de estado (acción REST_ *)
- Se agregó src / core / database / con LocalStorageBackend, modelos y esquemas de tablas
- Se agregó una capa de abstracción de repositorio para trabajar con almacenamiento persistente
- Se agregaron implementaciones de capa empresarial en src / services / *
- Reescribió todos los nombres de ruta y use nombres de ruta en lugar de rutas para redireccionamientos
- Se agregaron métodos TransactionService que manejan la firma de la transacción
- Se agregaron métodos TransactionService que manejan la transmisión de transacciones
- Se agregaron acciones de tienda para una mejor reactividad entre los componentes.
- Tabla de base de datos de puntos finales agregada
- FormTransactionBase mejorado para utilizar el cambio de estado isCosignatoryMode
- Se agregó la creación automática de bloqueo de fondos para transacciones con múltiples firmas (agregado consolidado)
- Posibilidad agregada de agregar transacciones firmadas y en el escenario (ejemplo utilizado en FormMosaicDefinitionTransaction)
Problemas Conocidos
- Falta la configuración para la cosecha (enlace de cuenta y solicitudes de delegación persistentes)
Instalación de la Billetera Versión Beta
El autor no se hace responsable de ninguna pérdida de dinero o de cualquier forma de uso mal intencionado de este paquete. Utilice este paquete con precaución.
Generador de carteras HD NEM para generar carteras para la plataforma Symbol.
Este es un PoC para validar la propuesta Jerarquía de múltiples cuentas NIP6 para carteras deterministas. Cuando es estable, el repositorio se moverá a la organización nemtech.
Instalación
npm install nem2-hd-wallets
Ejemplos
Generar una frase mnemónica.
// examples/GeneratingAMnemonicPassPhrase.ts import {MnemonicPassPhrase} from 'nem2-hd-wallets'; // random 24-words mnemonic MnemonicPassPhrase.createRandom(); // random 12-words mnemonic MnemonicPassPhrase.createRandom('english', 128); // random 24-words mnemonic with french wordlist MnemonicPassPhrase.createRandom('french'); // random 24-words mnemonic with japanese wordlist MnemonicPassPhrase.createRandom('japanese');
Generar una contraseña mnemónica protegida (para almacenamiento)
// examples/GeneratePasswordProtectedSeedForRandomPassPhrase.ts import {MnemonicPassPhrase} from 'nem2-hd-wallets'; const mnemonic = MnemonicPassPhrase.createRandom(); const secureSeedHex = mnemonic.toSeed('your-password');
// examples/GeneratePasswordProtectedSeedForRandomPassPhraseEmptyPassword.ts // Example 2: empty password for password-protected seed import {MnemonicPassPhrase} from 'nem2-hd-wallets'; const mnemonic = MnemonicPassPhrase.createRandom(); const secureSeedHex = mnemonic.toSeed(); // omit password means empty password: ''
Generar una clave principal extendida
// examples/GeneratingARootMasterExtendedKeyForKnownPassPhrase.ts import {MnemonicPassPhrase} from 'nem2-hd-wallets'; // Example 2: generate BIP32 master seed for known pass phrase const words = 'alpha pattern real admit vacuum wall ready code ' + 'correct program depend valid focus basket whisper firm ' + 'tray fit rally day dance demise engine mango'; const mnemonic = new MnemonicPassPhrase(words); // the following seed can be used with `ExtendedKey.createFromSeed()` const bip32Seed = mnemonic.toSeed(); // using empty password
// examples/GeneratingARootMasterExtendedKeyForRandomPassPhrase.ts import {MnemonicPassPhrase} from 'nem2-hd-wallets'; // Example 1: generate BIP32 master seed for random pass phrase const mnemonic = MnemonicPassPhrase.createRandom(); const bip32Seed = mnemonic.toSeed();
Generando una billetera hiper-determinista (Publica Symbol y publicTest compatible)
// examples/GeneratingAHDWalletPrivateNetworkCompatible.ts import {ExtendedKey, Network, Wallet} from 'nem2-hd-wallets'; import {NetworkType} from 'nem2-sdk'; const xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT); const wallet = new Wallet(xkey); // get master account const masterAccount = wallet.getAccount(); // get DEFAULT ACCOUNT const defaultAccount = wallet.getChildAccount(); // derive specific child path const childAccount = wallet.getChildAccount('m/44\'/43\'/0\'/0\'/0\'', NetworkType.MIJIN_TEST); // get read-only wallet const readOnlyWallet = new Wallet(xkey.getPublicNode()); const readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.MIJIN_TEST); // get read-only DEFAULT ACCOUNT const readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();
Generar una billetera principal ( Compatible con Symbol publica y la testpublic)
// examples/GeneratingAHDWalletPublicNetworkCompatible.ts import {ExtendedKey, Network, Wallet} from 'nem2-hd-wallets'; import {NetworkType} from 'nem2-sdk'; const xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC); const wallet = new Wallet(xkey); // get master account const masterAccount = wallet.getAccount(); // get DEFAULT ACCOUNT const defaultAccount = wallet.getChildAccount(); // derive specific child path const childAccount = wallet.getChildAccount('m/44\'/43\'/0\'/0\'/0\'', NetworkType.TEST_NET); // get read-only wallet const readOnlyWallet = new Wallet(xkey.getPublicNode()); const readOnlyAccount = readOnlyWallet.getPublicAccount(NetworkType.TEST_NET); // get read-only DEFAULT ACCOUNT const readOnlyDefaultAccount = readOnlyWallet.getChildPublicAccount();
Firma con una billetera hiperdeterminada (compatible con Symbol)
// examples/SigningWithAHDWalletPrivateNetworkCompatible.ts import {ExtendedKey, Network, Wallet} from 'nem2-hd-wallets'; import {Account, Deadline, EmptyMessage, NetworkType, TransferTransaction} from "nem2-sdk"; const xkey = ExtendedKey.createFromSeed('000102030405060708090a0b0c0d0e0f', Network.CATAPULT_PUBLIC); const wallet = new Wallet(xkey); // derive specific child path const childAccount = wallet.getChildAccount('m/44\'/43\'/0\'/0\'/0\'', NetworkType.TEST_NET); // create a transfer object const transfer = TransferTransaction.create( Deadline.create(), Account.generateNewAccount(NetworkType.TEST_NET).address, [], EmptyMessage, NetworkType.TEST_NET); // sign the transaction with derived account const generationHash = ''; // replace with network generation hash const signedTx = childAccount.sign(transfer, generationHash);
Fuente: Github NEM , Github NEM