HomeOverviewValsValidatorsGovGovernanceIBCRelayersN/AInfraInfra
/
powered by GATA HUB

r/gnoswap/gnft

Gno.land

Realm
Files8
Lines of code766excluding tests
Functions17exported
Storage5,101.2 KB510.12 GNOT deposit
DeployedN/A

Realm

Pathgno.land/r/gnoswap/gnft
Accountg1mclfz2dn4l…jmufvfmw
assert.gno67 lines
1package gnft
2
3import (
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)
9
10// 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}
17
18// assertIsNonEmptyTokenURI panics if the new URI is empty.
19func assertIsNonEmptyTokenURI(tURI string) {
20 if tURI == "" {
21 panic(makeErrorWithDetails(errCannotSetURI, "empty token URI"))
22 }
23}
24
25// 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}
31
32// 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}
38
39// 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}
45
46// assertIsAllowedTransfer enforces that NFTs held
47// 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 }
55
56 stakerAddr := access.MustGetAddress(prabc.ROLE_STAKER.String())
57 if owner != stakerAddr {
58 return
59 }
60
61 if caller != stakerAddr {
62 panic(makeErrorWithDetails(
63 errStakedTokenLocked,
64 ufmt.Sprintf("token (%s) is held by staker", string(tid)),
65 ))
66 }
67}
FunctionParametersReturnsKind
Name()string-
Symbol()string-
TotalSupply()int64-
TokenURI(tid string)string, error-
BalanceOf(owner string)int64, error-
OwnerOf(tid string)string, error-
MustOwnerOf(tid string)string-
SetTokenURI(tid string, tURI string)bool, errorCrossing
TransferFrom(from string, to string, tid string)errorCrossing
Approve(approved string, tid string)errorCrossing
SetApprovalForAll(operator string, approved bool)errorCrossing
GetApproved(tid string)string, error-
1–12 of 171/2

GNOSWAP NFT ($GNFT)

  • Total supply: 1142
  • Known accounts: 158
Loading calls…
Calls1,084from 398 accounts
FunctionCallerStatusBlockAge
Approveg1423lrk…myzwuhSuccess804,42014m ago
Approveg1423lrk…myzwuhSuccess804,40514m ago
Approveg1z64amn…3tuh8nSuccess802,1842h ago
Approveg1z64amn…3tuh8nSuccess801,8972h ago
Approveg148cuh9…4tdsjdSuccess800,2494h ago
Approveg18t6l5m…3vvlrdSuccess798,2576h ago
Approveg16pwd7k…wvvwsaSuccess796,4508h ago
Approveg1semyl4…fvakl4Success788,17016h ago
Approveg1ptqfn8…x9jamhSuccess786,68218h ago
Approveg1e2jyvq…3vj9hgSuccess785,06319h ago
Approveg1t8sqv6…x2wkucSuccess779,7411d ago
Approveg12wn2hr…nvc3swSuccess779,6361d ago
1–12 of 5001/42