collection

package
v0.0.0-...-1b3d248 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Apr 6, 2023 License: GPL-3.0 Imports: 27 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	AgentBoxType   = hint.Type("mitum-nft-agent-box")
	AgentBoxHint   = hint.NewHint(AgentBoxType, "v0.0.1")
	AgentBoxHinter = AgentBox{BaseHinter: hint.NewBaseHinter(AgentBoxHint)}
)
View Source
var (
	ApproveFactType   = hint.Type("mitum-nft-approve-operation-fact")
	ApproveFactHint   = hint.NewHint(ApproveFactType, "v0.0.1")
	ApproveFactHinter = ApproveFact{BaseHinter: hint.NewBaseHinter(ApproveFactHint)}
	ApproveType       = hint.Type("mitum-nft-approve-operation")
	ApproveHint       = hint.NewHint(ApproveType, "v0.0.1")
	ApproveHinter     = Approve{BaseOperation: operationHinter(ApproveHint)}
)
View Source
var (
	ApproveItemType   = hint.Type("mitum-nft-approve-item")
	ApproveItemHint   = hint.NewHint(ApproveItemType, "v0.0.1")
	ApproveItemHinter = ApproveItem{BaseHinter: hint.NewBaseHinter(ApproveItemHint)}
)
View Source
var (
	BurnFactType   = hint.Type("mitum-nft-burn-operation-fact")
	BurnFactHint   = hint.NewHint(BurnFactType, "v0.0.1")
	BurnFactHinter = BurnFact{BaseHinter: hint.NewBaseHinter(BurnFactHint)}
	BurnType       = hint.Type("mitum-nft-burn-operation")
	BurnHint       = hint.NewHint(BurnType, "v0.0.1")
	BurnHinter     = Burn{BaseOperation: operationHinter(BurnHint)}
)
View Source
var (
	BurnItemType   = hint.Type("mitum-nft-burn-item")
	BurnItemHint   = hint.NewHint(BurnItemType, "v0.0.1")
	BurnItemHinter = BurnItem{BaseHinter: hint.NewBaseHinter(BurnItemHint)}
)
View Source
var (
	CollectionPolicyUpdaterFactType   = hint.Type("mitum-nft-collection-policy-updater-operation-fact")
	CollectionPolicyUpdaterFactHint   = hint.NewHint(CollectionPolicyUpdaterFactType, "v0.0.1")
	CollectionPolicyUpdaterFactHinter = CollectionPolicyUpdaterFact{BaseHinter: hint.NewBaseHinter(CollectionPolicyUpdaterFactHint)}
	CollectionPolicyUpdaterType       = hint.Type("mitum-nft-collection-policy-updater-operation")
	CollectionPolicyUpdaterHint       = hint.NewHint(CollectionPolicyUpdaterType, "v0.0.1")
	CollectionPolicyUpdaterHinter     = CollectionPolicyUpdater{BaseOperation: operationHinter(CollectionPolicyUpdaterHint)}
)
View Source
var (
	CollectionRegisterFormType   = hint.Type("mitum-nft-collection-register-form")
	CollectionRegisterFormHint   = hint.NewHint(CollectionRegisterFormType, "v0.0.1")
	CollectionRegisterFormHinter = CollectionRegisterForm{BaseHinter: hint.NewBaseHinter(CollectionRegisterFormHint)}
)
View Source
var (
	CollectionRegisterFactType   = hint.Type("mitum-nft-collection-register-operation-fact")
	CollectionRegisterFactHint   = hint.NewHint(CollectionRegisterFactType, "v0.0.1")
	CollectionRegisterFactHinter = CollectionRegisterFact{BaseHinter: hint.NewBaseHinter(CollectionRegisterFactHint)}
	CollectionRegisterType       = hint.Type("mitum-nft-collection-register-operation")
	CollectionRegisterHint       = hint.NewHint(CollectionRegisterType, "v0.0.1")
	CollectionRegisterHinter     = CollectionRegister{BaseOperation: operationHinter(CollectionRegisterHint)}
)
View Source
var (
	DelegateFactType   = hint.Type("mitum-nft-delegate-operation-fact")
	DelegateFactHint   = hint.NewHint(DelegateFactType, "v0.0.1")
	DelegateFactHinter = DelegateFact{BaseHinter: hint.NewBaseHinter(DelegateFactHint)}
	DelegateType       = hint.Type("mitum-nft-delegate-operation")
	DelegateHint       = hint.NewHint(DelegateType, "v0.0.1")
	DelegateHinter     = Delegate{BaseOperation: operationHinter(DelegateHint)}
)
View Source
var (
	MaxAgents        = 10
	MaxDelegateItems = 10
)
View Source
var (
	DelegateAllow  = DelegateMode("allow")
	DelegateCancel = DelegateMode("cancel")
)
View Source
var (
	DelegateItemType   = hint.Type("mitum-nft-delegate-item")
	DelegateItemHint   = hint.NewHint(DelegateItemType, "v0.0.1")
	DelegateItemHinter = DelegateItem{BaseHinter: hint.NewBaseHinter(DelegateItemHint)}
)
View Source
var (
	MintFactType   = hint.Type("mitum-nft-mint-operation-fact")
	MintFactHint   = hint.NewHint(MintFactType, "v0.0.1")
	MintFactHinter = MintFact{BaseHinter: hint.NewBaseHinter(MintFactHint)}
	MintType       = hint.Type("mitum-nft-mint-operation")
	MintHint       = hint.NewHint(MintType, "v0.0.1")
	MintHinter     = Mint{BaseOperation: operationHinter(MintHint)}
)
View Source
var (
	MintFormType   = hint.Type("mitum-nft-mint-form")
	MintFormHint   = hint.NewHint(MintFormType, "v0.0.1")
	MintFormHinter = MintForm{BaseHinter: hint.NewBaseHinter(MintFormHint)}
)
View Source
var (
	MintItemType   = hint.Type("mitum-nft-mint-item")
	MintItemHint   = hint.NewHint(MintItemType, "v0.0.1")
	MintItemHinter = MintItem{BaseHinter: hint.NewBaseHinter(MintItemHint)}
)
View Source
var (
	NFTBoxType   = hint.Type("mitum-nft-nft-box")
	NFTBoxHint   = hint.NewHint(NFTBoxType, "v0.0.1")
	NFTBoxHinter = NFTBox{BaseHinter: hint.NewBaseHinter(NFTBoxHint)}
)
View Source
var (
	MinLengthCollectionName = 3
	MaxLengthCollectionName = 30
	ReValidCollectionName   = regexp.MustCompile(`^[a-zA-Z0-9][a-zA-Z0-9\s]+$`)
)
View Source
var (
	CollectionPolicyType   = hint.Type("mitum-nft-collection-policy")
	CollectionPolicyHint   = hint.NewHint(CollectionPolicyType, "v0.0.1")
	CollectionPolicyHinter = CollectionPolicy{BaseHinter: hint.NewBaseHinter(CollectionPolicyHint)}
)
View Source
var (
	SignFactType   = hint.Type("mitum-nft-sign-operation-fact")
	SignFactHint   = hint.NewHint(SignFactType, "v0.0.1")
	SignFactHinter = SignFact{BaseHinter: hint.NewBaseHinter(SignFactHint)}
	SignType       = hint.Type("mitum-nft-sign-operation")
	SignHint       = hint.NewHint(SignType, "v0.0.1")
	SignHinter     = Sign{BaseOperation: operationHinter(SignHint)}
)
View Source
var (
	CreatorQualification     = Qualification("creator")
	CopyrighterQualification = Qualification("copyrighter")
)
View Source
var (
	SignItemType   = hint.Type("mitum-nft-sign-item")
	SignItemHint   = hint.NewHint(SignItemType, "v0.0.1")
	SignItemHinter = SignItem{BaseHinter: hint.NewBaseHinter(SignItemHint)}
)
View Source
var (
	StateKeyAgentsSuffix            = ":agents"
	StateKeyCollectionLastIDXSuffix = ":collectionidx"
	StateKeyNFTsSuffix              = ":nfts"
	StateKeyNFTSuffix               = ":nft"
)
View Source
var (
	TransferFactType   = hint.Type("mitum-nft-transfer-operation-fact")
	TransferFactHint   = hint.NewHint(TransferFactType, "v0.0.1")
	TransferFactHinter = TransferFact{BaseHinter: hint.NewBaseHinter(TransferFactHint)}
	TransferType       = hint.Type("mitum-nft-transfer-operation")
	TransferHint       = hint.NewHint(TransferType, "v0.0.1")
	TransferHinter     = Transfer{BaseOperation: operationHinter(TransferHint)}
)
View Source
var (
	TransferItemType   = hint.Type("mitum-nft-transfer-item")
	TransferItemHint   = hint.NewHint(TransferItemType, "v0.0.1")
	TransferItemHinter = TransferItem{BaseHinter: hint.NewBaseHinter(TransferItemHint)}
)
View Source
var ApproveItemProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(ApproveItemProcessor)
	},
}
View Source
var ApproveProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(ApproveProcessor)
	},
}
View Source
var BurnItemProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(BurnItemProcessor)
	},
}
View Source
var BurnProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(BurnProcessor)
	},
}
View Source
var CollectionPolicyUpdaterProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(CollectionPolicyUpdaterProcessor)
	},
}
View Source
var CollectionRegisterProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(CollectionRegisterProcessor)
	},
}
View Source
var DelegateItemProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(DelegateItemProcessor)
	},
}
View Source
var DelegateProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(DelegateProcessor)
	},
}
View Source
var MaxApproveItems = 10
View Source
var MaxBurnItems = 10
View Source
var MaxMintItems = 10
View Source
var MaxSignItems = 10
View Source
var MaxTransferItems = 10
View Source
var MaxWhiteAddress = 10
View Source
var MintItemProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(MintItemProcessor)
	},
}
View Source
var MintProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(MintProcessor)
	},
}
View Source
var SignItemProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(SignItemProcessor)
	},
}
View Source
var SignProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(SignProcessor)
	},
}
View Source
var (
	StateKeyCollectionPrefix = "collection:"
)
View Source
var TransferItemProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(TransferItemProcessor)
	},
}
View Source
var TransferProcessorPool = sync.Pool{
	New: func() interface{} {
		return new(TransferProcessor)
	},
}

