Files
sui-go-sdk/models/write_transaction.go

207 lines
8.1 KiB
Go

package models
import (
"crypto/ed25519"
"github.com/block-vision/sui-go-sdk/models/sui_types"
)
type MoveCallRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
// the package containing the module and function
PackageObjectId string `json:"packageObjectId"`
// the specific module in the package containing the function
Module string `json:"module"`
// the function to be called
Function string `json:"function"`
// the type arguments to the function
TypeArguments []interface{} `json:"typeArguments"`
// the arguments to the function
Arguments []interface{} `json:"arguments"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type MoveCallResponse struct {
Gas []sui_types.SuiObjectRef `json:"gas"`
InputObjects interface{} `json:"inputObjects"`
TxBytes string `json:"txBytes"`
}
type MergeCoinsRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
PrimaryCoin string `json:"primaryCoin"`
CoinToMerge string `json:"coinToMerge"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type SplitCoinRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
CoinObjectId string `json:"coinObjectId"`
SplitAmounts []string `json:"splitAmounts"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type SplitCoinEqualRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
CoinObjectId string `json:"coinObjectId"`
SplitCount string `json:"splitCount"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type PublishRequest struct {
// the transaction signer's Sui address
Sender string `json:"sender"`
CompiledModules []string `json:"compiled_modules"`
Dependencies []string `json:"dependencies"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type TransferObjectRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
ObjectId string `json:"objectId"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
Recipient string `json:"recipient"`
}
type TransferSuiRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
SuiObjectId string `json:"suiObjectId"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
Recipient string `json:"recipient"`
Amount string `json:"amount"`
}
type PayRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
SuiObjectId []string `json:"suiObjectId"`
Recipient []string `json:"recipient"`
Amount []string `json:"amount"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type PaySuiRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
SuiObjectId []string `json:"suiObjectId"`
Recipient []string `json:"recipient"`
Amount []string `json:"amount"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type PayAllSuiRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
SuiObjectId []string `json:"suiObjectId"`
Recipient string `json:"recipient"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type AddStakeRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
// Coin<SUI> object to stake
Coins []string `json:"coins"`
// stake amount
Amount string `json:"amount"`
// the validator's Sui address
Validator string `json:"validator"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type WithdrawStakeRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
// StakedSui object ID
StakedObjectId string `json:"stakedObjectId"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
}
type TxnMetaData struct {
Gas []sui_types.SuiObjectRef `json:"gas"`
InputObjects []interface{} `json:"inputObjects"`
TxBytes string `json:"txBytes"`
}
type BatchTransactionRequest struct {
// the transaction signer's Sui address
Signer string `json:"signer"`
// list of transaction request parameters
RPCTransactionRequestParams []RPCTransactionRequestParams `json:"RPCTransactionRequestParams"`
// gas object to be used in this transaction, node will pick one from the signer's possession if not provided
Gas string `json:"gas"`
// the gas budget, the transaction will fail if the gas cost exceed the budget
GasBudget string `json:"gasBudget"`
// Whether this is a regular transaction or a Dev Inspect Transaction
// The optional enumeration values are: `DevInspect`, or `Commit`
SuiTransactionBlockBuilderMode string `json:"suiTransactionBlockBuilderMode"`
}
type BatchTransactionResponse struct {
Gas []sui_types.SuiObjectRef `json:"gas"`
InputObjects []interface{} `json:"inputObjects"`
TxBytes string `json:"txBytes"`
}
type RPCTransactionRequestParams struct {
MoveCallRequestParams *MoveCallRequest `json:"moveCallRequestParams,omitempty"`
TransferObjectRequestParams *TransferObjectRequest `json:"transferObjectRequestParams,omitempty"`
}
type SuiExecuteTransactionBlockRequest struct {
// BCS serialized transaction data bytes without its type tag, as base-64 encoded string.
TxBytes string `json:"txBytes"`
// A list of signatures (`flag || signature || pubkey` bytes, as base-64 encoded string).
// Signature is committed to the intent message of the transaction data, as base-64 encoded string.
Signature []string `json:"signature"`
// Options for specifying the content to be returned
Options SuiTransactionBlockOptions `json:"options"`
// The request type, derived from `SuiTransactionBlockResponseOptions` if None.
// The optional enumeration values are: `WaitForEffectsCert`, or `WaitForLocalExecution`
RequestType string `json:"requestType"`
}
type SignAndExecuteTransactionBlockRequest struct {
TxnMetaData TxnMetaData
// the address private key to sign the transaction
PriKey ed25519.PrivateKey
Options SuiTransactionBlockOptions `json:"options"`
// The optional enumeration values are: `WaitForEffectsCert`, or `WaitForLocalExecution`
RequestType string `json:"requestType"`
}