hashcash-wasm/main.go

28 lines
909 B
Go

package main
import (
"fmt"
"github.com/catalinc/hashcash"
"syscall/js"
)
func main() {
fmt.Println("HashCash online! (no, curious console-dweller, this isn't a cryptocurrency miner)")
extra := js.Global().Get("resourceExtra").String()
fmt.Println("Beginning proof of work on " + extra + "(this may take a while)...")
pow := hashcash.New(20, 16, extra)
stamp, err := pow.Mint("signup")
if err != nil {
js.Global().Set("returnVar", js.ValueOf(err.Error()))
js.Global().Set("returnCode", js.ValueOf(2))
fmt.Println("An error occurred whilst working:", err)
js.Global().Call("WASMComplete")
} else {
js.Global().Set("returnVar", js.ValueOf(stamp))
js.Global().Set("returnCode", js.ValueOf(0))
fmt.Println("Proof of work completed successfully:", stamp)
fmt.Println("Again, no, this isn't a Crypto miner. It's an anti-spam measure. I promise.")
js.Global().Call("WASMComplete")
}
}