Skip to content

amm.useRebalanceSwap

Performs a rebalance swap between user and validator tokens. Learn more about the Fee AMM

Usage

ts
import { 
Hooks
} from 'wagmi/tempo'
import {
parseUnits
} from 'viem'
const
rebalanceSwapSync
=
Hooks
.
amm
.
useRebalanceSwapSync
()
// Call `mutate` in response to user action (e.g. button click, form submission)
rebalanceSwapSync
.
mutate
({
amountOut
:
parseUnits
('10.5', 6),
to
: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbb',
userToken
: '0x20c0000000000000000000000000000000000000',
validatorToken
: '0x20c0000000000000000000000000000000000001',
})
console
.
log
('Amount in:',
rebalanceSwapSync
.
data
?.
amountIn
)
10605000n
ts
import { createConfig, http } from 'wagmi'
import { tempoTestnet } from 'wagmi/chains'
import { KeyManager, webAuthn } from 'wagmi/tempo'

export const config = createConfig({
  connectors: [
    webAuthn({
      keyManager: KeyManager.localStorage(),
    }),
  ],
  chains: [tempoTestnet],
  multiInjectedProviderDiscovery: false,
  transports: {
    [tempoTestnet.id]: http(),
  },
})

Asynchronous Usage

The example above uses a *Sync variant of the action, that will wait for the transaction to be included before returning.

If you are optimizing for performance, you should use the non-sync amm.rebalanceSwap action and wait for inclusion manually:

ts
import { Hooks } from 'wagmi/tempo'
import { Actions } from 'viem/tempo'
import { parseUnits } from 'viem'
import { useWaitForTransactionReceipt } from 'wagmi'

const rebalanceSwap = Hooks.amm.useRebalanceSwap()
const { data: receipt } = useWaitForTransactionReceipt({ hash: rebalanceSwap.data })

// Call `mutate` in response to user action (e.g. button click, form submission)
rebalanceSwap.mutate({
  amountOut: parseUnits('10.5', 6),
  to: '0x742d35Cc6634C0532925a3b844Bc9e7595f0bEbb',
  userToken: '0x20c0000000000000000000000000000000000000',
  validatorToken: '0x20c0000000000000000000000000000000000001',
})

if (receipt) {
  const { args: { amountIn } } 
    = Actions.amm.rebalanceSwap.extractEvent(receipt.logs)

Return Type

See TanStack Query mutation docs for more info hook return types.

data

See Wagmi Action amm.rebalanceSwap Return Type

mutate/mutateAsync

See Wagmi Action amm.rebalanceSwap Parameters

Parameters

config

Config | undefined

Config to use instead of retrieving from the nearest WagmiProvider.

mutation

See the TanStack Query mutation docs for more info hook parameters.

Action

Released under the MIT License.