Functions

func CalculateApproveItemsFee

func CalculateApproveItemsFee(cp *extensioncurrency.CurrencyPool, items []ApproveItem) (map[currency.CurrencyID][2]currency.Big, error)

func CalculateBurnItemsFee

func CalculateBurnItemsFee(cp *extensioncurrency.CurrencyPool, items []BurnItem) (map[currency.CurrencyID][2]currency.Big, error)

func CalculateDelegateItemsFee

func CalculateDelegateItemsFee(cp *extensioncurrency.CurrencyPool, items []DelegateItem) (map[currency.CurrencyID][2]currency.Big, error)

func CalculateMintItemsFee

func CalculateMintItemsFee(cp *extensioncurrency.CurrencyPool, items []MintItem) (map[currency.CurrencyID][2]currency.Big, error)

func CalculateSignItemsFee

func CalculateSignItemsFee(cp *extensioncurrency.CurrencyPool, items []SignItem) (map[currency.CurrencyID][2]currency.Big, error)

func CalculateTransferItemsFee

func CalculateTransferItemsFee(cp *extensioncurrency.CurrencyPool, items []TransferItem) (map[currency.CurrencyID][2]currency.Big, error)

func CheckSenderEnoughBalance

func CheckSenderEnoughBalance(
	holder base.Address,
	required map[currency.CurrencyID][2]currency.Big,
	getState func(key string) (state.State, bool, error),
) (map[currency.CurrencyID]currency.AmountState, error)

func IsStateAgentKey

func IsStateAgentKey(key string) bool

func IsStateCollectionKey

func IsStateCollectionKey(key string) bool

func IsStateCollectionLastIDXKey

func IsStateCollectionLastIDXKey(key string) bool

func IsStateNFTKey

func IsStateNFTKey(key string) bool

func IsStateNFTsKey

func IsStateNFTsKey(key string) bool

func SetStateAgentsValue

func SetStateAgentsValue(st state.State, box AgentBox) (state.State, error)

func SetStateCollectionLastIDXValue

func SetStateCollectionLastIDXValue(st state.State, idx uint64) (state.State, error)

func SetStateCollectionValue

func SetStateCollectionValue(st state.State, design nft.Design) (state.State, error)

func SetStateNFTValue

func SetStateNFTValue(st state.State, n nft.NFT) (state.State, error)

func SetStateNFTsValue

func SetStateNFTsValue(st state.State, box NFTBox) (state.State, error)

func StateCollectionLastIDXValue

func StateCollectionLastIDXValue(st state.State) (uint64, error)

func StateCollectionValue

func StateCollectionValue(st state.State) (nft.Design, error)

func StateKeyAgents

func StateKeyAgents(addr base.Address, symbol extensioncurrency.ContractID) string

func StateKeyCollection

func StateKeyCollection(id extensioncurrency.ContractID) string

func StateKeyCollectionLastIDX

func StateKeyCollectionLastIDX(id extensioncurrency.ContractID) string

func StateKeyNFT

func StateKeyNFT(id nft.NFTID) string

func StateKeyNFTs

func StateKeyNFTs(id extensioncurrency.ContractID) string

func StateNFTValue

func StateNFTValue(st state.State) (nft.NFT, error)

Types

type AgentBox

type AgentBox struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewAgentBox

func NewAgentBox(symbol extensioncurrency.ContractID, agents []base.Address) AgentBox

func StateAgentsValue

func StateAgentsValue(st state.State) (AgentBox, error)

func (AgentBox) Agents

func (abx AgentBox) Agents() []base.Address

func (*AgentBox) Append

func (abx *AgentBox) Append(ag base.Address) error

func (AgentBox) Bytes

func (abx AgentBox) Bytes() []byte

func (AgentBox) Collection

func (abx AgentBox) Collection() extensioncurrency.ContractID

func (AgentBox) Equal

func (abx AgentBox) Equal(b AgentBox) bool

func (AgentBox) Exists

func (abx AgentBox) Exists(ag base.Address) bool

func (AgentBox) GenerateHash

func (abx AgentBox) GenerateHash() valuehash.Hash

func (AgentBox) Get

func (abx AgentBox) Get(ag base.Address) (base.Address, error)

func (AgentBox) Hash

func (abx AgentBox) Hash() valuehash.Hash

func (AgentBox) Hint

func (abx AgentBox) Hint() hint.Hint

func (AgentBox) IsEmpty

func (abx AgentBox) IsEmpty() bool

func (AgentBox) IsValid

func (abx AgentBox) IsValid([]byte) error

func (AgentBox) MarshalBSON

func (abx AgentBox) MarshalBSON() ([]byte, error)

func (AgentBox) MarshalJSON

func (abx AgentBox) MarshalJSON() ([]byte, error)

func (*AgentBox) Remove

func (abx *AgentBox) Remove(ag base.Address) error

func (*AgentBox) Sort

func (abx *AgentBox) Sort(ascending bool)

func (*AgentBox) UnpackBSON

func (abx *AgentBox) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*AgentBox) UnpackJSON

func (abx *AgentBox) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type AgentBoxBSONPacker

type AgentBoxBSONPacker struct {
	CL extensioncurrency.ContractID `bson:"collection"`
	AG []base.Address               `bson:"agents"`
}

type AgentBoxBSONUnpacker

type AgentBoxBSONUnpacker struct {
	CL string                `bson:"collection"`
	AG []base.AddressDecoder `bson:"agents"`
}

type AgentBoxJSONPacker

type AgentBoxJSONPacker struct {
	jsonenc.HintedHead
	CL extensioncurrency.ContractID `json:"collection"`
	AG []base.Address               `json:"agents"`
}

type AgentBoxJSONUnpacker

type AgentBoxJSONUnpacker struct {
	CL string                `json:"collection"`
	AG []base.AddressDecoder `json:"agents"`
}

type Approve

type Approve struct {
	currency.BaseOperation
}

func NewApprove

func NewApprove(fact ApproveFact, fs []base.FactSign, memo string) (Approve, error)

func (Approve) Process

func (Approve) Process(
	func(key string) (state.State, bool, error),
	func(valuehash.Hash, ...state.State) error,
) error

func (*Approve) UnpackBSON

func (op *Approve) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*Approve) UnpackJSON

func (op *Approve) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type ApproveFact

type ApproveFact struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewApproveFact

func NewApproveFact(token []byte, sender base.Address, items []ApproveItem) ApproveFact

func (ApproveFact) Addresses

func (fact ApproveFact) Addresses() ([]base.Address, error)

func (ApproveFact) Bytes

func (fact ApproveFact) Bytes() []byte

func (ApproveFact) Currencies

