Search Apps Documentation Source Content File Folder Download Copy Actions Download State String Boolean Number Struct Map Slice Pointer Function Closure Reference Nil Package Type Interface Unknown

grc721v2 source pure

Constants 2

Variables 1

var ErrInvalidTokenId, ErrInvalidAddress, ErrTokenIdNotHasApproved, ErrApprovalToCurrentOwner, ErrCallerIsNotOwner, ErrCallerNotApprovedForAll, ErrCannotTransferToSelf, ErrTransferFromIncorrectOwner, ErrTransferToNonGRC721Receiver, ErrCallerIsNotOwnerOrApproved, ErrTokenIdAlreadyExists, ErrNotRealm, ErrInvalidName, ErrInvalidSymbol

 1var (
 2	ErrInvalidTokenId              = errors.New("invalid token id")
 3	ErrInvalidAddress              = errors.New("invalid address")
 4	ErrTokenIdNotHasApproved       = errors.New("token id not approved for anyone")
 5	ErrApprovalToCurrentOwner      = errors.New("approval to current owner")
 6	ErrCallerIsNotOwner            = errors.New("caller is not token owner")
 7	ErrCallerNotApprovedForAll     = errors.New("caller is not approved for all")
 8	ErrCannotTransferToSelf        = errors.New("cannot send transfer to self")
 9	ErrTransferFromIncorrectOwner  = errors.New("transfer from incorrect owner")
10	ErrTransferToNonGRC721Receiver = errors.New("transfer to non GRC721Receiver implementer")
11	ErrCallerIsNotOwnerOrApproved  = errors.New("caller is not token owner or approved")
12	ErrTokenIdAlreadyExists        = errors.New("token id already exists")
13
14	ErrNotRealm      = errors.New("rlm must be a realm (got EOA/origin)")
15	ErrInvalidName   = errors.New("invalid token name (empty, too long, or contains control chars)")
16	ErrInvalidSymbol = errors.New("invalid token symbol (empty, too long, or contains chars outside [A-Za-z0-9_-])")
17)
source

Functions 2

func NewBasicNFT

1func NewBasicNFT(_ int, _ realm, name, symbol string) *BasicNFT
source

Types 11

type BasicNFT

struct
 1type BasicNFT struct {
 2	name              string
 3	symbol            string
 4	origRealm         string   // owning realm's package path
 5	owners            avl.Tree // tokenId -> OwnerAddress
 6	balances          avl.Tree // OwnerAddress -> TokenCount
 7	tokenApprovals    avl.Tree // TokenId -> ApprovedAddress
 8	tokenURIs         avl.Tree // TokenId -> URIs
 9	operatorApprovals avl.Tree // "OwnerAddress:OperatorAddress" -> bool
10}
source

Methods on BasicNFT

func Approve

method on BasicNFT
1func (s *BasicNFT) Approve(caller, to address, tid TokenID) error
source

func BalanceOf

method on BasicNFT
1func (s *BasicNFT) BalanceOf(addr address) (int64, error)
source

func Burn

method on BasicNFT
1func (s *BasicNFT) Burn(tid TokenID) error
source

func GetApproved

method on BasicNFT
1func (s *BasicNFT) GetApproved(tid TokenID) (address, error)
source

func Getter

method on BasicNFT
1func (n *BasicNFT) Getter() NFTGetter
source

func ID

method on BasicNFT
1func (s *BasicNFT) ID() string
source

func IsApprovedForAll

method on BasicNFT
1func (s *BasicNFT) IsApprovedForAll(owner, operator address) bool
source

func Mint

method on BasicNFT
1func (s *BasicNFT) Mint(to address, tid TokenID) error
source

func Name

method on BasicNFT
1func (s *BasicNFT) Name() string
source

func OwnerOf

method on BasicNFT
1func (s *BasicNFT) OwnerOf(tid TokenID) (address, error)
source

func RenderHome

method on BasicNFT
1func (s *BasicNFT) RenderHome() (str string)
source

func SafeMint

method on BasicNFT
1func (s *BasicNFT) SafeMint(to address, tid TokenID) error
source

func SafeTransferFrom

method on BasicNFT
1func (s *BasicNFT) SafeTransferFrom(caller, from, to address, tid TokenID) error
source

func SetApprovalForAll

method on BasicNFT
1func (s *BasicNFT) SetApprovalForAll(caller, operator address, approved bool) error
source

func SetTokenURI

method on BasicNFT
1func (s *BasicNFT) SetTokenURI(caller address, tid TokenID, tURI TokenURI) (bool, error)
source

func Symbol

method on BasicNFT
1func (s *BasicNFT) Symbol() string
source

func TokenCount

method on BasicNFT
1func (s *BasicNFT) TokenCount() int64
source

func TokenURI

method on BasicNFT
1func (s *BasicNFT) TokenURI(tid TokenID) (string, error)
source

func TransferFrom

method on BasicNFT
1func (s *BasicNFT) TransferFrom(caller, from, to address, tid TokenID) error
source

