Skip to content

Commit

Permalink
add examples, npm readmes and build scripts
Browse files Browse the repository at this point in the history
  • Loading branch information
dskvr committed Sep 26, 2024
1 parent 6f053d3 commit 42bd6a8
Show file tree
Hide file tree
Showing 4 changed files with 85 additions and 1 deletion.
2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "notemine"
version = "0.3.1"
version = "0.3.2"
edition = "2021"
description = "a nostr note miner compiled to wasm"
repository = "https://github.com/sandwichfarm/notemine"
Expand Down
78 changes: 78 additions & 0 deletions README.npm.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,78 @@
# note⛏️
**notemine** mines nostr notes, is written in rust, targets web and compiles to wasm. Variable difficulty and realtime hashrate. There's a [demo](https://sandwichfarm.github.io/notemine).

If you're looking for a native miner that leverages hardware acceleration, check out [`notemine-hw`](https://github.com/plebemineira/notemine_hw)

# bindings

# install
```js
npm install notemine
pnpm install notemine
yarn add notemine
```

# usage
```js
import init, { mine_event } from './pkg/notemine.js';

//You shouldn't need to pass id or sig, and created_at is optional.
const event = {
"pubkey": "e771af0b05c8e95fcdf6feb3500544d2fb1ccd384788e9f490bb3ee28e8ed66f",
"kind": 1,
"tags": [],
"content": "hello world",
}

const difficulty = 21
let cancel = false

function reportProgress(hashRate = undefined, bestPow = undefined) {
if(hashRate){
console.log(`hash rate: ${hashRate}`);
}
if(bestPow){
console.log('best pow: ', bestPow);
}
}

function shouldCancel() {
//Add some logic here
//if it returns true, wasm should stop mining.
return cancel
}

const run = async () => {
//this is synchronous.
const minedResult = mine_event(
event,
difficulty,
startNonce.toString(),
nonceStep.toString(),
reportProgress,
shouldCancel
);
}
await init({});
```

# build

## deps
```
cargo install wasm-pack
```

## build
```
cargo clean
wasm-pack build --target web --release
```

## run demo
```
cd demo && npx serve
```

# license
GNU General Public License v3.0
4 changes: 4 additions & 0 deletions scripts/build.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
#!/bin/bash
cargo clean
wasm-pack build --target web --release
mv README.npm.md pkg/README.md
2 changes: 2 additions & 0 deletions scripts/publish.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
#!/bin/bash
wasm-pack publish --access=public

0 comments on commit 42bd6a8

Please sign in to comment.