func (fact ApproveFact) Currencies() []currency.CurrencyID

func (ApproveFact) GenerateHash

func (fact ApproveFact) GenerateHash() valuehash.Hash

func (ApproveFact) Hash

func (fact ApproveFact) Hash() valuehash.Hash

func (ApproveFact) IsValid

func (fact ApproveFact) IsValid(b []byte) error

func (ApproveFact) Items

func (fact ApproveFact) Items() []ApproveItem

func (ApproveFact) MarshalBSON

func (fact ApproveFact) MarshalBSON() ([]byte, error)

func (ApproveFact) MarshalJSON

func (fact ApproveFact) MarshalJSON() ([]byte, error)

func (ApproveFact) NFTs

func (fact ApproveFact) NFTs() []nft.NFTID

func (ApproveFact) Rebuild

func (fact ApproveFact) Rebuild() ApproveFact

func (ApproveFact) Sender

func (fact ApproveFact) Sender() base.Address

func (ApproveFact) Token

func (fact ApproveFact) Token() []byte

func (*ApproveFact) UnpackBSON

func (fact *ApproveFact) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*ApproveFact) UnpackJSON

func (fact *ApproveFact) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type ApproveFactBSONUnpacker

type ApproveFactBSONUnpacker struct {
	H  valuehash.Bytes     `bson:"hash"`
	TK []byte              `bson:"token"`
	SD base.AddressDecoder `bson:"sender"`
	IT bson.Raw            `bson:"items"`
}

type ApproveFactJSONPacker

type ApproveFactJSONPacker struct {
	jsonenc.HintedHead
	H  valuehash.Hash `json:"hash"`
	TK []byte         `json:"token"`
	SD base.Address   `json:"sender"`
	IT []ApproveItem  `json:"items"`
}

type ApproveFactJSONUnpacker

type ApproveFactJSONUnpacker struct {
	H  valuehash.Bytes     `json:"hash"`
	TK []byte              `json:"token"`
	SD base.AddressDecoder `json:"sender"`
	IT json.RawMessage     `json:"items"`
}

type ApproveItem

type ApproveItem struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewApproveItem

func NewApproveItem(approved base.Address, n nft.NFTID, cid currency.CurrencyID) ApproveItem

func (ApproveItem) Addresses

func (it ApproveItem) Addresses() ([]base.Address, error)

func (ApproveItem) Approved

func (it ApproveItem) Approved() base.Address

func (ApproveItem) Bytes

func (it ApproveItem) Bytes() []byte

func (ApproveItem) Currency

func (it ApproveItem) Currency() currency.CurrencyID

func (ApproveItem) IsValid

func (it ApproveItem) IsValid([]byte) error

func (ApproveItem) MarshalBSON

func (it ApproveItem) MarshalBSON() ([]byte, error)

func (ApproveItem) MarshalJSON

func (it ApproveItem) MarshalJSON() ([]byte, error)

func (ApproveItem) NFT

func (it ApproveItem) NFT() nft.NFTID

func (ApproveItem) Rebuild

func (it ApproveItem) Rebuild() ApproveItem

func (*ApproveItem) UnpackBSON

func (it *ApproveItem) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*ApproveItem) UnpackJSON

func (it *ApproveItem) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type ApproveItemBSONUnpacker

type ApproveItemBSONUnpacker struct {
	AP base.AddressDecoder `bson:"approved"`
	NF bson.Raw            `bson:"nft"`
	CR string              `bson:"currency"`
}

type ApproveItemJSONPacker

type ApproveItemJSONPacker struct {
	jsonenc.HintedHead
	AP base.Address        `json:"approved"`
	NF nft.NFTID           `json:"nft"`
	CR currency.CurrencyID `json:"currency"`
}

type ApproveItemJSONUnpacker

type ApproveItemJSONUnpacker struct {
	AP base.AddressDecoder `json:"approved"`
	NF json.RawMessage     `json:"nft"`
	CR string              `json:"currency"`
}

type ApproveItemProcessor

type ApproveItemProcessor struct {
	// contains filtered or unexported fields
}

func (*ApproveItemProcessor) Close

func (ipp *ApproveItemProcessor) Close() error

func (*ApproveItemProcessor) PreProcess

func (ipp *ApproveItemProcessor) PreProcess(
	getState func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) error

func (*ApproveItemProcessor) Process

func (ipp *ApproveItemProcessor) Process(
	_ func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) ([]state.State, error)

type ApproveProcessor

type ApproveProcessor struct {
	Approve
	// contains filtered or unexported fields
}

func (*ApproveProcessor) Close

func (opp *ApproveProcessor) Close() error

func (*ApproveProcessor) PreProcess

func (opp *ApproveProcessor) PreProcess(
	getState func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) (state.Processor, error)

func (*ApproveProcessor) Process

func (opp *ApproveProcessor) Process(
	getState func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) error

type Burn

type Burn struct {
	currency.BaseOperation
}

func NewBurn

func NewBurn(fact BurnFact, fs []base.FactSign, memo string) (Burn, error)

func (Burn) Process

func (Burn) Process(
	func(key string) (state.State, bool, error),
	func(valuehash.Hash, ...state.State) error,
) error

func (*Burn) UnpackBSON

func (op *Burn) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*Burn) UnpackJSON

func (op *Burn) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type BurnFact

type BurnFact struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewBurnFact

func NewBurnFact(token []byte, sender base.Address, items []BurnItem) BurnFact

func (BurnFact) Addresses

func (fact BurnFact) Addresses() ([]base.Address, error)

func (BurnFact) Bytes

func (fact BurnFact) Bytes() []byte

func (BurnFact) GenerateHash

func (fact BurnFact) GenerateHash() valuehash.Hash

func (BurnFact) Hash

func (fact BurnFact) Hash() valuehash.Hash

func (BurnFact) IsValid

func (fact BurnFact) IsValid(b []byte) error

func (BurnFact) Items

func (fact BurnFact) Items() []BurnItem

func (BurnFact) MarshalBSON

func (fact BurnFact) MarshalBSON() ([]byte, error)

func (BurnFact) MarshalJSON

func (fact BurnFact) MarshalJSON() ([]byte, error)

func (BurnFact) NFTs

func (fact BurnFact) NFTs() []nft.NFTID

func (BurnFact) Rebuild

func (fact BurnFact) Rebuild() BurnFact

func (BurnFact) Sender

func (fact BurnFact) Sender() base.Address

func (BurnFact) Token

func (fact BurnFact) Token() []byte

func (*BurnFact) UnpackBSON

func (fact *BurnFact) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*BurnFact) UnpackJSON

func (fact *BurnFact) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type BurnFactBSONUnpacker

type BurnFactBSONUnpacker struct {
	H  valuehash.Bytes     `bson:"hash"`
	TK []byte              `bson:"token"`
	SD base.AddressDecoder `bson:"sender"`
	IT bson.Raw            `bson:"items"`
}

type BurnFactJSONPacker

type BurnFactJSONPacker struct {
	jsonenc.HintedHead
	H  valuehash.Hash `json:"hash"`
	TK []byte         `json:"token"`
	SD base.Address   `json:"sender"`
	IT []BurnItem     `json:"items"`
}

type BurnFactJSONUnpacker

type BurnFactJSONUnpacker struct {
	H  valuehash.Bytes     `json:"hash"`
	TK []byte              `json:"token"`
	SD base.AddressDecoder `json:"sender"`
	IT json.RawMessage     `json:"items"`
}

type BurnItem

type BurnItem struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewBurnItem

func NewBurnItem(n nft.NFTID, cid currency.CurrencyID) BurnItem

func (BurnItem) Bytes

func (it BurnItem) Bytes() []byte

func (BurnItem) Currency

func (it BurnItem) Currency() currency.CurrencyID

func (BurnItem) IsValid

func (it BurnItem) IsValid([]byte) error

func (BurnItem) MarshalBSON

func (it BurnItem) MarshalBSON() ([]byte, error)

func (BurnItem) MarshalJSON

func (it BurnItem) MarshalJSON() ([]byte, error)

func (BurnItem) NFT

func (it BurnItem) NFT() nft.NFTID

func (BurnItem) Rebuild

func (it BurnItem) Rebuild() BurnItem

func (*BurnItem) UnpackBSON

func (it *BurnItem) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*BurnItem) UnpackJSON

func (it *BurnItem) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type BurnItemBSONUnpacker

type BurnItemBSONUnpacker struct {
	NF bson.Raw `bson:"nft"`
	CR string   `bson:"currency"`
}

