any #damus @Damus users know the work around for zaps on non test flight people
Login to reply
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!
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
Sweet!
I don't have an iPhone or Damus, but how does this work actually?
How come can't link Mutiny wallet? I know it's not your problem
It enables the zap button on notes. It’s disabled by default. @jb55 would be able to explain it better though
You can link it in the wallet section, in settings. Via NWC
Black magic fuckery
😂
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?
Don’t trust, verify
@jb55 Is this a legit script? How can I parse it?
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"))
@ZapOnBehalf 1000 Seems to work and makes ZapOnBehalf bot useless…
@ZapOnBehalf 1000 Seems to work and makes ZapOnBehalf bot useless…
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
Thank you Oren!
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.