transaction

package
v1.2.1 Latest Latest
Warning

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

Go to latest
Published: Apr 8, 2026 License: Apache-2.0 Imports: 15 Imported by: 17

Documentation

Index

Constants

This section is empty.

Variables

View Source
var (
	ErrSignerNotSet         = errors.New("signer not set")
	ErrSenderNotSet         = errors.New("sender not set")
	ErrSuiClientNotSet      = errors.New("sui client not set")
	ErrGasDataNotAllSet     = errors.New("gas data not all set")
	ErrGasPriceNotSet       = errors.New("gas price not set: call SetGasPrice or attach a SuiClient")
	ErrInvalidSuiAddress    = errors.New("invalid sui address")
	ErrInvalidObjectId      = errors.New("invalid object id")
	ErrObjectNotSupportType = errors.New("object not support type")
)

Functions

func ConvertObjectDigestBytesToString

func ConvertObjectDigestBytesToString(digest models.ObjectDigestBytes) models.ObjectDigest

func ConvertObjectDigestStringToBytes

func ConvertObjectDigestStringToBytes(digest models.ObjectDigest) (*models.ObjectDigestBytes, error)

func ConvertSuiAddressBytesToString

func ConvertSuiAddressBytesToString(addr models.SuiAddressBytes) models.SuiAddress

func ConvertSuiAddressStringToBytes

func ConvertSuiAddressStringToBytes(address models.SuiAddress) (*models.SuiAddressBytes, error)

Types

type Argument

type Argument struct {
	GasCoin      any
	Input        *uint16
	Result       *uint16
	NestedResult *NestedResult
}

Argument https://github.com/MystenLabs/sui/blob/fb27c6c7166f5e4279d5fd1b2ebc5580ca0e81b2/crates/sui-types/src/transaction.rs#L745 - GasCoin - Input - Result - NestedResult

func (*Argument) IsBcsEnum

func (*Argument) IsBcsEnum()

type CallArg

type CallArg struct {
	Pure             *Pure
	Object           *ObjectArg
	UnresolvedPure   *UnresolvedPure
	UnresolvedObject *UnresolvedObject
}

CallArg https://github.com/MystenLabs/sui/blob/fb27c6c7166f5e4279d5fd1b2ebc5580ca0e81b2/crates/sui-types/src/transaction.rs#L80 - Pure - Object - UnresolvedPure - UnresolvedObject

func (*CallArg) IsBcsEnum

func (*CallArg) IsBcsEnum()

type Command

type Command struct {
	MoveCall        *ProgrammableMoveCall
	TransferObjects *TransferObjects
	SplitCoins      *SplitCoins
	MergeCoins      *MergeCoins
	Publish         *Publish
	MakeMoveVec     *MakeMoveVec
	Upgrade         *Upgrade
}

Command https://github.com/MystenLabs/sui/blob/fb27c6c7166f5e4279d5fd1b2ebc5580ca0e81b2/crates/sui-types/src/transaction.rs#L712 - MoveCall - TransferObjects - SplitCoins - MergeCoins - Publish - MakeMoveVec - Upgrade

func (*Command) IsBcsEnum

func (*Command) IsBcsEnum()

type MakeMoveVec

type MakeMoveVec struct {
	Type     *string
	Elements []*Argument
}

type MergeCoins

type MergeCoins struct {
	Destination *Argument
	Sources     []*Argument
}

type NestedResult

type NestedResult struct {
	Index       uint16
	ResultIndex uint16
}

type ObjectArg

type ObjectArg struct {
	ImmOrOwnedObject *SuiObjectRef
	SharedObject     *SharedObjectRef
	Receiving        *SuiObjectRef
}

ObjectArg - ImmOrOwnedObject - SharedObject - Receiving

func (ObjectArg) IsBcsEnum

func (ObjectArg) IsBcsEnum()

type ProgrammableMoveCall

type ProgrammableMoveCall struct {
	Package       models.SuiAddressBytes
	Module        string
	Function      string
	TypeArguments []*TypeTag
	Arguments     []*Argument
}

ProgrammableMoveCall https://github.com/MystenLabs/sui/blob/fb27c6c7166f5e4279d5fd1b2ebc5580ca0e81b2/crates/sui-types/src/transaction.rs#L762