type BurnItemJSONPacker

type BurnItemJSONPacker struct {
	jsonenc.HintedHead
	NF nft.NFTID           `json:"nft"`
	CR currency.CurrencyID `json:"currency"`
}

type BurnItemJSONUnpacker

type BurnItemJSONUnpacker struct {
	NF json.RawMessage `json:"nft"`
	CR string          `json:"currency"`
}

type BurnItemProcessor

type BurnItemProcessor struct {
	// contains filtered or unexported fields
}

func (*BurnItemProcessor) Close

func (ipp *BurnItemProcessor) Close() error

func (*BurnItemProcessor) PreProcess

func (ipp *BurnItemProcessor) PreProcess(
	getState func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) error

func (*BurnItemProcessor) Process

func (ipp *BurnItemProcessor) Process(
	_ func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) ([]state.State, error)

type BurnProcessor

type BurnProcessor struct {
	Burn
	// contains filtered or unexported fields
}

func (*BurnProcessor) Close

func (opp *BurnProcessor) Close() error

func (*BurnProcessor) PreProcess

func (opp *BurnProcessor) PreProcess(
	getState func(string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) (state.Processor, error)

func (*BurnProcessor) Process

func (opp *BurnProcessor) Process(
	getState func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) error

type CollectionName

type CollectionName string

func (CollectionName) Bytes

func (cn CollectionName) Bytes() []byte

func (CollectionName) IsValid

func (cn CollectionName) IsValid([]byte) error

func (CollectionName) String

func (cn CollectionName) String() string

type CollectionPolicy

type CollectionPolicy struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func MustNewCollectionPolicy

func MustNewCollectionPolicy(name CollectionName, royalty nft.PaymentParameter, uri nft.URI, whites []base.Address) CollectionPolicy

func NewCollectionPolicy

func NewCollectionPolicy(name CollectionName, royalty nft.PaymentParameter, uri nft.URI, whites []base.Address) CollectionPolicy

func (CollectionPolicy) Addresses

func (policy CollectionPolicy) Addresses() ([]base.Address, error)

func (CollectionPolicy) Bytes

func (policy CollectionPolicy) Bytes() []byte

func (CollectionPolicy) Equal

func (policy CollectionPolicy) Equal(c nft.BasePolicy) bool

func (CollectionPolicy) IsValid

func (policy CollectionPolicy) IsValid([]byte) error

func (CollectionPolicy) MarshalBSON

func (p CollectionPolicy) MarshalBSON() ([]byte, error)

func (CollectionPolicy) MarshalJSON

func (p CollectionPolicy) MarshalJSON() ([]byte, error)

func (CollectionPolicy) Name

func (policy CollectionPolicy) Name() CollectionName

func (CollectionPolicy) Rebuild

func (policy CollectionPolicy) Rebuild() nft.BasePolicy

func (CollectionPolicy) Royalty

func (policy CollectionPolicy) Royalty() nft.PaymentParameter

func (*CollectionPolicy) UnpackBSON

func (p *CollectionPolicy) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*CollectionPolicy) UnpackJSON

func (p *CollectionPolicy) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

func (CollectionPolicy) Uri

func (policy CollectionPolicy) Uri() nft.URI

func (CollectionPolicy) Whites

func (policy CollectionPolicy) Whites() []base.Address

type CollectionPolicyJSONPacker

type CollectionPolicyJSONPacker struct {
	jsonenc.HintedHead
	NM CollectionName       `json:"name"`
	RY nft.PaymentParameter `json:"royalty"`
	UR nft.URI              `json:"uri"`
	WH []base.Address       `json:"whites"`
}

type CollectionPolicyJSONUnpacker

type CollectionPolicyJSONUnpacker struct {
	NM string                `json:"name"`
	RY uint                  `json:"royalty"`
	UR string                `json:"uri"`
	WH []base.AddressDecoder `json:"whites"`
}

type CollectionPolicyUpdater

type CollectionPolicyUpdater struct {
	currency.BaseOperation
}

func (CollectionPolicyUpdater) Process

func (CollectionPolicyUpdater) Process(
	func(key string) (state.State, bool, error),
	func(valuehash.Hash, ...state.State) error,
) error

func (*CollectionPolicyUpdater) UnpackBSON

func (op *CollectionPolicyUpdater) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*CollectionPolicyUpdater) UnpackJSON

func (op *CollectionPolicyUpdater) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type CollectionPolicyUpdaterFact

type CollectionPolicyUpdaterFact struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewCollectionPolicyUpdaterFact

func NewCollectionPolicyUpdaterFact(token []byte, sender base.Address, collection extensioncurrency.ContractID, policy CollectionPolicy, cid currency.CurrencyID) CollectionPolicyUpdaterFact

func (CollectionPolicyUpdaterFact) Addresses

func (fact CollectionPolicyUpdaterFact) Addresses() ([]base.Address, error)

func (CollectionPolicyUpdaterFact) Bytes

func (fact CollectionPolicyUpdaterFact) Bytes() []byte

func (CollectionPolicyUpdaterFact) Collection

func (CollectionPolicyUpdaterFact) Currency

func (CollectionPolicyUpdaterFact) GenerateHash

func (fact CollectionPolicyUpdaterFact) GenerateHash() valuehash.Hash

func (CollectionPolicyUpdaterFact) Hash

func (CollectionPolicyUpdaterFact) IsValid

func (fact CollectionPolicyUpdaterFact) IsValid(b []byte) error

func (CollectionPolicyUpdaterFact) MarshalBSON

func (fact CollectionPolicyUpdaterFact) MarshalBSON() ([]byte, error)

func (CollectionPolicyUpdaterFact) MarshalJSON

func (fact CollectionPolicyUpdaterFact) MarshalJSON() ([]byte, error)

func (CollectionPolicyUpdaterFact) Policy

func (CollectionPolicyUpdaterFact) Rebuild

func (CollectionPolicyUpdaterFact) Sender

func (CollectionPolicyUpdaterFact) Token

func (fact CollectionPolicyUpdaterFact) Token() []byte

func (*CollectionPolicyUpdaterFact) UnpackBSON

func (fact *CollectionPolicyUpdaterFact) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*CollectionPolicyUpdaterFact) UnpackJSON

func (fact *CollectionPolicyUpdaterFact) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type CollectionPolicyUpdaterFactBSONUnpacker

type CollectionPolicyUpdaterFactBSONUnpacker struct {
	H  valuehash.Bytes     `bson:"hash"`
	TK []byte              `bson:"token"`
	SD base.AddressDecoder `bson:"sender"`
	CL string              `bson:"collection"`
	PO bson.Raw            `bson:"policy"`
	CR string              `bson:"currency"`
}

type CollectionPolicyUpdaterFactJSONPacker

type CollectionPolicyUpdaterFactJSONPacker struct {
	jsonenc.HintedHead
	H  valuehash.Hash               `json:"hash"`
	TK []byte                       `json:"token"`
	SD base.Address                 `json:"sender"`
	CL extensioncurrency.ContractID `json:"collection"`
	PO CollectionPolicy             `json:"policy"`
	CR currency.CurrencyID          `json:"currency"`
}

type CollectionPolicyUpdaterFactJSONUnpacker

type CollectionPolicyUpdaterFactJSONUnpacker struct {
	H  valuehash.Bytes     `json:"hash"`
	TK []byte              `json:"token"`
	SD base.AddressDecoder `json:"sender"`
	CL string              `json:"collection"`
	PO json.RawMessage     `json:"policy"`
	CR string              `json:"currency"`
}

type CollectionPolicyUpdaterProcessor

type CollectionPolicyUpdaterProcessor struct {
	CollectionPolicyUpdater
	// contains filtered or unexported fields
}

func (*CollectionPolicyUpdaterProcessor) Close

func (*CollectionPolicyUpdaterProcessor) PreProcess

func (opp *CollectionPolicyUpdaterProcessor) PreProcess(
	getState func(string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) (state.Processor, error)

func (*CollectionPolicyUpdaterProcessor) Process

func (opp *CollectionPolicyUpdaterProcessor) Process(
	_ func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) error

type CollectionRegister

type CollectionRegister struct {
	currency.BaseOperation
}

func NewCollectionRegister

func NewCollectionRegister(fact CollectionRegisterFact, fs []base.FactSign, memo string) (CollectionRegister, error)

func (CollectionRegister) Process

func (CollectionRegister) Process(
	func(key string) (state.State, bool, error),
	func(valuehash.Hash, ...state.State) error,
) error

func (*CollectionRegister) UnpackBSON

func (op *CollectionRegister) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*CollectionRegister) UnpackJSON

