Skip to content

Swap Transactions

This page demonstrates how to generate messages and parse responses for swap transactions

Swap Tokens

V2 also allows precise gas estimation to be done on the client side. See Swap Gas Estimation

ts
function msgSwapV2({
  snip20ContractAddress: string,
  snip20CodeHash: string,
  routerContractAddress,
  routerCodeHash,
  sendAmount,
  minExpectedReturnAmount,
  path,
}: {
  snip20ContractAddress: string,
  snip20CodeHash?: string,
  routerContractAddress: string,
  routerCodeHash?: string,
  sendAmount: string,
  minExpectedReturnAmount: string,
  path: PathV2[],
})

V1 (Legacy)

ts
function msgSwap({
  routerContractAddress,
  routerCodeHash,
  sendAmount,
  minExpectedReturnAmount,
  path,
}: {
  snip20ContractAddress: string,
  snip20CodeHash?: string,
  routerContractAddress: string,
  routerCodeHash?: string,
  sendAmount: string,
  minExpectedReturnAmount: string,
  path: Paths,
})

input type

ts
type Path = {
  poolContractAddress: string,
  poolCodeHash: string,
}

type Paths = Path[]

Type reference

ts
type Path = {
  poolContractAddress: string,
  poolCodeHash: string,
}

type PathV2 = Path & {
  batchPairInfo: Contract[],
  poolType: SwapType,
  stableOracleKeys?: [string, string] | null,
}

Response Parser

This function can be used to parse the transaction response after it has been broadcasted to the chain.

ts
parseSwapResponse(response: TxResponse)

input type

ts
type TxResponse // standard TxResponse as defined in secret.js

output

ts
type ParsedSwapResponse = {
  txHash: string,
  inputTokenAddress: string | undefined,
  outputTokenAddress: string | undefined,
  inputTokenAmount: string | undefined,
  outputTokenAmount: string | undefined,
}