type Publish

type Publish struct {
	Modules      [][]byte
	Dependencies []models.SuiAddressBytes
}

type Pure

type Pure struct {
	Bytes []byte
}

type SharedObjectRef

type SharedObjectRef struct {
	ObjectId             models.SuiAddressBytes
	InitialSharedVersion uint64
	Mutable              bool
}

type SplitCoins

type SplitCoins struct {
	Coin   *Argument
	Amount []*Argument
}

type StructTag

type StructTag struct {
	Address    models.SuiAddressBytes
	Module     string
	Name       string
	TypeParams []*TypeTag
}

type SuiObjectRef

type SuiObjectRef struct {
	ObjectId models.SuiAddressBytes
	Version  uint64
	Digest   models.ObjectDigestBytes
}

func NewSuiObjectRef

func NewSuiObjectRef(objectId models.SuiAddress, version string, digest models.ObjectDigest) (*SuiObjectRef, error)

type Transaction

type Transaction struct {
	Data            TransactionData
	Signer          *signer.Signer
	SponsoredSigner *signer.Signer
	SuiClient       *sui.Client
}

func NewTransaction

func NewTransaction() *Transaction

func (*Transaction) Add

func (tx *Transaction) Add(command Command) Argument

func (*Transaction) BuildBCSBytes added in v1.2.1

func (tx *Transaction) BuildBCSBytes(ctx context.Context) ([]byte, error)

BuildBCSBytes resolves sender, gas price and gas budget (same as Execute), then returns the raw BCS-encoded TransactionData bytes suitable for SimulateTransactionOptions.Transaction or ExecuteTransactionOptions.Transaction.

Unlike Execute, this method does NOT require gas payment to be set when DoGasSelection will be true on the gRPC SimulateTransaction call.

func (*Transaction) Execute

func (*Transaction) Gas

func (tx *Transaction) Gas() Argument

func (*Transaction) MakeMoveVec

func (tx *Transaction) MakeMoveVec(typeValue *string, elements []Argument) Argument

func (*Transaction) MergeCoins

func (tx *Transaction) MergeCoins(destination Argument, sources []Argument) Argument

func (*Transaction) MoveCall

func (tx *Transaction) MoveCall(
	packageId models.SuiAddress,
	module string,
	function string,
	typeArguments []TypeTag,
	arguments []Argument,
) Argument

func (*Transaction) NewTransactionFromKind

func (tx *Transaction) NewTransactionFromKind() (newTx *Transaction, err error)

func (*Transaction) Object

func (tx *Transaction) Object(input any) Argument

Object - input: string | CallArg | Argument

func (*Transaction) Publish

func (tx *Transaction) Publish(modules [][]byte, dependencies []models.SuiAddress) Argument

func (*Transaction) Pure

func (tx *Transaction) Pure(input any) Argument

func (*Transaction) SetExpiration

func (tx *Transaction) SetExpiration(expiration TransactionExpiration) *Transaction

func (*Transaction) SetGasBudget

func (tx *Transaction) SetGasBudget(budget uint64) *Transaction

func (*Transaction) SetGasBudgetIfNotSet

func (tx *Transaction) SetGasBudgetIfNotSet(budget uint64) *Transaction

func (*Transaction) SetGasOwner

func (tx *Transaction) SetGasOwner(owner models.SuiAddress) *Transaction

func (*Transaction) SetGasPayment

func (tx *Transaction) SetGasPayment(payment []SuiObjectRef) *Transaction

func (*Transaction) SetGasPrice

func (tx *Transaction) SetGasPrice(price uint64) *Transaction

func (*Transaction) SetSender

func (tx *Transaction) SetSender(sender models.SuiAddress) *Transaction

func (*Transaction) SetSenderIfNotSet

func (tx *Transaction) SetSenderIfNotSet(sender models.SuiAddress) *Transaction

func (*Transaction) SetSigner

func (tx *Transaction) SetSigner(signer *signer.Signer) *Transaction

func (*Transaction) SetSponsoredSigner

func (tx *Transaction) SetSponsoredSigner(signer *signer.Signer) *Transaction

func (*Transaction) SetSuiClient