func (op *CollectionRegister) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type CollectionRegisterFact

type CollectionRegisterFact struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewCollectionRegisterFact

func NewCollectionRegisterFact(token []byte, sender base.Address, form CollectionRegisterForm, cid currency.CurrencyID) CollectionRegisterFact

func (CollectionRegisterFact) Addresses

func (fact CollectionRegisterFact) Addresses() ([]base.Address, error)

func (CollectionRegisterFact) Bytes

func (fact CollectionRegisterFact) Bytes() []byte

func (CollectionRegisterFact) Currency

func (fact CollectionRegisterFact) Currency() currency.CurrencyID

func (CollectionRegisterFact) Form

func (CollectionRegisterFact) GenerateHash

func (fact CollectionRegisterFact) GenerateHash() valuehash.Hash

func (CollectionRegisterFact) Hash

func (CollectionRegisterFact) IsValid

func (fact CollectionRegisterFact) IsValid(b []byte) error

func (CollectionRegisterFact) MarshalBSON

func (fact CollectionRegisterFact) MarshalBSON() ([]byte, error)

func (CollectionRegisterFact) MarshalJSON

func (fact CollectionRegisterFact) MarshalJSON() ([]byte, error)

func (CollectionRegisterFact) Rebuild

func (CollectionRegisterFact) Sender

func (fact CollectionRegisterFact) Sender() base.Address

func (CollectionRegisterFact) Token

func (fact CollectionRegisterFact) Token() []byte

func (*CollectionRegisterFact) UnpackBSON

func (fact *CollectionRegisterFact) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*CollectionRegisterFact) UnpackJSON

func (fact *CollectionRegisterFact) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type CollectionRegisterFactBSONUnpacker

type CollectionRegisterFactBSONUnpacker struct {
	H  valuehash.Bytes     `bson:"hash"`
	TK []byte              `bson:"token"`
	SD base.AddressDecoder `bson:"sender"`
	FO bson.Raw            `bson:"form"`
	CR string              `bson:"currency"`
}

type CollectionRegisterFactJSONPacker

type CollectionRegisterFactJSONPacker struct {
	jsonenc.HintedHead
	H  valuehash.Hash         `json:"hash"`
	TK []byte                 `json:"token"`
	SD base.Address           `json:"sender"`
	FO CollectionRegisterForm `json:"form"`
	CR currency.CurrencyID    `json:"currency"`
}

type CollectionRegisterFactJSONUnpacker

type CollectionRegisterFactJSONUnpacker struct {
	H  valuehash.Bytes     `json:"hash"`
	TK []byte              `json:"token"`
	SD base.AddressDecoder `json:"sender"`
	FO json.RawMessage     `json:"form"`
	CR string              `json:"currency"`
}

type CollectionRegisterForm

type CollectionRegisterForm struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func MustNewCollectionRegisterForm

func MustNewCollectionRegisterForm(target base.Address,
	symbol extensioncurrency.ContractID,
	name CollectionName,
	royalty nft.PaymentParameter,
	uri nft.URI,
	whites []base.Address,
) CollectionRegisterForm

func NewCollectionRegisterForm

func NewCollectionRegisterForm(
	target base.Address,
	symbol extensioncurrency.ContractID,
	name CollectionName,
	royalty nft.PaymentParameter,
	uri nft.URI,
	whites []base.Address,
) CollectionRegisterForm

func (CollectionRegisterForm) Addresses

func (form CollectionRegisterForm) Addresses() ([]base.Address, error)

func (CollectionRegisterForm) Bytes

func (form CollectionRegisterForm) Bytes() []byte

func (CollectionRegisterForm) IsValid

func (form CollectionRegisterForm) IsValid([]byte) error

func (CollectionRegisterForm) MarshalBSON

func (form CollectionRegisterForm) MarshalBSON() ([]byte, error)

func (CollectionRegisterForm) MarshalJSON

func (form CollectionRegisterForm) MarshalJSON() ([]byte, error)

func (CollectionRegisterForm) Name

func (CollectionRegisterForm) Rebuild

func (CollectionRegisterForm) Royalty

func (CollectionRegisterForm) Symbol

func (CollectionRegisterForm) Target

func (form CollectionRegisterForm) Target() base.Address

func (*CollectionRegisterForm) UnpackBSON

func (form *CollectionRegisterForm) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*CollectionRegisterForm) UnpackJSON

func (form *CollectionRegisterForm) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

func (CollectionRegisterForm) Uri

func (form CollectionRegisterForm) Uri() nft.URI

func (CollectionRegisterForm) Whites

func (form CollectionRegisterForm) Whites() []base.Address

type CollectionRegisterFormBSONUnpacker

type CollectionRegisterFormBSONUnpacker struct {
	TG base.AddressDecoder   `bson:"target"`
	SB string                `bson:"symbol"`
	NM string                `bson:"name"`
	RY uint                  `bson:"royalty"`
	UR string                `bson:"uri"`
	WH []base.AddressDecoder `bson:"whites"`
}

type CollectionRegisterFormJSONPacker

type CollectionRegisterFormJSONPacker struct {
	jsonenc.HintedHead
	TG base.Address                 `json:"target"`
	SB extensioncurrency.ContractID `json:"symbol"`
	NM CollectionName               `json:"name"`
	RY nft.PaymentParameter         `json:"royalty"`
	UR nft.URI                      `json:"uri"`
	WH []base.Address               `json:"whites"`
}

type CollectionRegisterFormJSONUnpacker

type CollectionRegisterFormJSONUnpacker struct {
	TG base.AddressDecoder   `json:"target"`
	SB string                `json:"symbol"`
	NM string                `json:"name"`
	RY uint                  `json:"royalty"`
	UR string                `json:"uri"`
	WH []base.AddressDecoder `json:"whites"`
}

type CollectionRegisterProcessor

type CollectionRegisterProcessor struct {
	CollectionRegister

	DesignState state.State
	// contains filtered or unexported fields
}

func (*CollectionRegisterProcessor) Close

func (opp *CollectionRegisterProcessor) Close() error

func (*CollectionRegisterProcessor) PreProcess

func (opp *CollectionRegisterProcessor) PreProcess(
	getState func(string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) (state.Processor, error)

func (*CollectionRegisterProcessor) Process

func (opp *CollectionRegisterProcessor) Process(
	_ func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) error

type Delegate

type Delegate struct {
	currency.BaseOperation
}

func NewDelegate

func NewDelegate(fact DelegateFact, fs []base.FactSign, memo string) (Delegate, error)

func (Delegate) Process

func (Delegate) Process(
	func(key string) (state.State, bool, error),
	func(valuehash.Hash, ...state.State) error,
) error

func (*Delegate) UnpackBSON

func (op *Delegate) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*Delegate) UnpackJSON

func (op *Delegate) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type DelegateFact

type DelegateFact struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewDelegateFact

func NewDelegateFact(token []byte, sender base.Address, items []DelegateItem) DelegateFact

func (DelegateFact) Addresses

func (fact DelegateFact) Addresses() ([]base.Address, error)

func (DelegateFact) Bytes

func (fact DelegateFact) Bytes() []byte

func (DelegateFact) Currencies

func (fact DelegateFact) Currencies() []currency.CurrencyID

func (DelegateFact) GenerateHash

func (fact DelegateFact) GenerateHash() valuehash.Hash

func (DelegateFact) Hash

func (fact DelegateFact) Hash() valuehash.Hash

func (DelegateFact) IsValid

func (fact DelegateFact) IsValid(b []byte) error

func (DelegateFact) Items

func (fact DelegateFact) Items() []DelegateItem

func (DelegateFact) MarshalBSON

func (fact DelegateFact) MarshalBSON() ([]byte, error)

func (DelegateFact) MarshalJSON

func (fact DelegateFact) MarshalJSON() ([]byte, error)

func (DelegateFact) Rebuild

func (fact DelegateFact) Rebuild() DelegateFact

func (DelegateFact) Sender

func (fact DelegateFact) Sender() base.Address

func (DelegateFact) Token

func (fact DelegateFact) Token() []byte

func (*DelegateFact) UnpackBSON

func (fact *DelegateFact) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*DelegateFact) UnpackJSON

func (fact *DelegateFact) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type DelegateFactBSONUnpacker

