PathrockNetwork Gno Explorer
HomeBlocksTransactionsRealmsPackagesValidatorsAnalytics

PathrockNetwork Gno Explorer — an independent explorer for Gno.land Mainnet (gnoland-1), operated by PathrockNetwork. Not an official Gno.land service.

gnowebarchive RPC

gno.land/r/gnoswap/gnft

Realm
Open in gnoweb ↗

Overview

Kind
Realm (renderable)
Name
gnft
Namespace
gnoswap
Files
8 (README)(gnomod.toml)
Exported functions
17
Module
gno.land/r/gnoswap/gnft
gno
0.9

Files (8)

  • README.mdmarkdown
  • gnomod.tomltoml
  • assert.gnogno
  • doc.gnogno
  • errors.gnogno
  • gnft.gnogno
  • svg_generator.gnogno
  • utils.gnogno
  • assert.gnogno
    1package gnft23import (4	prabc "gno.land/p/gnoswap/rbac/v1"5	"gno.land/p/nt/grc721/v0"6	"gno.land/p/nt/ufmt/v0"7	"gno.land/r/gnoswap/access/v1"8)910// assertIsValidTokenURI panics if the token already has a URI set.11func assertIsValidTokenURI(tid grc721.TokenID) {12	uri, _ := meta.TokenURI(tid)13	if uri != "" {14		panic(makeErrorWithDetails(errCannotSetURI, ufmt.Sprintf("token id (%s) has already set URI", string(tid))))15	}16}1718// assertIsNonEmptyTokenURI panics if the new URI is empty.19func assertIsNonEmptyTokenURI(tURI string) {20	if tURI == "" {21		panic(makeErrorWithDetails(errCannotSetURI, "empty token URI"))22	}23}2425// assertIsValidAddress panics if the address is invalid.26func assertIsValidAddress(addr address) {27	if !addr.IsValid() {28		panic(makeErrorWithDetails(errInvalidAddress, ufmt.Sprintf("address (%s)", addr.String())))29	}30}3132// assertFromIsValidAddress panics if the from address is invalid.33func assertFromIsValidAddress(from address) {34	if !from.IsValid() {35		panic(makeErrorWithDetails(errInvalidAddress, ufmt.Sprintf("from address (%s)", from.String())))36	}37}3839// assertToIsValidAddress panics if the to address is invalid.40func assertToIsValidAddress(to address) {41	if !to.IsValid() {42		panic(makeErrorWithDetails(errInvalidAddress, ufmt.Sprintf("to address (%s)", to.String())))43	}44}4546// assertIsAllowedTransfer enforces that NFTs held47// by the staker (i.e. currently staked) can only be moved by the staker itself.48// Other tokens fall through to the standard GRC721 owner/approval checks performed inside ledger.49func assertIsAllowedTransfer(caller address, tid grc721.TokenID) {50	owner, err := token.OwnerOf(tid)51	if err != nil {52		// Surface the same not-found error as the standard transfer path.53		checkErr(err)54	}5556	stakerAddr := access.MustGetAddress(prabc.ROLE_STAKER.String())57	if owner != stakerAddr {58		return59	}6061	if caller != stakerAddr {62		panic(makeErrorWithDetails(63			errStakedTokenLocked,64			ufmt.Sprintf("token (%s) is held by staker", string(tid)),65		))66	}67}68

    Functions

    • Approve(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, approved string, tid string) interface {Error func() string}

    • BalanceOf(owner string) (int64, interface {Error func() string})

    • Burn(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, tid string)

    • Exists(tid string) bool

    • GetApproved(tid string) (string, interface {Error func() string})

    • IsApprovedForAll(owner string, operator string) bool

    • Mint(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, to string, tid string) string

    • MustOwnerOf(tid string) string

    • Name() string

    • OwnerOf(tid string) (string, interface {Error func() string})

    • Render(path string) string

    • SetApprovalForAll(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, operator string, approved bool) interface {Error func() string}

    • SetTokenURI(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, tid string, tURI string) (bool, interface {Error func() string})

    • Symbol() string

    • TokenURI(tid string) (string, interface {Error func() string})

    • TotalSupply() int64

    • TransferFrom(cur interface {.seal func(); Address func() .uverse.address; IsCode func() bool; IsCurrent func() bool; IsEphemeral func() bool; IsUser func() bool; IsUserCall func() bool; IsUserRun func() bool; PkgPath func() string; Previous func() .uverse.realm; String func() string; Sub func(string) .uverse.realm; Subpath func() string}, from string, to string, tid string) interface {Error func() string}

    Signatures reconstructed verbatim from vm/qfuncs — interface params keep their inline definitions.

    Rendered

    RenderedRawgnoweb ↗

    vm/qrender output, sanitized (docs/render-security.md) and displayed in an empty-sandbox iframe — scripts, forms and popups cannot run. Links stay inert in-preview; right-click to open.