When a user starts swapping or when a step of swap succeeds, to get the transaction for the next step, this method should be called.
Typescript (SDK) Node.js (Axios) Bash (cURL)
Copy const transaction = await rango .createTransaction ({
requestId : "1978d8fa-335d-4915-a039-77f1a17315f5" , // bestRoute.requestId
step : 1 ,
userSettings : {
slippage : 3 ,
infiniteApprove : false
} ,
validations : {
balance : true ,
fee : true ,
approve : true
} ,
})
Copy const response = await axios .post (
'https://api.rango.exchange/tx/create' ,
{
'requestId' : '1978d8fa-335d-4915-a039-77f1a17315f5' ,
'step' : 1 ,
'userSettings' : {
'slippage' : 3 ,
'infiniteApprove' : false
} ,
'validations' : {
'balance' : true ,
'fee' : true ,
'approve' : true
}
} ,
{
params : {
'apiKey' : 'c6381a79-2817-4602-83bf-6a641a409e32'
} ,
headers : {
'content-type' : 'application/json'
}
}
);
Copy curl --request POST \
--url 'https://api.rango.exchange/tx/create?apiKey=c6381a79-2817-4602-83bf-6a641a409e32' \
--header 'content-type: application/json' \
--data '
{
"requestId": "1978d8fa-335d-4915-a039-77f1a17315f5",
"userSettings": {
"slippage": 3,
"infiniteApprove": false
},
"validations": {
"balance": true,
"fee": true,
"approve": true
},
"step": 1
}
'
Create Transaction Request
API Definition SDK Models (Typescript)
requestId
* String
Description: The unique ID which is generated in the best route endpoint.
step
* Number
Description: The current step number in a multi-step route, starting from 1.
userSettings
*
Description: User settings for the swap, including slippage and infinite approval.
validations
*
Description: The validation checks we are interested to check by Rango before starting the swap.
Copy export type CreateTransactionRequest = {
requestId : string
step : number
userSettings : UserSettings
validations : CreateTransactionValidation
}
export type UserSettings = {
slippage : string
infiniteApprove ?: boolean
}
export type CreateTransactionValidation = {
balance : boolean
fee : boolean
approve : boolean
}
Create Transaction Response
API Definition SDK Models (Typescript) Sample Response
ok
Description: If true, Rango has created a non-null transaction, and the error message is null.
transaction
Description: Transaction's raw data. It is one of the transaction possible interfaces: EvmTransaction
, CosmosTransaction,
TransferTransaction
(for UTXO), SolanaTransaction
, StarknetTransaction
, TronTransaction
or null
.
error
Description: Error message about the incident if ok == false.
errorCode
Description: Error code shows the type of error.
traceId
Description: Trace Id helps Rango support team to trace an issue.
Copy export type CreateTransactionResponse = {
error : string | null
ok : boolean
transaction : Transaction | null
}
export type Transaction =
| EvmTransaction
| CosmosTransaction
| SolanaTransaction
| TronTransaction
| StarknetTransaction
| TonTransaction
| Transfer
export interface BaseTransaction {
type : TransactionType
blockChain : string
}
export interface EvmTransaction extends BaseTransaction {
type : TransactionType . EVM
isApprovalTx : boolean
from : string | null
to : string
data : string | null
value : string | null
nonce : string | null
gasLimit : string | null
gasPrice : string | null
maxPriorityFeePerGas : string | null
maxFeePerGas : string | null
}
export interface SolanaTransaction extends BaseTransaction {
type : TransactionType . SOLANA
txType : 'LEGACY' | 'VERSIONED'
from : string
identifier : string
recentBlockhash : string | null
signatures : SolanaSignature []
serializedMessage : number [] | null
instructions : SolanaInstruction []
}
export interface CosmosTransaction extends BaseTransaction {
type : TransactionType . COSMOS
fromWalletAddress : string
data : CosmosMessage
rawTransfer : CosmosRawTransferData | null
}
export interface TronTransaction extends BaseTransaction {
type : TransactionType . TRON
isApprovalTx : boolean
raw_data : TrxRawData | null
raw_data_hex : string | null
txID : string
visible : boolean
__payload__ : object
}
export interface StarknetTransaction extends BaseTransaction {
type : TransactionType . STARKNET
isApprovalTx : boolean
calls : StarknetCallData []
}
export interface TonTransaction extends BaseTransaction {
type : TransactionType . TON
validUntil : number
network ?: TonChainID
from ?: string
messages : TonMessage []
}
export interface Transfer extends BaseTransaction {
type : TransactionType . TRANSFER
method : string
asset : AssetWithTicker
amount : string
decimals : number
fromWalletAddress : string
recipientAddress : string
memo : string | null
}