type DelegateFactBSONUnpacker struct {
	H  valuehash.Bytes     `bson:"hash"`
	TK []byte              `bson:"token"`
	SD base.AddressDecoder `bson:"sender"`
	IT bson.Raw            `bson:"items"`
}

type DelegateFactJSONPacker

type DelegateFactJSONPacker struct {
	jsonenc.HintedHead
	H  valuehash.Hash `json:"hash"`
	TK []byte         `json:"token"`
	SD base.Address   `json:"sender"`
	IT []DelegateItem `json:"items"`
}

type DelegateFactJSONUnpacker

type DelegateFactJSONUnpacker struct {
	H  valuehash.Bytes     `json:"hash"`
	TK []byte              `json:"token"`
	SD base.AddressDecoder `json:"sender"`
	IT json.RawMessage     `json:"items"`
}

type DelegateItem

type DelegateItem struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func (DelegateItem) Addresses

func (it DelegateItem) Addresses() ([]base.Address, error)

func (DelegateItem) Agent

func (it DelegateItem) Agent() base.Address

func (DelegateItem) Bytes

func (it DelegateItem) Bytes() []byte

func (DelegateItem) Collection

func (it DelegateItem) Collection() extensioncurrency.ContractID

func (DelegateItem) Currency

func (it DelegateItem) Currency() currency.CurrencyID

func (DelegateItem) IsValid

func (it DelegateItem) IsValid([]byte) error

func (DelegateItem) MarshalBSON

func (it DelegateItem) MarshalBSON() ([]byte, error)

func (DelegateItem) MarshalJSON

func (it DelegateItem) MarshalJSON() ([]byte, error)

func (DelegateItem) Mode

func (it DelegateItem) Mode() DelegateMode

func (DelegateItem) Rebuild

func (it DelegateItem) Rebuild() DelegateItem

func (*DelegateItem) UnpackBSON

func (it *DelegateItem) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*DelegateItem) UnpackJSON

func (it *DelegateItem) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type DelegateItemBSONUnpacker

type DelegateItemBSONUnpacker struct {
	CL string              `bson:"collection"`
	AG base.AddressDecoder `bson:"agent"`
	MD string              `bson:"mode"`
	CR string              `bson:"currency"`
}

type DelegateItemJSONPacker

type DelegateItemJSONPacker struct {
	jsonenc.HintedHead
	CL extensioncurrency.ContractID `json:"collection"`
	AG base.Address                 `json:"agent"`
	MD DelegateMode                 `json:"mode"`
	CR currency.CurrencyID          `json:"currency"`
}

type DelegateItemJSONUnpacker

type DelegateItemJSONUnpacker struct {
	CL string              `json:"collection"`
	AG base.AddressDecoder `json:"agent"`
	MD string              `json:"mode"`
	CR string              `json:"currency"`
}

type DelegateItemProcessor

type DelegateItemProcessor struct {
	// contains filtered or unexported fields
}

func (*DelegateItemProcessor) Close

func (ipp *DelegateItemProcessor) Close() error

func (*DelegateItemProcessor) PreProcess

func (ipp *DelegateItemProcessor) PreProcess(
	getState func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) error

func (*DelegateItemProcessor) Process

func (ipp *DelegateItemProcessor) Process(
	_ func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) ([]state.State, error)

type DelegateMode

type DelegateMode string

func (DelegateMode) Bytes

func (mode DelegateMode) Bytes() []byte

func (DelegateMode) Equal

func (mode DelegateMode) Equal(cmode DelegateMode) bool

func (DelegateMode) IsValid

func (mode DelegateMode) IsValid([]byte) error

func (DelegateMode) String

func (mode DelegateMode) String() string

type DelegateProcessor

type DelegateProcessor struct {
	Delegate
	// contains filtered or unexported fields
}

func (*DelegateProcessor) Close

func (opp *DelegateProcessor) Close() error

func (*DelegateProcessor) PreProcess

func (opp *DelegateProcessor) PreProcess(
	getState func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) (state.Processor, error)

func (*DelegateProcessor) Process

func (opp *DelegateProcessor) Process(
	getState func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) error

type DuplicationType

type DuplicationType string
const (
	DuplicationTypeSender   DuplicationType = "sender"
	DuplicationTypeCurrency DuplicationType = "currency"
)

type Mint

type Mint struct {
	currency.BaseOperation
}

func NewMint

func NewMint(fact MintFact, fs []base.FactSign, memo string) (Mint, error)

func (Mint) Process

func (Mint) Process(
	func(key string) (state.State, bool, error),
	func(valuehash.Hash, ...state.State) error,
) error

func (*Mint) UnpackBSON

func (op *Mint) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*Mint) UnpackJSON

func (op *Mint) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type MintFact

type MintFact struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewMintFact

func NewMintFact(token []byte, sender base.Address, items []MintItem) MintFact

func (MintFact) Addresses

func (fact MintFact) Addresses() ([]base.Address, error)

func (MintFact) Bytes

func (fact MintFact) Bytes() []byte

func (MintFact) Currencies

func (fact MintFact) Currencies() []currency.CurrencyID

func (MintFact) GenerateHash

func (fact MintFact) GenerateHash() valuehash.Hash

func (MintFact) Hash

func (fact MintFact) Hash() valuehash.Hash

func (MintFact) IsValid

func (fact MintFact) IsValid(b []byte) error

func (MintFact) Items

func (fact MintFact) Items() []MintItem

func (MintFact) MarshalBSON

func (fact MintFact) MarshalBSON() ([]byte, error)

func (MintFact) MarshalJSON

func (fact MintFact) MarshalJSON() ([]byte, error)

func (MintFact) Rebuild

func (fact MintFact) Rebuild() MintFact

func (MintFact) Sender

func (fact MintFact) Sender() base.Address

func (MintFact) Token

func (fact MintFact) Token() []byte

func (*MintFact) UnpackBSON

func (fact *MintFact) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*MintFact) UnpackJSON

func (fact *MintFact) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type MintFactBSONUnpacker

type MintFactBSONUnpacker struct {
	H  valuehash.Bytes     `bson:"hash"`
	TK []byte              `bson:"token"`
	SD base.AddressDecoder `bson:"sender"`
	IT bson.Raw            `bson:"items"`
}

type MintFactJSONPacker

type MintFactJSONPacker struct {
	jsonenc.HintedHead
	H  valuehash.Hash `json:"hash"`
	TK []byte         `json:"token"`
	SD base.Address   `json:"sender"`
	IT []MintItem     `json:"items"`
}

type MintFactJSONUnpacker

type MintFactJSONUnpacker struct {
	H  valuehash.Bytes     `json:"hash"`
	TK []byte              `json:"token"`
	SD base.AddressDecoder `json:"sender"`
	IT json.RawMessage     `json:"items"`
}

type MintForm

type MintForm struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func MustNewMintform

func MustNewMintform(hash nft.NFTHash, uri nft.URI, creators nft.Signers, copyrighters nft.Signers) MintForm

func NewMintForm

func NewMintForm(hash nft.NFTHash, uri nft.URI, creators nft.Signers, copyrighters nft.Signers) MintForm

func (MintForm) Addresses

func (form MintForm) Addresses() ([]base.Address, error)

func (MintForm) Bytes

func (form MintForm) Bytes() []byte

func (MintForm) Copyrighters

func (form MintForm) Copyrighters() nft.Signers

func (MintForm) Creators

func (form MintForm) Creators() nft.Signers

func (MintForm) IsValid

func (form MintForm) IsValid([]byte) error

func (MintForm) MarshalBSON

func (form MintForm) MarshalBSON() ([]byte, error)

func (MintForm) MarshalJSON

func (form MintForm) MarshalJSON() ([]byte, error)

func (MintForm) NftHash

func (form MintForm) NftHash() nft.NFTHash

func (*MintForm) UnpackBSON

func (form *MintForm) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*MintForm) UnpackJSON

func (form *MintForm) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

func (MintForm) Uri

func (form MintForm) Uri() nft.URI

type MintFormBSONUnpacker

type MintFormBSONUnpacker struct {
	HS string   `bson:"hash"`
	UR string   `bson:"uri"`
	CR bson.Raw `bson:"creators"`
	CP bson.Raw `bson:"copyrighters"`
}

type MintFormJSONPacker

type MintFormJSONPacker struct {
	jsonenc.HintedHead
	HS nft.NFTHash `json:"hash"`
	UR nft.URI     `json:"uri"`
	CR nft.Signers `json:"creators"`
	CP nft.Signers `json:"copyrighters"`
}

