data class TransferInput(
val type: TransferType?,
val size: TransferInputSize?,
val fastSpeed: Boolean,
val fee: Double?,
val chain: String?,
val address: String?,
val memo: String?,
val depositOptions: DepositInputOptions?,
val withdrawalOptions: WithdrawalInputOptions?,
val transferOutOptions: TransferOutInputOptions?,
val summary: TransferInputSummary?,
val resources: TransferInputResources?,
val requestPayload: TransferInputRequestPayload?
)
deposit, withdrawal, transferOut;
Size of the transfer
Only for v3 withdrawal, option to use fast withdrawal
Total amount of fee, deducted from the size
Selected chain to perform the transfer
Selected token address of the chain to perform the transfer
Memo for transfer
structure of DepositInputOptions
structure of WithdrawalInputOptions
structure of TransferOutInputOptions
structure of TransferInputSummary
structure of TransferInputResources
structure of TransferInputRequestPayload
data class DepositInputOptions(
val needsSize: Boolean?,
val needsAddress: Boolean?,
val needsFastSpeed: Boolean?,
val assets: Array?
)
UX should let user enter the size
UX should let user enter a wallet address
UX should let the user choose whether to use fast speed
Option of assets to choose from
data class DepositInputOptions(
val needsSize: Boolean?,
val needsAddress: Boolean?,
val needsFastSpeed: Boolean?,
val exchanges: Array?
val chains: Array?
val assets: Array?
)
UX should let user enter the size
UX should let user enter a wallet address
UX should let the user choose whether to use fast speed
Option of exchanges to choose from
Option of chains to choose from
Option of assets to choose from
data class TransferOutInputOptions(
val needsSize: Boolean?,
val needsAddress: Boolean?,
val chains: Array?,
val assets: Array?
)
UX should let user enter the size
UX should let user enter a wallet address
Option of chains to choose from
Option of assets to choose from
data class TransferInputSummary(
val usdcSize: Double?,
val fee: Double?,
val filled: Boolean
)
Amount of USDC
Fee in USDC
Whether the transfer transaction can be filled
The chain and token resources of the selected chain and its associated tokens. Use the chainId and token address of the key to the maps, respectively, to get the resource.
data class TransferInputResources( var chainResources: Map<String, TransferInputChainResource>?, var tokenResources: Map<String, TransferInputTokenResource>? )
The chain resource of the selected chain
data class TransferInputChainResource( val chainName: String?, val rpc: String?, val networkName: String?, val chainId: Int?, val iconUrl: String? )
The token resource of the selected token
data class TransferInputTokenResource( var name: String?, var address: String?, var symbol: String?, var decimals: Int?, var iconUrl: String? )
Payload needed for the client to sign call sendTransaction()
data class TransferInputRequestPayload( val routeType: String?, val targetAddress: String?, val data: String?, val value: String?, val gasLimit: String?, val gasPrice: String?, val maxFeePerGas: String?, val maxPriorityFeePerGas: String? )