SWAP details for native input
This commit is contained in:
parent
0780878c50
commit
4773e74caf
@ -136,43 +136,49 @@ def init_app(tr_handler=None):
|
|||||||
|
|
||||||
usdcMint = LIQUIDITY_TOKENS[0]
|
usdcMint = LIQUIDITY_TOKENS[0]
|
||||||
tr = {}
|
tr = {}
|
||||||
if not token_inputs or len(token_inputs) == 0:
|
try:
|
||||||
logging.info("Assumed USDC as first token. BUY transaction detected")
|
if not token_inputs or len(token_inputs) == 0:
|
||||||
tr["token_in"] = usdcMint
|
logging.info("Assumed USDC as first token. BUY transaction detected")
|
||||||
tr["type"] = "BUY"
|
tr["token_in"] = usdcMint
|
||||||
tr["amount_in"] = await SolanaAPI.DEX.get_token_prices(
|
tr["type"] = "BUY"
|
||||||
token_outputs[0]["mint"],
|
tr["amount_in"] = await SolanaAPI.DEX.get_token_prices(
|
||||||
int(token_outputs[0]["rawTokenAmount"]["tokenAmount"])
|
token_outputs[0]["mint"],
|
||||||
)
|
int(token_outputs[0]["rawTokenAmount"]["tokenAmount"])
|
||||||
else:
|
)
|
||||||
token_in = token_inputs[0]
|
else:
|
||||||
tr["token_in"] = token_in["mint"]
|
token_in = token_inputs[0]
|
||||||
tr["token_in_decimals"] = token_in["rawTokenAmount"]["decimals"]
|
tr["token_in"] = token_in["mint"]
|
||||||
tr["amount_in"] = float(int(token_in["rawTokenAmount"]["tokenAmount"]) / 10**token_in["rawTokenAmount"]["decimals"])
|
tr["token_in_decimals"] = token_in["rawTokenAmount"]["decimals"]
|
||||||
# 'amount_in': float(token_inputs[0]['rawTokenAmount']['tokenAmount']) / 10**token_inputs[0]['rawTokenAmount']['decimals'],
|
tr["amount_in"] = float(int(token_in["rawTokenAmount"]["tokenAmount"]) / 10**token_in["rawTokenAmount"]["decimals"])
|
||||||
|
# 'amount_in': float(token_inputs[0]['rawTokenAmount']['tokenAmount']) / 10**token_inputs[0]['rawTokenAmount']['decimals'],
|
||||||
|
|
||||||
if not token_outputs or len(token_outputs) == 0:
|
if not token_outputs or len(token_outputs) == 0:
|
||||||
logging.info("Assumed USDC as second token. SELL transaction detected")
|
logging.info("Assumed USDC as second token. SELL transaction detected")
|
||||||
tr["token_out"] = usdcMint
|
tr["token_out"] = usdcMint
|
||||||
tr["type"] = "SELL"
|
tr["type"] = "SELL"
|
||||||
tr["amount_out"] = await SolanaAPI.DEX.get_token_prices(
|
tr["amount_out"] = await SolanaAPI.DEX.get_token_prices(
|
||||||
token_inputs[0]["mint"],
|
token_inputs[0]["mint"],
|
||||||
int(token_inputs[0]["rawTokenAmount"]["tokenAmount"])
|
int(token_inputs[0]["rawTokenAmount"]["tokenAmount"])
|
||||||
)
|
)
|
||||||
else:
|
else:
|
||||||
token_out = token_outputs[0]
|
token_out = token_outputs[0]
|
||||||
tr["token_out"] = token_out["mint"]
|
tr["token_out"] = token_out["mint"]
|
||||||
tr["token_out_decimals"] = token_out["rawTokenAmount"]["decimals"]
|
tr["token_out_decimals"] = token_out["rawTokenAmount"]["decimals"]
|
||||||
tr["amount_out"] = float(int(token_out["rawTokenAmount"]["tokenAmount"]) / 10**token_out["rawTokenAmount"]["decimals"])
|
tr["amount_out"] = float(int(token_out["rawTokenAmount"]["tokenAmount"]) / 10**token_out["rawTokenAmount"]["decimals"])
|
||||||
#'amount_out': float(token_outputs[0]['rawTokenAmount']['tokenAmount']) / 10**token_outputs[0]['rawTokenAmount']['decimals'],
|
#'amount_out': float(token_outputs[0]['rawTokenAmount']['tokenAmount']) / 10**token_outputs[0]['rawTokenAmount']['decimals'],
|
||||||
|
|
||||||
|
if swap_event.get('nativeInput'): # SOL
|
||||||
if not tr["token_in"] or not tr["token_out"] or tr["amount_in"] == 0 or tr["amount_out"] == 0:
|
token_in = swap_event.get('nativeInput', [])
|
||||||
logging.warning("Incomplete swap details found in logs. Getting details from transaction")
|
logger.info(f"Native input (SOL) detected ({token_in["amount"]})")
|
||||||
tx_signature = data[0].get('signature')
|
|
||||||
logs = data[0].get('logs', [])
|
if not tr["token_in"] or not tr["token_out"] or tr["amount_in"] == 0 or tr["amount_out"] == 0:
|
||||||
tr = await SolanaAPI.SAPI.get_transaction_details_info(tx_signature, logs)
|
logging.warning("Incomplete swap details found in logs. Getting details from transaction")
|
||||||
|
tx_signature = data[0].get('signature')
|
||||||
|
logs = data[0].get('logs', [])
|
||||||
|
tr = await SolanaAPI.SAPI.get_transaction_details_info(tx_signature, logs)
|
||||||
|
except Exception as e:
|
||||||
|
logging.error(f"Error loading transaction token data: {str(e)}")
|
||||||
|
|
||||||
wallet = data[0]['feePayer'] # Using feePayer as the wallet address
|
wallet = data[0]['feePayer'] # Using feePayer as the wallet address
|
||||||
tx_signature = data[0]['signature']
|
tx_signature = data[0]['signature']
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user