b27fa51092
* Chore/browser extension bootstrap (#3257) * init package * set up TS and Webpack * add eslint config * add prettier config * add react and mui theme * add CI * update mui theme version number * Chore/browser extension routes (#3327) * start routes * create layouts * add initial app routes * add initial app pages * add global types * create reuseable components * move password and mnemonic fields to shared react components package * refactor register routes * move client address component to shared package * move components to ui folder * create menu and appbar components * adjust layout components * add readme * use memory router * Feature/nym browser extension login and send (#3373) * init package * set up TS and Webpack * add eslint config * add prettier config * add react and mui theme * add CI * update mui theme version number * Chore/browser extension routes (#3327) * start routes * create layouts * add initial app routes * add initial app pages * add global types * create reuseable components * move password and mnemonic fields to shared react components package * refactor register routes * move client address component to shared package * move components to ui folder * create menu and appbar components * adjust layout components * add readme * use memory router * add extension to mono-repo config * fix webpack build * util functions * add TX type * refactor routes * refactor pages + add send page * add page layout for app pages * set up app context * app components * set up connection config * fix lint errors * Chore/browser extension bootstrap (#3257) * init package * set up TS and Webpack * add eslint config * add prettier config * add react and mui theme * add CI * update mui theme version number * Chore/browser extension routes (#3327) * start routes * create layouts * add initial app routes * add initial app pages * add global types * create reuseable components * move password and mnemonic fields to shared react components package * refactor register routes * move client address component to shared package * move components to ui folder * create menu and appbar components * adjust layout components * add readme * use memory router * add extension to mono-repo config * util functions * add TX type * refactor routes * refactor pages + add send page * add page layout for app pages * set up app context * app components * set up connection config * use fee simulation when sending tokens * use object argument for simulate send api * login validation + fee refinements * use components from shared components lib * add receive modal (#3408) * account storage via wasm * method to get all storage keys * Feature/nym browser extension password encryption (single account) (#3442) * build wasm * reuse components and state for password pages * refactor registration pages * use login with password * import storage as local package * add yarn preinstall script to ts lint gh action * install wasm-pack for CI * use @nym scope for ext storage package * introduced a call to check if database was already initialised (#3465) * introduced a call to check if database was already initialised * use extension storage method to check for db existance --------- Co-authored-by: fmtabbara <fmtabbara@hotmail.co.uk> * introduced mnemonic key existence check (#3462) * Browser extension - Multi-accounts + view mnemonic action (#3488) * add UI for multi-accounts + add view mnemonic for accounts * refactor routes * set up import account * add account to existing wallet * check if account name exists before creating new one * handle password errors * add token to currency conversion * fixed ClientStorageError import path * fix CI * fix CI --------- Co-authored-by: Jędrzej Stuczyński <jedrzej.stuczynski@gmail.com>
73 lines
2.6 KiB
JavaScript
73 lines
2.6 KiB
JavaScript
|
|
import {
|
|
ExtensionStorage,
|
|
set_panic_hook
|
|
} from "@nymproject/storage-extension"
|
|
|
|
// // current limitation of rust-wasm for async stuff : (
|
|
// let client = null
|
|
|
|
async function main() {
|
|
// // sets up better stack traces in case of in-rust panics
|
|
set_panic_hook();
|
|
|
|
let storage = await new ExtensionStorage("my super duper password");
|
|
|
|
const goodMnemonic = "figure aspect pill salute review sponsor army city muffin engine army kid rival chunk unit insect blouse paddle velvet shallow box crawl grace never"
|
|
const badMnemonic = "foomp"
|
|
|
|
let readEmpty = await storage.read_mnemonic("my-mnemonic1")
|
|
console.log("value initial:", readEmpty);
|
|
|
|
try {
|
|
await storage.store_mnemonic("my-mnemonic1", badMnemonic);
|
|
} catch (e) {
|
|
console.log("store error: ",e)
|
|
}
|
|
|
|
let anotherRead = await storage.read_mnemonic("my-mnemonic1")
|
|
console.log("value bad store:", anotherRead);
|
|
|
|
await storage.store_mnemonic("my-mnemonic1", goodMnemonic)
|
|
|
|
let yetAnotherRead = await storage.read_mnemonic("my-mnemonic1")
|
|
console.log("value good store:", yetAnotherRead);
|
|
|
|
await storage.remove_mnemonic("my-mnemonic1")
|
|
|
|
let finalRead = await storage.read_mnemonic("my-mnemonic1")
|
|
console.log("value removed:", finalRead);
|
|
|
|
const anotherMnemonic = "salmon picture danger pill tomato hour hand chaos tray bargain frequent fuel scheme coil divert season lucky ginger mom stem mistake blanket lake suffer";
|
|
const oneMore = "cat quiz circle letter trade unhappy quarter garlic sting gravity zone stock scatter merge account barrel forward fame club chest camp under crop connect"
|
|
|
|
const key1 = "my-amazing-mnemonic"
|
|
const key2 = "my-other-mnemonic"
|
|
|
|
await storage.store_mnemonic(key1, anotherMnemonic)
|
|
await storage.store_mnemonic(key2, oneMore)
|
|
|
|
let allKeys = await storage.get_all_mnemonic_keys()
|
|
console.log("keys:", allKeys)
|
|
|
|
const anotherOne = "mammal fashion rice two marble high brain achieve first harsh infant timber flush cloud hunt address brand immune tip identify aspect call beyond once"
|
|
const anotherKey = "some-mnemonic"
|
|
|
|
let isPresent = await storage.has_mnemonic(anotherKey);
|
|
console.log("has mnemonic: ", isPresent)
|
|
|
|
await storage.store_mnemonic(anotherKey, anotherOne)
|
|
|
|
let isPresentNew = await storage.has_mnemonic(anotherKey);
|
|
console.log("has mnemonic: ", isPresentNew)
|
|
|
|
await storage.remove_mnemonic(anotherKey)
|
|
|
|
let isPresentEvenNewer = await storage.has_mnemonic(anotherKey);
|
|
console.log("has mnemonic: ", isPresentEvenNewer)
|
|
|
|
}
|
|
|
|
|
|
// Let's get started!
|
|
main(); |