-
Notifications
You must be signed in to change notification settings - Fork 200
Description
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 }) }