Files
nym/nym-browser-extension/storage/internal-dev/index.js
T
Fouad b27fa51092 Feature/nym browser extension (#3637)
* 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>
2023-07-07 11:02:05 +01:00

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();