type IGRC721CollectionMetadata

interface
1type IGRC721CollectionMetadata interface {
2	Name() string   // Name returns the name of the collection.
3	Symbol() string // Symbol returns the symbol of the collection.
4}
source

type IGRC721Metadata

interface
1type IGRC721Metadata interface {
2	IGRC721CollectionMetadata
3	TokenURI(tid TokenID) (string, error) // TokenURI returns the URI of a specific token.
4}
source

type IGRC721MetadataOnchain

interface
1type IGRC721MetadataOnchain interface {
2	IGRC721CollectionMetadata
3	TokenMetadata(tid TokenID) (Metadata, error)
4}
source

type IGRC721Reader

interface
1type IGRC721Reader interface {
2	Name() string
3	Symbol() string
4	TokenCount() int64
5	BalanceOf(owner address) (int64, error)
6	OwnerOf(tid TokenID) (address, error)
7	GetApproved(tid TokenID) (address, error)
8	IsApprovedForAll(owner, operator address) bool
9}
source

type Metadata

struct
 1type Metadata struct {
 2	Image           string  // URL, IPFS/Arweave path, or (commonly here) a data: URI holding the image itself.
 3	ImageData       string  // Raw SVG image data, if generating images on the fly. Only used if Image is empty.
 4	ExternalURL     string  // URL shown alongside the asset on marketplaces, linking back to the collection's own site.
 5	Description     string  // Human-readable description of the item. Markdown is supported.
 6	Name            string  // Name of the item.
 7	Attributes      []Trait // Attributes for the item, shown on marketplace pages for the item.
 8	BackgroundColor string  // Background color of the item on marketplaces. Six-character hex, no leading #.
 9	AnimationURL    string  // URL/data URI to a multimedia attachment for the item.
10	YoutubeURL      string  // URL to a YouTube video (only used if AnimationURL is not provided).
11}
source

type MetadataNFT

struct
1type MetadataNFT struct {
2	*BasicNFT
3	extensions *avl.Tree // AVL tree for storing metadata extensions
4}
source

Methods on MetadataNFT

func Approve

method on MetadataNFT
1func (s *MetadataNFT) Approve(caller, to address, tid TokenID) error
source

func BalanceOf

method on MetadataNFT
1func (s *MetadataNFT) BalanceOf(addr address) (int64, error)
source

func Burn

method on MetadataNFT
1func (s *MetadataNFT) Burn(tid TokenID) error
source

func GetApproved

method on MetadataNFT
1func (s *MetadataNFT) GetApproved(tid TokenID) (address, error)
source

func IsApprovedForAll

method on MetadataNFT
1func (s *MetadataNFT) IsApprovedForAll(owner, operator address) bool
source

func Mint

method on MetadataNFT
1func (s *MetadataNFT) Mint(to address, tid TokenID) error
source

func Name

method on MetadataNFT
1func (s *MetadataNFT) Name() string
source

func OwnerOf

method on MetadataNFT
1func (s *MetadataNFT) OwnerOf(tid TokenID) (address, error)
source

func RenderHome

method on MetadataNFT
1func (s *MetadataNFT) RenderHome() string
source

func SafeMint

method on MetadataNFT
1func (s *MetadataNFT) SafeMint(to address, tid TokenID) error
source

func SafeTransferFrom

method on MetadataNFT
1func (s *MetadataNFT) SafeTransferFrom(caller, from, to address, tid TokenID) error
source

func SetApprovalForAll

method on MetadataNFT
1func (s *MetadataNFT) SetApprovalForAll(caller, operator address, approved bool) error
source

func SetTokenMetadata

method on MetadataNFT
1func (s *MetadataNFT) SetTokenMetadata(caller address, tid TokenID, metadata Metadata) error
source

func SetTokenURI

method on MetadataNFT
1func (s *MetadataNFT) SetTokenURI(caller address, tid TokenID, tURI TokenURI) (bool, error)
source

func Symbol

method on MetadataNFT
1func (s *MetadataNFT) Symbol() string
source

func TokenCount

method on MetadataNFT
1func (s *MetadataNFT) TokenCount() int64
source

func TokenMetadata

method on MetadataNFT
1func (s *MetadataNFT) TokenMetadata(tid TokenID) (Metadata, error)
source

func TokenURI

method on MetadataNFT
1func (s *MetadataNFT) TokenURI(tid TokenID) (string, error)
source

func TransferFrom

method on MetadataNFT
1func (s *MetadataNFT) TransferFrom(caller, from, to address, tid TokenID) error
source

type TokenID

ident
1type TokenID string
source

Methods on TokenID

func String

method on TokenID
1func (t TokenID) String() string
source

type TokenURI

ident
1type TokenURI string
source

Methods on TokenURI

func String

method on TokenURI
1func (t TokenURI) String() string
source

type Trait

struct
1type Trait struct {
2	DisplayType string
3	TraitType   string
4	Value       string
5}
source

Imports 9

Source Files 7