type MintFormJSONUnpacker

type MintFormJSONUnpacker struct {
	HS string          `json:"hash"`
	UR string          `json:"uri"`
	CR json.RawMessage `json:"creators"`
	CP json.RawMessage `json:"copyrighters"`
}

type MintItem

type MintItem struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewMintItem

func NewMintItem(symbol extensioncurrency.ContractID, form MintForm, cid currency.CurrencyID) MintItem

func (MintItem) Addresses

func (it MintItem) Addresses() ([]base.Address, error)

func (MintItem) Bytes

func (it MintItem) Bytes() []byte

func (MintItem) Collection

func (it MintItem) Collection() extensioncurrency.ContractID

func (MintItem) Currency

func (it MintItem) Currency() currency.CurrencyID

func (MintItem) Form

func (it MintItem) Form() MintForm

func (MintItem) IsValid

func (it MintItem) IsValid([]byte) error

func (MintItem) MarshalBSON

func (it MintItem) MarshalBSON() ([]byte, error)

func (MintItem) MarshalJSON

func (it MintItem) MarshalJSON() ([]byte, error)

func (MintItem) Rebuild

func (it MintItem) Rebuild() MintItem

func (*MintItem) UnpackBSON

func (it *MintItem) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*MintItem) UnpackJSON

func (it *MintItem) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type MintItemBSONUnpacker

type MintItemBSONUnpacker struct {
	CL string   `bson:"collection"`
	FO bson.Raw `bson:"form"`
	CR string   `bson:"currency"`
}

type MintItemJSONPacker

type MintItemJSONPacker struct {
	jsonenc.HintedHead
	CL extensioncurrency.ContractID `json:"collection"`
	FO MintForm                     `json:"form"`
	CR currency.CurrencyID          `json:"currency"`
}

type MintItemJSONUnpacker

type MintItemJSONUnpacker struct {
	CL string          `json:"collection"`
	FO json.RawMessage `json:"form"`
	CR string          `json:"currency"`
}

type MintItemProcessor

type MintItemProcessor struct {
	// contains filtered or unexported fields
}

func (*MintItemProcessor) Close

func (ipp *MintItemProcessor) Close() error

func (*MintItemProcessor) PreProcess

func (ipp *MintItemProcessor) PreProcess(
	getState func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) error

func (*MintItemProcessor) Process

func (ipp *MintItemProcessor) Process(
	_ func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) ([]state.State, error)

type MintProcessor

type MintProcessor struct {
	Mint
	// contains filtered or unexported fields
}

func (*MintProcessor) Close

func (opp *MintProcessor) Close() error

func (*MintProcessor) PreProcess

func (opp *MintProcessor) PreProcess(
	getState func(string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) (state.Processor, error)

func (*MintProcessor) Process

func (opp *MintProcessor) Process(
	getState func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) error

type NFTBox

type NFTBox struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewNFTBox

func NewNFTBox(nfts []nft.NFTID) NFTBox

func StateNFTsValue

func StateNFTsValue(st state.State) (NFTBox, error)

func (*NFTBox) Append

func (nbx *NFTBox) Append(n nft.NFTID) error

func (NFTBox) Bytes

func (nbx NFTBox) Bytes() []byte

func (NFTBox) Equal

func (nbx NFTBox) Equal(b NFTBox) bool

func (NFTBox) Exists

func (nbx NFTBox) Exists(id nft.NFTID) bool

func (NFTBox) GenerateHash

func (nbx NFTBox) GenerateHash() valuehash.Hash

func (NFTBox) Get

func (nbx NFTBox) Get(id nft.NFTID) (nft.NFTID, error)

func (NFTBox) Hash

func (nbx NFTBox) Hash() valuehash.Hash

func (NFTBox) Hint

func (nbx NFTBox) Hint() hint.Hint

func (NFTBox) IsEmpty

func (nbx NFTBox) IsEmpty() bool

func (NFTBox) IsValid

func (nbx NFTBox) IsValid([]byte) error

func (NFTBox) MarshalBSON

func (nbx NFTBox) MarshalBSON() ([]byte, error)

func (NFTBox) MarshalJSON

func (nbx NFTBox) MarshalJSON() ([]byte, error)

func (NFTBox) NFTs

func (nbx NFTBox) NFTs() []nft.NFTID

func (*NFTBox) Remove

func (nbx *NFTBox) Remove(n nft.NFTID) error

func (*NFTBox) Sort

func (nbx *NFTBox) Sort(ascending bool)

func (*NFTBox) UnpackBSON

func (nbx *NFTBox) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*NFTBox) UnpackJSON

func (nbx *NFTBox) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type NFTBoxBSONPacker

type NFTBoxBSONPacker struct {
	AG []nft.NFTID `bson:"nfts"`
}

type NFTBoxBSONUnpacker

type NFTBoxBSONUnpacker struct {
	NS bson.Raw `bson:"nfts"`
}

type NFTBoxJSONPacker

type NFTBoxJSONPacker struct {
	jsonenc.HintedHead
	NS []nft.NFTID `json:"nfts"`
}

type NFTBoxJSONUnpacker

type NFTBoxJSONUnpacker struct {
	NS json.RawMessage `json:"nfts"`
}

type OperationProcessor

type OperationProcessor struct {
	sync.RWMutex
	*logging.Logging
	// contains filtered or unexported fields
}

func (*OperationProcessor) Cancel

func (opr *OperationProcessor) Cancel() error

func (*OperationProcessor) Close

func (opr *OperationProcessor) Close() error

func (*OperationProcessor) New

func (*OperationProcessor) PreProcess

func (opr *OperationProcessor) PreProcess(op state.Processor) (state.Processor, error)

func (*OperationProcessor) Process

func (opr *OperationProcessor) Process(op state.Processor) error

func (*OperationProcessor) SetProcessor

func (opr *OperationProcessor) SetProcessor(
	hinter hint.Hinter,
	newProcessor currency.GetNewProcessor,
) (prprocessor.OperationProcessor, error)

type PolicyBSONUnpacker

type PolicyBSONUnpacker struct {
	NM string                `bson:"name"`
	RY uint                  `bson:"royalty"`
	UR string                `bson:"uri"`
	WH []base.AddressDecoder `bson:"whites"`
}

type Qualification

type Qualification string

func (Qualification) Bytes

func (q Qualification) Bytes() []byte

func (Qualification) IsValid

func (q Qualification) IsValid([]byte) error

func (Qualification) String

func (q Qualification) String() string

type Sign

type Sign struct {
	currency.BaseOperation
}

func NewSign

func NewSign(fact SignFact, fs []base.FactSign, memo string) (Sign, error)

func (Sign) Process

func (Sign) Process(
	func(key string) (state.State, bool, error),
	func(valuehash.Hash, ...state.State) error,
) error

func (*Sign) UnpackBSON

func (op *Sign) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*Sign) UnpackJSON

func (op *Sign) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type SignFact

type SignFact struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewSignFact

func NewSignFact(token []byte, sender base.Address, items []SignItem) SignFact

func (SignFact) Addresses

func (fact SignFact) Addresses() ([]base.Address, error)

func (SignFact) Bytes

func (fact SignFact) Bytes() []byte

func (SignFact) GenerateHash

func (fact SignFact) GenerateHash() valuehash.Hash

func (SignFact) Hash

func (fact SignFact) Hash() valuehash.Hash

func (SignFact) IsValid

func (fact SignFact) IsValid(b []byte) error

func (SignFact) Items

func (fact SignFact) Items() []SignItem

func (SignFact) MarshalBSON

func (fact SignFact) MarshalBSON() ([]byte, error)

func (SignFact) MarshalJSON

func (fact SignFact) MarshalJSON() ([]byte, error)

func (SignFact) Rebuild

func (fact SignFact) Rebuild() SignFact

func (SignFact) Sender

func (fact SignFact) Sender() base.Address

func (SignFact) Token

func (fact SignFact) Token() []byte

func (*SignFact) UnpackBSON

func (fact *SignFact) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*SignFact) UnpackJSON

func (fact *SignFact) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type SignFactBSONUnpacker

type SignFactBSONUnpacker struct {
	H  valuehash.Bytes     `bson:"hash"`
	TK []byte              `bson:"token"`
	SD base.AddressDecoder `bson:"sender"`
	IT bson.Raw            `bson:"items"`
}

type SignFactJSONPacker

