Solana交易API

交易步骤

  1. 调用构造交易API,API将会使用最佳路由拼装交易参数,客户端可使用返回的txContent作为签名用交易,以及其他需要的参数

  2. 客户端本地进行交易签名。 Golang 签名示例如下,得到签名的交易Base64字符串

func signSolTx(privateKey solana.PrivateKey, txContent string) (string, error) {
    var tx = new(solana.Transaction)
    err := tx.Message.UnmarshalBase64(txContent)
    if err != nil {
       golog.Errorf("UnmarshalBase64() error = %v", err)
       return "", err
    }
    _, err = tx.Sign(
       func(key solana.PublicKey) *solana.PrivateKey {
          if privateKey.PublicKey().Equals(key) {
             return &privateKey
          }
          return nil
       },
    )
    if err != nil {
       golog.Errorf("unable to sign transaction: %v", err)
       return "", err
    }
    return tx.MustToBase64(), nil
}
  1. 调用发送交易API或自行发送交易至链上

API详情

构造交易

通过用户输入的入参,构造待签名的Solana交易

接口信息:

  • 请求方法:POST

  • 请求路径:/v1/thirdParty/chainWallet/createSolanaTx

  • Content-Type:application/json

请求参数:

参数名
类型
是否必须
说明

creatorAddress

string

交易发起地址

inAmount

string

输入金额,按最小精度传入,如1 sol,则传入“1000000000”

inTokenAddress

string

输入代币地址, 买入时必须是SOL或USDT或USDC, SOL传参"sol"

outTokenAddress

string

输出代币地址, 卖出时必须是SOL或USDT或USDC, SOL传参"sol"

swapType

string

交易类型,枚举为buy/sell

slippage

string

滑点(百分比)单位bps,即10000为100%

fee

string

网络和节点优先费,单位为lamports。Ave将自动分配节点贿赂小费和网络优先费。

useMev

boolean

是否开启防夹,默认为false

feeRecipient

string

返佣地址

请求示例:

响应参数:

参数名
类型
说明

status

int

状态码

msg

string

响应消息

data

object

响应数据

data为以下结构体的数组

data字段说明:

参数名
类型
说明

creatorAddress

string

交易创建者地址

swapType

string

交易类型

inTokenAddress

string

输入代币地址

outTokenAddress

string

输出代币地址

txContent

string

交易内容

slippage

string

滑点(百分比),单位bps

minReturn

string

最小返回数量

inAmount

string

输入数量

estimateOut

string

预估输出数量

priorityFee

string

网络优先费,单位为lamports

bundleTip

string

节点小费,单位为lamports

amms

string[]

AMM信息

createPrice

string

创建价格,单位USD

requestTxId

string

请求交易id

响应示例:

发送签名后的交易

通过用户输入的入参,发送签名后的Solana交易

接口信息:

  • 请求方法:POST

  • 请求路径:/v1/thirdParty/chainWallet/sendSignedSolanaTx

  • Content-Type:application/json

请求参数:

参数名
类型
是否必须
说明

requestTxId

string

请求交易id,通过构造Solana交易接口获取

signedTx

string

签名后的交易,使用base64 encode之后的字串

useMev

bool

是否开启防夹,默认不开启

请求示例:

响应参数:

参数名
类型
说明

status

int

状态码

msg

string

响应消息

data

object

响应数据

data为以下结构体的数组

data字段说明:

参数名
类型
说明

hash

string

交易hash

bundleId

string

jito的bundleID,在开启mev时返回

err

string

链上返回的错误信息

响应示例:

Last updated