IBC Only Swaps

Understand how to use the IBC Only Swaps components

IBCSwaps

import {
  IBCSwaps,
  type IBCSwapsProps
} from '@leapwallet/elements'
import { useElementsWalletConfig } from './use-elements-wallet-config'

const YourDapp = () => {
  const walletClientConfig = useElementsWalletConfig()
  
  return (
    <div className="leap-ui">
      <WalletClientContextProvider value={walletClientConfig}>
        <IBCSwaps />
      </WalletClientContextProvider>
    </div>
  )
}

Props

className (optional)

Add classes to customise the styling

title (optional)

Use to set the title of tab.

Default Value - "IBC Swaps"

showPoweredByBanner (optional)

This is a boolean which toggles the visibility for the powered by text for the tab - Powered by Leap and Skip

Default Value - false

defaultValues (optional)

This is an object that contains the default values for the tab

  • sourceChainId: chainId of the source chain

  • sourceAsset: denom of source asset

  • destinationChainId: chainId of the destination chain

  • destinationAsset: denom of destination asset

  • inputAmount: input amount of swap in string

defaultSettings (optional)

This is an object that contains the default settings for the tab

  • slippage: max slippage percentage allowed for the swap

allowedSourceChains (optional)

Pass in an array of objects with a chainId property set to the chains you want to display on the source side.

const allowedSourceChains = [
    { chainId: 'cosmoshub-4' },  // cosmos hub mainnet
    { chainId: 'noble-1' },      // noble mainnet
    { chainId: 'osmosis-1' }     // osmosis mainnet
]

allowedDestinationChains (optional)

Pass in an array of objects with a chainId property set to the chains you want to display on the source side. You can also restrict the denominations for each chain.

const allowedDestinationChains = [
    {
        chainId: 'cosmoshub-4',  // cosmos hub mainnet
        assetDenoms: [           // optional
            'uatom',
            'ibc/9A234CF0...',
            // and so on...
        ]
    },
]

txnLifecycleHooks (optional)

This is an object that contains the callbacks for transaction lifecycle

  • onTxnSignInit - callback fired when a transaction signing request is initiated

  • onTxnSignApproved - callback fired when a transaction signing request is approved and the transaction has been accepted on chain

  • onTxnSignFailed - callback fired when a transaction signing request is rejected from wallet

  • onTxnComplete - callback fired when a swap completes

  • onTxnInProgress - callback fired when a transaction is initiated, you can return a cleanup callback that fires when the transaction has been accepted on chain

onValuesChange (optional)

This a callback which is fired when following values are changed for a swap

  • sourceChainId: chainId of the source chain

  • sourceAsset: denomination of source asset

  • destinationChainId: chainId of the destination chain

  • destinationAsset: denomination of destination asset

  • inputAmount: input amount of swap in string

onSettingsChange (optional)

This a callback which is fired when swap settings are changed (i.e slippage)

Last updated