func (tx *Transaction) SetSuiClient(client *sui.Client) *Transaction

func (*Transaction) SplitCoins

func (tx *Transaction) SplitCoins(coin Argument, amount []Argument) Argument

func (*Transaction) ToSuiExecuteTransactionBlockRequest

func (tx *Transaction) ToSuiExecuteTransactionBlockRequest(
	ctx context.Context,
	options models.SuiTransactionBlockOptions,
	requestType string,
) (*models.SuiExecuteTransactionBlockRequest, error)

func (*Transaction) TransferObjects

func (tx *Transaction) TransferObjects(objects []Argument, address Argument) Argument

func (*Transaction) Upgrade

func (tx *Transaction) Upgrade(
	modules [][]byte,
	dependencies []models.SuiAddress,
	packageId models.SuiAddress,
	ticket Argument,
) Argument

type TransactionData

type TransactionData struct {
	V1 *TransactionDataV1
}

func (*TransactionData) IsBcsEnum

func (*TransactionData) IsBcsEnum()

func (*TransactionData) Marshal

func (td *TransactionData) Marshal() ([]byte, error)

type TransactionDataV1

type TransactionDataV1 struct {
	Kind       *TransactionKind
	Sender     *models.SuiAddressBytes
	GasData    *GasData
	Expiration *TransactionExpiration `bcs:"optional"`
}

TransactionDataV1 https://github.com/MystenLabs/sui/blob/fb27c6c7166f5e4279d5fd1b2ebc5580ca0e81b2/crates/sui-types/src/transaction.rs#L1625

func (*TransactionDataV1) AddCommand

func (td *TransactionDataV1) AddCommand(command Command) (index uint16)

func (*TransactionDataV1) AddInput

func (td *TransactionDataV1) AddInput(input CallArg) Argument

func (*TransactionDataV1) GetInputObjectIndex

func (td *TransactionDataV1) GetInputObjectIndex(address models.SuiAddress) *uint16

type TransactionExpiration

type TransactionExpiration struct {
	None  any
	Epoch *uint64
}

TransactionExpiration https://github.com/MystenLabs/sui/blob/fb27c6c7166f5e4279d5fd1b2ebc5580ca0e81b2/crates/sui-types/src/transaction.rs#L1608 - None - Epoch

func (*TransactionExpiration) IsBcsEnum

func (*TransactionExpiration) IsBcsEnum()

type TransactionKind

type TransactionKind struct {
	ProgrammableTransaction *ProgrammableTransaction
	ChangeEpoch             any
	Genesis                 any
	ConsensusCommitPrologue any
}

TransactionKind https://github.com/MystenLabs/sui/blob/fb27c6c7166f5e4279d5fd1b2ebc5580ca0e81b2/crates/sui-types/src/transaction.rs#L303 - ProgrammableTransaction - ChangeEpoch - Genesis - ConsensusCommitPrologue

func (*TransactionKind) IsBcsEnum

func (*TransactionKind) IsBcsEnum()

func (*TransactionKind) Marshal

func (tk *TransactionKind) Marshal() ([]byte, error)

type TransferObjects

type TransferObjects struct {
	Objects []*Argument
	Address *Argument
}

type TypeTag

type TypeTag struct {
	Bool    *bool
	U8      *bool
	U128    *bool
	U256    *bool
	Address *bool
	Signer  *bool
	Vector  *TypeTag
	Struct  *StructTag
	U16     *bool
	U32     *bool
	U64     *bool
}

TypeTag https://github.com/MystenLabs/sui/blob/ece197ed5c414eb274f99afc52704664af8d0c38/external-crates/move/crates/move-core-types/src/language_storage.rs#L33 Do not reorder the fields, it will break the bcs encoding

func (*TypeTag) IsBcsEnum

func (*TypeTag) IsBcsEnum()

type UnresolvedObject

type UnresolvedObject struct {
	ObjectId models.SuiAddressBytes
}

type UnresolvedPure

type UnresolvedPure struct {
	Value any
}

type Upgrade

type Upgrade struct {
	Modules      [][]byte
	Dependencies []models.SuiAddressBytes
	Package      models.SuiAddressBytes
	Ticket       *Argument
}

Jump to

Keyboard shortcuts

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