Skip to main content
deleted 1511 characters in body
Source Link

I am trying to execute a swap on jupiter in Python. My code looks like

    tokenIn = Pubkey.from_string('So11111111111111111111111111111111111111112')
    tokenOut = Pubkey.from_string('Fch1oixTPri8zxBnmdCEADoJW2toyFHxqDZacQkwdvSP')
    amountIn = 0.4
    slippageBps = 1000

    quoteResponse = requests.get(
    f"https://quote-api.jup.ag/v6/quote?inputMint={tokenIn}\
    &outputMint={tokenOut}\
    &amount={int(amountIn * 10**decimalsIn):d}\
    &swapMode=ExactIn\
    &slippageBps={slippageBps}\
    &platformFeeBps=20"
    ).json()

    payload = json.dumps({
        "userPublicKey": str(source),
        "wrapAndUnwrapSol": True,
        "quoteResponse": quoteResponse
    })

    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    url = "https://quote-api.jup.ag/v6/swap"

    response = requests.post(url, headers=headers, data=payload)
    swapTransaction = response.json()

    swap_transaction = swapTransaction["swapTransaction"]

    raw_tx = VersionedTransaction.from_bytes(b64decode(swap_transaction))

    signature = key_pair.sign_message(to_bytes_versioned(raw_tx.message))

    signed_tx = VersionedTransaction.populate(raw_tx.message, [signature])
    trx = client.send_transaction(
        signed_tx,
        opts=TxOpts(skip_confirmation=False, preflight_commitment=Confirmed),
    )

I am trying to execute a swap on jupiter in Python. My code looks like

    tokenIn = Pubkey.from_string('So11111111111111111111111111111111111111112')
    tokenOut = Pubkey.from_string('Fch1oixTPri8zxBnmdCEADoJW2toyFHxqDZacQkwdvSP')
    amountIn = 0.4
    slippageBps = 1000

    quoteResponse = requests.get(
    f"https://quote-api.jup.ag/v6/quote?inputMint={tokenIn}\
    &outputMint={tokenOut}\
    &amount={int(amountIn * 10**decimalsIn):d}\
    &swapMode=ExactIn\
    &slippageBps={slippageBps}\
    &platformFeeBps=20"
    ).json()

    payload = json.dumps({
        "userPublicKey": str(source),
        "wrapAndUnwrapSol": True,
        "quoteResponse": quoteResponse
    })

    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    url = "https://quote-api.jup.ag/v6/swap"

    response = requests.post(url, headers=headers, data=payload)
    swapTransaction = response.json()

    swap_transaction = swapTransaction["swapTransaction"]

    raw_tx = VersionedTransaction.from_bytes(b64decode(swap_transaction))

    signature = key_pair.sign_message(to_bytes_versioned(raw_tx.message))

    signed_tx = VersionedTransaction.populate(raw_tx.message, [signature])
    trx = client.send_transaction(
        signed_tx,
        opts=TxOpts(skip_confirmation=False, preflight_commitment=Confirmed),
    )

I am trying to execute a swap on jupiter in Python.

Source Link

Jupiter Swap raise Transfer: insufficient lamports

I am trying to execute a swap on jupiter in Python. My code looks like

    tokenIn = Pubkey.from_string('So11111111111111111111111111111111111111112')
    tokenOut = Pubkey.from_string('Fch1oixTPri8zxBnmdCEADoJW2toyFHxqDZacQkwdvSP')
    amountIn = 0.4
    slippageBps = 1000

    quoteResponse = requests.get(
    f"https://quote-api.jup.ag/v6/quote?inputMint={tokenIn}\
    &outputMint={tokenOut}\
    &amount={int(amountIn * 10**decimalsIn):d}\
    &swapMode=ExactIn\
    &slippageBps={slippageBps}\
    &platformFeeBps=20"
    ).json()

    payload = json.dumps({
        "userPublicKey": str(source),
        "wrapAndUnwrapSol": True,
        "quoteResponse": quoteResponse
    })

    headers = {
        'Content-Type': 'application/json',
        'Accept': 'application/json'
    }
    url = "https://quote-api.jup.ag/v6/swap"

    response = requests.post(url, headers=headers, data=payload)
    swapTransaction = response.json()

    swap_transaction = swapTransaction["swapTransaction"]

    raw_tx = VersionedTransaction.from_bytes(b64decode(swap_transaction))

    signature = key_pair.sign_message(to_bytes_versioned(raw_tx.message))

    signed_tx = VersionedTransaction.populate(raw_tx.message, [signature])
    trx = client.send_transaction(
        signed_tx,
        opts=TxOpts(skip_confirmation=False, preflight_commitment=Confirmed),
    )

I followed the doc https://station.jup.ag/docs/apis/swap-api But when I execute I have an error:

RPCException: SendTransactionPreflightFailureMessage { message: "Transaction simulation failed: Error processing Instruction 3: custom program error: 0x1", data: RpcSimulateTransactionResult(RpcSimulateTransactionResult { err: Some(InstructionError(3, Custom(1))), logs: Some(["Program ComputeBudget111111111111111111111111111111 invoke [1]", "Program ComputeBudget111111111111111111111111111111 success", "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 1392795 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 1386208 compute units", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [2]", "Program log: Instruction: InitializeAccount3", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3158 of 1382326 compute units", "Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success", "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 20815 of 1399700 compute units", "Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success", "Program 11111111111111111111111111111111 invoke [1]", "Transfer: insufficient lamports 382911515, need 400000000", "Program 11111111111111111111111111111111 failed: custom program error: 0x1"]), accounts: None, units_consumed: Some(21115), return_data: None }) }

I see that I want to swap 0.4 SOL, and it seems that I am only sending 0.382911515. But how can I solve it as my input is already 0.4 SOL.

Thanks for your help!