]> zoso.dev Git - libnemo.git/commit
libname: A reimagining of the nanocurrency-web package.
authorChris Duncan <chris@zoso.dev>
Thu, 3 Oct 2024 09:10:17 +0000 (02:10 -0700)
committerChris Duncan <chris@zoso.dev>
Thu, 3 Oct 2024 09:10:17 +0000 (02:10 -0700)
commitcba3171ad4e0f3dcb0fd14f2ac4a45fa5c1a693f
treeb05834acf246356c3b5324d12b72fcfec1ccd42f
parent77b9554fb2a8a8eb3dd9dde5d5c04d51460577e8
libname: A reimagining of the nanocurrency-web package.

Greater Changes
* Completely replace crypto-js dependency with the browser native Web Crypto API.
* Overhaul wallet system to align more with object-oriented design and to consolidate related but separated functionality.
* Add support for Ledger hardware wallets.
* Encrypt wallet secrets by default on initialization, and add lock/unlock feature to encrypt/decrypt on-demand.
* Add rolodex feature to enable contact management including signature verification using contact name associated with a public key in your rolodex.
* Add online functions to interact with nodes like fetching account info, generating PoW, and sending blocks for processing.
* Add sweep feature similar to the offering from Nault which sends all funds in a specified range of accounts in a wallet to a specific address.
* Refactor key derivation functions to align closer with spec as designed in the relevant BIPs.
* Adopt GPLv3 license and achieve REUSE compliance.

Lesser Changes
* Refactor as ESM instead of CJS and build for ESMNext target to enable more modern browser features.
* Utilize browser native features like bigint instead of bignumber.js dependency.
* Deprecate 'box' feature and with it the dependency on byte-base64.
* Replace chai/mocha test framework with built-in Node.js test runner, and add tons of tests.
* Replace webpack (and dependency ts-loader) with esbuild which offers faster builds and minification.
* Add online function to get the next unopened account of a wallet with the idea that a business could distribute addresses to customers in a custodial manner.
* Add tons of type checking to validate inputs and outputs.
* Deprecate lots of unused code or replace with native features.
56 files changed:
.gitignore
.npmignore [deleted file]
.travis.yml [deleted file]
AUTHORS.md [new file with mode: 0644]
LICENSE [deleted file]
LICENSES/GPL-3.0-or-later.txt [new file with mode: 0644]
LICENSES/MIT.txt [new file with mode: 0644]
README.md
index.ts [deleted file]
lib/address-generator.ts [deleted file]
lib/address-importer.ts [deleted file]
lib/bip32-key-derivation.ts [deleted file]
lib/bip39-mnemonic.ts [deleted file]
lib/block-signer.ts [deleted file]
lib/box.ts [deleted file]
lib/ed25519.ts [deleted file]
lib/nano-address.ts [deleted file]
lib/nano-converter.ts [deleted file]
lib/signer.ts [deleted file]
lib/util/convert.ts [deleted file]
lib/util/curve25519.ts [deleted file]
lib/util/util.ts [deleted file]
package-lock.json
package-lock.json.license [new file with mode: 0644]
package.json
package.json.license [new file with mode: 0644]
src/lib/account.ts [new file with mode: 0644]
src/lib/bip32-key-derivation.ts [new file with mode: 0644]
src/lib/bip39-mnemonic.ts [new file with mode: 0644]
src/lib/bip39-wordlist.ts [moved from lib/words.ts with 98% similarity]
src/lib/block.ts [new file with mode: 0644]
src/lib/constants.ts [new file with mode: 0644]
src/lib/convert.ts [new file with mode: 0644]
src/lib/curve25519.ts [new file with mode: 0644]
src/lib/ed25519.ts [new file with mode: 0644]
src/lib/entropy.ts [new file with mode: 0644]
src/lib/ledger.ts [new file with mode: 0644]
src/lib/node.ts [new file with mode: 0644]
src/lib/rolodex.ts [new file with mode: 0644]
src/lib/safe.ts [new file with mode: 0644]
src/lib/tools.ts [new file with mode: 0644]
src/lib/wallet.ts [new file with mode: 0644]
src/main.ts [new file with mode: 0644]
test/TEST_VECTORS.js [new file with mode: 0644]
test/create-wallet.test.mjs [new file with mode: 0644]
test/derive-accounts.test.mjs [new file with mode: 0644]
test/import-wallet.test.mjs [new file with mode: 0644]
test/lock-unlock-wallet.mjs [new file with mode: 0644]
test/manage-rolodex.mjs [new file with mode: 0644]
test/refresh-accounts.test.mjs [new file with mode: 0644]
test/sign-blocks.test.mjs [new file with mode: 0644]
test/test.mjs [deleted file]
test/tools.test.mjs [new file with mode: 0644]
tsconfig.json
tsconfig.json.license [new file with mode: 0644]
webpack.config.js [deleted file]