Replies (21)

I was having the same problem, but as my test flight expired, I got the information from Tanel that all I had to do was run the same script that runs in the script and it would work. Indeed, problem solved!
Bender's avatar
Bender 1 year ago
How often do I need to run this script?
Only once. Except if you fully delete the app. Then you’ll have to run it again
It enables the zap button on notes. It’s disabled by default. @jb55 would be able to explain it better though
It looks very fishy. The link that thr On button opens begins with “damus:nostr:nscript1…” and then a bech32 blob that after decoding contains “asm”, “nostr_set_bool”, “memory” and some long binary stuff in between. Why would you need such a long script to override a single boolean? @Damus is this legit?
echo nscript… | bech32 -d > zap.wasm && wasm-objdump -x zap.wasm nostrscripts are sandboxed. They can’t do anything other than set boolean flags in your settings atm
Can it send an http request with my nsec to a third party? Anyways, here is the script. I don’t know much about WebAssembly, what does the last “data” operations do? (module (type $t0 (func (param i32 i32 i32) (result i32))) (type $t1 (func)) (import "nostr" "nostr_set_bool" (func $nostr.nostr_set_bool (type $t0))) (func $f1 (type $t1) (drop (call $nostr.nostr_set_bool (i32.const 1056) (i32.shr_u (i32.load (i32.const 1052)) (i32.const 1)) (i32.const 0)))) (memory $memory (export "memory") 1) (start $f1) (data $d0 (i32.const 1036) "\1c") (data $d1 (i32.const 1048) "\02\00\00\00\0c\00\00\00n\00o\00z\00a\00p\00s"))
data defines well…. data. In this case its a utf16 string called “nozaps” this is used as an argument to the nostr_set_bool function call: nostr_set_bool(“nozaps”, false) This is the entire script
its not actually that long if you consider what it is. This is probably one of the smallest examples of a small, portable, sandboxed binary executable. These will be used for executing turing complete algos, so I needed the flexibility of a portable executable.