Refresh
Ask AI
Refresh points a binding's `binder` at the name's CURRENT owner.
WHY THIS EXISTS, and it is the fix for a real hole. `binder` decides who gets the skin back once the name record is gone. Set once at Attach and never updated, it names whoever ATTACHED the skin — so: Alice attaches, sells the name to Bob, the skin travels with it as intended, Bob lets the name lapse, and the skin goes back to ALICE. Bob paid for it. That is not a limitation, it is taking something from the person who bought it.
nsdata cannot tell us a name changed hands — it is permanent, it has no hook, and it never will. So `binder` cannot be maintained; it can only be CAUGHT UP. This is that, and it is deliberately open to anyone:
Example
1it only ever writes the name's real current owner, so calling it can
2never move the skin anywhere it should not go, and there is nothing
3to gain by calling it on somebody else's binding
4
5which means the site can call it on a purchase, a keeper can call it
6on a schedule, the buyer can call it themselves, or nobody calls it
7at all and the next Attach or Claim does it — all with the same
8result and none of them needing to be trusted
Nothing on chain is automatic here. gno has no scheduler and nsdata has no callback, so every version of "the skin follows the sale" is one extra call by someone. Making that call safe for ANYONE to make is as close to automatic as this can get, and it is close enough.
Command
# WARNING: This command is running in an INSECURE mode.
# It is strongly recommended to use a hardware device for signing
# and avoid trusting any computer connected to the internet,
# as your private keys could be exposed.
gnokey maketx call -pkgpath "gno.land/r/nym-mnsrehearsal001/nsskin/v2" -func "Refresh" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -chainid "onyx-1" -remote "https://rpc.onyx.testnets.gno.land" ADDRESSgnokey query -remote "https://rpc.onyx.testnets.gno.land" auth/accounts/ADDRESS
gnokey maketx call -pkgpath "gno.land/r/nym-mnsrehearsal001/nsskin/v2" -func "Refresh" -args $'' -gas-fee 1000000ugnot -gas-wanted 1_000_000_000 -send "" -broadcast=false ADDRESS > call.tx
gnokey sign -tx-path call.tx -chainid "onyx-1" -account-number ACCOUNTNUMBER -account-sequence SEQUENCENUMBER ADDRESS
gnokey broadcast -remote "https://rpc.onyx.testnets.gno.land" call.tx