type SignFactJSONPacker struct {
	jsonenc.HintedHead
	H  valuehash.Hash `json:"hash"`
	TK []byte         `json:"token"`
	SD base.Address   `json:"sender"`
	IT []SignItem     `json:"items"`
}

type SignFactJSONUnpacker

type SignFactJSONUnpacker struct {
	H  valuehash.Bytes     `json:"hash"`
	TK []byte              `json:"token"`
	SD base.AddressDecoder `json:"sender"`
	IT json.RawMessage     `json:"items"`
}

type SignItem

type SignItem struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewSignItem

func NewSignItem(q Qualification, n nft.NFTID, cid currency.CurrencyID) SignItem

func (SignItem) Bytes

func (it SignItem) Bytes() []byte

func (SignItem) Currency

func (it SignItem) Currency() currency.CurrencyID

func (SignItem) IsValid

func (it SignItem) IsValid([]byte) error

func (SignItem) MarshalBSON

func (it SignItem) MarshalBSON() ([]byte, error)

func (SignItem) MarshalJSON

func (it SignItem) MarshalJSON() ([]byte, error)

func (SignItem) NFT

func (it SignItem) NFT() nft.NFTID

func (SignItem) Qualification

func (it SignItem) Qualification() Qualification

func (SignItem) Rebuild

func (it SignItem) Rebuild() SignItem

func (*SignItem) UnpackBSON

func (it *SignItem) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*SignItem) UnpackJSON

func (it *SignItem) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type SignItemBSONUnpacker

type SignItemBSONUnpacker struct {
	QU string   `bson:"qualification"`
	NF bson.Raw `bson:"nft"`
	CR string   `bson:"currency"`
}

type SignItemJSONPacker

type SignItemJSONPacker struct {
	jsonenc.HintedHead
	QU Qualification       `json:"qualification"`
	NF nft.NFTID           `json:"nft"`
	CR currency.CurrencyID `json:"currency"`
}

type SignItemJSONUnpacker

type SignItemJSONUnpacker struct {
	QU string          `json:"qualification"`
	NF json.RawMessage `json:"nft"`
	CR string          `json:"currency"`
}

type SignItemProcessor

type SignItemProcessor struct {
	// contains filtered or unexported fields
}

func (*SignItemProcessor) Close

func (ipp *SignItemProcessor) Close() error

func (*SignItemProcessor) PreProcess

func (ipp *SignItemProcessor) PreProcess(
	getState func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) error

func (*SignItemProcessor) Process

func (ipp *SignItemProcessor) Process(
	_ func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) ([]state.State, error)

type SignProcessor

type SignProcessor struct {
	Sign
	// contains filtered or unexported fields
}

func (*SignProcessor) Close

func (opp *SignProcessor) Close() error

func (*SignProcessor) PreProcess

func (opp *SignProcessor) PreProcess(
	getState func(string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) (state.Processor, error)

func (*SignProcessor) Process

func (opp *SignProcessor) Process(
	getState func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) error

type Transfer

type Transfer struct {
	currency.BaseOperation
}

func NewTransfer

func NewTransfer(fact TransferFact, fs []base.FactSign, memo string) (Transfer, error)

func (Transfer) Process

func (Transfer) Process(
	func(key string) (state.State, bool, error),
	func(valuehash.Hash, ...state.State) error,
) error

func (*Transfer) UnpackBSON

func (op *Transfer) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*Transfer) UnpackJSON

func (op *Transfer) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type TransferFact

type TransferFact struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewTransferFact

func NewTransferFact(token []byte, sender base.Address, items []TransferItem) TransferFact

func (TransferFact) Addresses

func (fact TransferFact) Addresses() ([]base.Address, error)

func (TransferFact) Bytes

func (fact TransferFact) Bytes() []byte

func (TransferFact) GenerateHash

func (fact TransferFact) GenerateHash() valuehash.Hash

func (TransferFact) Hash

func (fact TransferFact) Hash() valuehash.Hash

func (TransferFact) IsValid

func (fact TransferFact) IsValid(b []byte) error

func (TransferFact) Items

func (fact TransferFact) Items() []TransferItem

func (TransferFact) MarshalBSON

func (fact TransferFact) MarshalBSON() ([]byte, error)

func (TransferFact) MarshalJSON

func (fact TransferFact) MarshalJSON() ([]byte, error)

func (TransferFact) Rebuild

func (fact TransferFact) Rebuild() TransferFact

func (TransferFact) Sender

func (fact TransferFact) Sender() base.Address

func (TransferFact) Token

func (fact TransferFact) Token() []byte

func (*TransferFact) UnpackBSON

func (fact *TransferFact) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*TransferFact) UnpackJSON

func (fact *TransferFact) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type TransferFactBSONUnpacker

type TransferFactBSONUnpacker struct {
	H  valuehash.Bytes     `bson:"hash"`
	TK []byte              `bson:"token"`
	SD base.AddressDecoder `bson:"sender"`
	IT bson.Raw            `bson:"items"`
}

type TransferFactJSONPacker

type TransferFactJSONPacker struct {
	jsonenc.HintedHead
	H  valuehash.Hash `json:"hash"`
	TK []byte         `json:"token"`
	SD base.Address   `json:"sender"`
	IT []TransferItem `json:"items"`
}

type TransferFactJSONUnpacker

type TransferFactJSONUnpacker struct {
	H  valuehash.Bytes     `json:"hash"`
	TK []byte              `json:"token"`
	SD base.AddressDecoder `json:"sender"`
	IT json.RawMessage     `json:"items"`
}

type TransferItem

type TransferItem struct {
	hint.BaseHinter
	// contains filtered or unexported fields
}

func NewTransferItem

func NewTransferItem(receiver base.Address, n nft.NFTID, cid currency.CurrencyID) TransferItem

func (TransferItem) Addresses

func (it TransferItem) Addresses() ([]base.Address, error)

func (TransferItem) Bytes

func (it TransferItem) Bytes() []byte

func (TransferItem) Currency

func (it TransferItem) Currency() currency.CurrencyID

func (TransferItem) IsValid

func (it TransferItem) IsValid([]byte) error

func (TransferItem) MarshalBSON

func (it TransferItem) MarshalBSON() ([]byte, error)

func (TransferItem) MarshalJSON

func (it TransferItem) MarshalJSON() ([]byte, error)

func (TransferItem) NFT

func (it TransferItem) NFT() nft.NFTID

func (TransferItem) Rebuild

func (it TransferItem) Rebuild() TransferItem

func (TransferItem) Receiver

func (it TransferItem) Receiver() base.Address

func (*TransferItem) UnpackBSON

func (it *TransferItem) UnpackBSON(b []byte, enc *bsonenc.Encoder) error

func (*TransferItem) UnpackJSON

func (it *TransferItem) UnpackJSON(b []byte, enc *jsonenc.Encoder) error

type TransferItemBSONUnpacker

type TransferItemBSONUnpacker struct {
	RC base.AddressDecoder `bson:"receiver"`
	NF bson.Raw            `bson:"nft"`
	CR string              `bson:"currency"`
}

type TransferItemJSONPacker

type TransferItemJSONPacker struct {
	jsonenc.HintedHead
	RC base.Address        `json:"receiver"`
	NF nft.NFTID           `json:"nft"`
	CR currency.CurrencyID `json:"currency"`
}

type TransferItemJSONUnpacker

type TransferItemJSONUnpacker struct {
	RC base.AddressDecoder `json:"receiver"`
	NF json.RawMessage     `json:"nft"`
	CR string              `json:"currency"`
}

type TransferItemProcessor

type TransferItemProcessor struct {
	// contains filtered or unexported fields
}

func (*TransferItemProcessor) Close

func (ipp *TransferItemProcessor) Close() error

func (*TransferItemProcessor) PreProcess

func (ipp *TransferItemProcessor) PreProcess(
	getState func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) error

func (*TransferItemProcessor) Process

func (ipp *TransferItemProcessor) Process(
	_ func(key string) (state.State, bool, error),
	_ func(valuehash.Hash, ...state.State) error,
) ([]state.State, error)

type TransferProcessor

type TransferProcessor struct {
	Transfer
	// contains filtered or unexported fields
}

func (*TransferProcessor) Close

func (opp *TransferProcessor) Close() error

func (*TransferProcessor) PreProcess

func (opp *TransferProcessor) PreProcess(
	getState func(string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) (state.Processor, error)

func (*TransferProcessor) Process

func (opp *TransferProcessor) Process(
	getState func(key string) (state.State, bool, error),
	setState func(valuehash.Hash, ...state.State) error,
) error

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL