Skip to content

swap function failed due to ExceededAmountSlippageTolerance #255

@yimingsabao

Description

@yimingsabao

my swap function code:

def swap(
        self,
        pool_address: str,
        swap_y_to_x: bool,
        swap_amount: int,
        slippage: float = 0.01,
):
    """
        oken_x → the base token (often the first token in the pair)
        token_y → the quote token (often the second token in the pair)
        For SOL-USDC: token_X = SOL, token_Y = USDC
    :param pool_address:    The swap uses that exact pool’s reserves
    :param swap_y_to_x: True → swap Y → X → swap USDC → SOL, False → swap X → Y → swap SOL → USDC
    :param swap_amount: swap_amount is the input token amount, not money value:
    :param slippage:
    :return:
    """
    dlmm = self.get_dlmm(pool_address)
    slippage_bps = int(slippage * 10_000)

    swap_quote: SwapQuote = dlmm.swap_quote(swap_amount, swap_y_to_x, slippage_bps, dlmm.get_bin_array_for_swap(swap_y_to_x),
            is_partial_filled=True)
    print("swap_quote", swap_quote)

    if swap_y_to_x:
        in_token = dlmm.token_Y.public_key
        out_token = dlmm.token_X.public_key
    else:
        in_token = dlmm.token_X.public_key
        out_token = dlmm.token_Y.public_key


    tx: Transaction = dlmm.swap(
        in_token=in_token,
        out_token=out_token,
        in_amount=swap_amount,
        min_out_amount=swap_quote.min_out_amount,
        lb_pair=dlmm.pool_address,
        user=self.wallet.pubkey(),
        binArrays=swap_quote.bin_arrays_pubkey,
    )
    sig = self.client.send_transaction(tx, self.wallet)
    return sig

my trigger code:
adapter.swap(pool_address, swap_y_to_x=False, swap_amount=to_token_units(0.02,"SOL"),slippage=0.05)

the swap quote result:
swap_quote SwapQuote(consumed_in_amount=20000000, out_amount=144510148, fee=8004, protocol_fee=772, min_out_amount=137284640, price_impact=0, bin_arrays_pubkey=[Pubkey(
Uvi3SzhdL75CRSq5npUV8GFyyh7BAVhCrQYbcmXeJhw,
)])
the error log:

Traceback (most recent call last):
File "", line 198, in _run_module_as_main
File "", line 88, in _run_code
File "/Users/yiming/Documents/workspace/market_maker/markets/meteora_adapter.py", line 562, in
adapter.swap(pool_address, swap_y_to_x=False, swap_amount=to_token_units(0.02,"SOL"),slippage=0.05)
File "/Users/yiming/Documents/workspace/market_maker/markets/meteora_adapter.py", line 423, in swap
sig = self.client.send_transaction(tx, self.wallet)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yiming/Documents/workspace/market_maker/.venv312/lib/python3.12/site-packages/solana/rpc/api.py", line 1060, in send_transaction
txn_resp = self.send_raw_transaction(txn.serialize(), opts=opts_to_use)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yiming/Documents/workspace/market_maker/.venv312/lib/python3.12/site-packages/solana/rpc/api.py", line 994, in send_raw_transaction
resp = self._provider.make_request(body, SendTransactionResp)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yiming/Documents/workspace/market_maker/.venv312/lib/python3.12/site-packages/solana/exceptions.py", line 45, in argument_decorator
return func(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^
File "/Users/yiming/Documents/workspace/market_maker/.venv312/lib/python3.12/site-packages/solana/rpc/providers/http.py", line 49, in make_request
return _parse_raw(raw, parser=parser)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/yiming/Documents/workspace/market_maker/.venv312/lib/python3.12/site-packages/solana/rpc/providers/core.py", line 98, in _parse_raw
raise RPCException(parsed)
solana.rpc.core.RPCException: SendTransactionPreflightFailureMessage { message: "Transaction simulation failed: Error processing Instruction 4: custom program error: 0x1773", data: RpcSimulateTransactionResult(RpcSimulateTransactionResult { err: Some(InstructionError(4, Custom(6003))), logs: Some(["Program ComputeBudget111111111111111111111111111111 invoke [1]", "Program ComputeBudget111111111111111111111111111111 success", "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [1]", "Program log: CreateIdempotent", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", "Program log: Instruction: GetAccountDataSize", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1569 of 1391445 compute units", "Program return: TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA pQAAAAAAAAA=", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", "Program 11111111111111111111111111111111 invoke [2]", "Program 11111111111111111111111111111111 success", "Program log: Initialize the associated token account", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", "Program log: Instruction: InitializeImmutableOwner", "Program log: Please upgrade to SPL Token 2022 for immutable owner support", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 1405 of 1384858 compute units", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", "Program log: Instruction: InitializeAccount3", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3158 of 1380976 compute units", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 22315 of 1399850 compute units", "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", "Program 11111111111111111111111111111111 invoke [1]", "Program 11111111111111111111111111111111 success", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]", "Program log: Instruction: SyncNative", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3045 of 1377385 compute units", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", "Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo invoke [1]", "Program log: Instruction: Swap2", "Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo invoke [2]", "Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo consumed 2212 of 1351753 compute units", "Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo success", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", "Program log: Instruction: TransferChecked", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6238 of 1346900 compute units", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", "Program log: Instruction: TransferChecked", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6200 of 1337828 compute units", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", "Program log: AnchorError thrown in programs/lb_clmm/src/instructions/v2/swap2.rs:244. Error Code: ExceededAmountSlippageTolerance. Error Number: 6003. Error Message: Exceeded amount slippage tolerance.", "Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo consumed 44752 of 1374340 compute units", "Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo failed: custom program error: 0x1773"]), accounts: None, units_consumed: Some(70412), return_data: None, inner_instructions: None }) }

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions