mirror of https://github.com/poanetwork/gecko.git
37 lines
784 B
Go
37 lines
784 B
Go
package nftfx
|
|
|
|
import (
|
|
"errors"
|
|
|
|
"github.com/ava-labs/gecko/vms/secp256k1fx"
|
|
)
|
|
|
|
const (
|
|
// MaxPayloadSize is the maximum size that can be placed into a payload
|
|
MaxPayloadSize = 1 << 10
|
|
)
|
|
|
|
var (
|
|
errNilTransferOutput = errors.New("nil transfer output")
|
|
errPayloadTooLarge = errors.New("payload too large")
|
|
)
|
|
|
|
// TransferOutput ...
|
|
type TransferOutput struct {
|
|
GroupID uint32 `serialize:"true" json:"groupID"`
|
|
Payload []byte `serialize:"true" json:"payload"`
|
|
secp256k1fx.OutputOwners `serialize:"true"`
|
|
}
|
|
|
|
// Verify ...
|
|
func (out *TransferOutput) Verify() error {
|
|
switch {
|
|
case out == nil:
|
|
return errNilTransferOutput
|
|
case len(out.Payload) > MaxPayloadSize:
|
|
return errPayloadTooLarge
|
|
default:
|
|
return out.OutputOwners.Verify()
|
|
}
|
|
}
|