
Research
Malicious npm Packages Impersonate Flashbots SDKs, Targeting Ethereum Wallet Credentials
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
@jharrilim/merkletree-js
Advanced tools
Merkle Tree for Javascript/Typescript on Node. Currently, browser is not supported. API documentation can be found here.
Build | Status | Coverage | Score | Downloads | Count |
---|---|---|---|---|---|
Overall | Codacy | NPM | |||
Node 8 | Coveralls | Github | |||
Node 9 | Codecov | ||||
Node 10 | |||||
Node 11 |
npm i @jharrilim/merkletree-js
To create a Merkle Tree, you may do so in one of the following ways:
import { MerkleTree } from '@jharrilim/merkletree-js';
// Creates a new instance of the MerkleTree
const newTree = MerkleTree.create();
You may create a MerkleTree with some data that you already have defined.
import { MerkleTree } from '@jharrilim/merkletree-js';
const data = [ 'some', 'data', { msg: 'of any type', except: 'no nulls, functions, or undefined' }, true ];
(async () => {
const newTree = await MerkleTree.createWith(data);
})().catch(_ => {});
To add data, you may use either #addNode to add one thing, or #addNodes to add multiple things.
import { MerkleTree } from '@jharrilim/merkletree-js';
export async function doCoolThings() {
const newTree = MerkleTree.create();
await newTree.addNodes(['hello', 'world']);
await newTree.addNode(42);
}
To make use of the merkle tree, you will want to compare data across multiple trees. You may do so by using MerkleTree#compareWith, or by using MerkleTree#computeRootHash and comparing the hash yourself:
import { MerkleTree } from '@jharrilim/merkletree-js';
export async function compareTrees() {
const sharedData = ['this', 'is', 'shared', 'data'];
const firstTree = await MerkleTree.createWith(sharedData);
const secondTree = await MerkleTree.createWith(sharedData);
// Does intermediate actions with the hashes
const attempt1 = await compareAndSave(firstTree, secondTree);
// Compare directly
const attempt2 = await firstTree.compareWith(secondTree);
return attempt1 && attempt2;
}
async function compareAndSave(firstTree, secondTree) { // This is not price matching
const firstTreeHash = await firstTree.computeRootHash();
const secondTreeHash = await secondTree.computeRootHash();
try {
// Perhaps do stuff such as
await SomeMongooseModel.save(firstTreeHash);
await SomeMongooseModel.save(secondTreeHash);
} catch (e) {
uhOhMadeAMistake(e);
return false;
}
return firstTreeHash === secondTreeHash;
}
FAQs
JavaScript implementation of a Merkle Tree.
The npm package @jharrilim/merkletree-js receives a total of 4 weekly downloads. As such, @jharrilim/merkletree-js popularity was classified as not popular.
We found that @jharrilim/merkletree-js demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Research
Four npm packages disguised as cryptographic tools steal developer credentials and send them to attacker-controlled Telegram infrastructure.
Security News
Ruby maintainers from Bundler and rbenv teams are building rv to bring Python uv's speed and unified tooling approach to Ruby development.
Security News
Following last week’s supply chain attack, Nx published findings on the GitHub Actions exploit and moved npm publishing to Trusted Publishers.