Swapping between different ERC20/native token currencies on a given Chain is made easy by Sequence’s Smart Swap API.
Please make sure that your token pair has enough liquidity on a supported exchange such as UniSwap.
Checkout this guide on how to add liquidity on UniSwap.
Get Swap Price
Query the swap price for a given token pair.
const TSuccessCallback<FSeqSwapPrice> OnApiSuccess = [this, OnSuccess](const FSeqSwapPrice& Response) { };
const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };
USequencePay* Pay = NewObject<USequencePay>();
Pay->GetSwapPrice(SequenceSdk::GetChainId(), WalletAddress, SellCurrency, BuyCurrency, BuyAmount, OnApiSuccess, OnApiFailure);
Get Swap Prices
Query swap prices for the token your user wants to receive.
const TSuccessCallback<TArray<FSeqSwapPrice>> OnApiSuccess = [this, OnSuccess](const TArray<FSeqSwapPrice>& Response) { };
const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };
USequencePay* Pay = NewObject<USequencePay>();
Pay->GetSwapPrices(SequenceSdk::GetChainId(), WalletAddress, BuyCurrency, BuyAmount, OnApiSuccess, OnApiFailure);
Get Swap Quote
After checking the swap price, get your approval and transaction data needed to build your transaction.
Make sure you only define Sell Amount
or Buy Amount
and not both.
const TSuccessCallback<FSeqSwapQuote> OnApiSuccess = [this, OnSuccess](const FSeqSwapQuote& Response) { };
const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };
USequencePay* Pay = NewObject<USequencePay>();
Pay->GetSwapQuote(SequenceSdk::GetChainId(), WalletAddress, BuyCurrency, SellCurrency, BuyAmount, SellAmount, IncludeApprove, OnApiSuccess, OnApiFailure);
Get Supported Swap Chains
Returns the list of chains supported for swapping.
const TSuccessCallback<FSeqGetLifiChainsResponse> OnApiSuccess = [this, OnSuccess](const FSeqGetLifiChainsResponse& Response) { };
const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };
USequencePay* Pay = NewObject<USequencePay>();
Pay->GetSupportedSwapChains(OnApiSuccess, OnApiFailure);
Get Supported Swap Tokens
Returns the list of tokens supported for swapping.
const TSuccessCallback<FSeqGetLifiTokensResponse> OnApiSuccess = [this, OnSuccess](const FSeqGetLifiTokensResponse& Response) { };
const FFailureCallback OnApiFailure = [this, OnFailure](const FSequenceError& Error) { };
USequencePay* Pay = NewObject<USequencePay>();
Pay->GetSupportedSwapTokens(Args, OnApiSuccess, OnApiFailure);