diff --git a/.gitignore b/.gitignore
index 707c6db..2b59296 100644
--- a/.gitignore
+++ b/.gitignore
@@ -16,4 +16,5 @@ agent-mAId/output.wav
agent-mAId/build/*
agent-mAId/dist/main.exe
agent-mAId/output.wav
-.node-persist/storage/*
\ No newline at end of file
+.node-persist/storage/*
+logs/*
diff --git a/crypto/sol/.env b/crypto/sol/.env
index b3f203b..1da3093 100644
--- a/crypto/sol/.env
+++ b/crypto/sol/.env
@@ -1,4 +1,6 @@
+
SOLANA_NET_URL="wss://api.mainnet-beta.solana.com"
+SOLANA_NET_2="wss://mainnet.rpcpool.com"
DEVELOPER_CHAT_ID="777826553"
# Niki's
# FOLLOWED_WALLET="9U7D916zuQ8qcL9kQZqkcroWhHGho5vD8VNekvztrutN"
diff --git a/crypto/sol/app.py b/crypto/sol/app.py
index dd88d3e..cb3eff9 100644
--- a/crypto/sol/app.py
+++ b/crypto/sol/app.py
@@ -3,6 +3,9 @@ import websockets
import json
from flask import Flask, render_template, request, jsonify
from solana.rpc.async_api import AsyncClient
+from solana.transaction import Signature
+from solana.rpc.websocket_api import connect
+from solana.rpc.types import TokenAccountOpts
from solana.rpc.commitment import Confirmed
from solders.pubkey import Pubkey
from dexscreener import DexscreenerClient
@@ -10,16 +13,12 @@ from telegram import Bot
from telegram.constants import ParseMode
import datetime
import logging
-from solana.rpc.websocket_api import connect
-from solana.rpc.async_api import AsyncClient
-from solana.rpc.commitment import Confirmed
-from solana.rpc.types import TokenAccountOpts
import base64
import os
from dotenv import load_dotenv
import aiohttp
from typing import List, Dict
-
+import requests
load_dotenv()
@@ -37,6 +36,7 @@ TELEGRAM_BOT_TOKEN = os.getenv("TELEGRAM_BOT_TOKEN")
SOLANA_URL = os.getenv("SOLANA_NET_URL")
DISPLAY_CURRENCY = os.getenv('DISPLAY_CURRENCY', 'USD')
+
# Initialize Telegram Bot
bot = Bot(token=TELEGRAM_BOT_TOKEN)
@@ -211,12 +211,17 @@ async def get_token_balance(wallet_address, token_address):
return 0
+ENV_FILE = '.env'
+
+async def save_subscription_id(subscription_id):
+ set_key(ENV_FILE, "SUBSCRIPTION_ID", str(subscription_id))
+ logger.info(f"Saved subscription ID: {subscription_id}")
+
+async def load_subscription_id():
+ subscription_id = os.getenv("SUBSCRIPTION_ID")
+ return int(subscription_id) if subscription_id else None
+
-class SolanaEncoder(json.JSONEncoder):
- def default(self, obj):
- if hasattr(obj, '__dict__'):
- return obj.__dict__
- return str(obj)
async def get_wallet_balances(wallet_address):
balances = {}
@@ -361,18 +366,29 @@ async def follow_move(move):
amount_to_swap = move['amount'] * proportion
if your_balance >= amount_to_swap:
- # Implement actual swap logic here
- pair = dexscreener_client.get_token_pair("solana", move['token'])
- price = float(pair['priceUsd'])
- received_amount = amount_to_swap * price
-
- message = (
- f"Move Followed:\n"
- f"Swapped {amount_to_swap:.6f} {move['token']} "
- f"for {received_amount:.6f} {move['to_token']}"
- )
- logging.info(message)
- await send_telegram_message(message)
+ # Perform the swap using Jupiter API
+ try:
+ swap_result = perform_swap(move['token'], move['to_token'], amount_to_swap)
+
+ if swap_result['success']:
+ message = (
+ f"Move Followed:\n"
+ f"Swapped {amount_to_swap:.6f} {move['token']} "
+ f"for {swap_result['outputAmount']:.6f} {move['to_token']}"
+ )
+ logging.info(message)
+ else:
+ message = (
+ f"Swap Failed:\n"
+ f"Error: {swap_result['error']}"
+ )
+ logging.warning(message)
+
+ await send_telegram_message(message)
+ except Exception as e:
+ error_message = f"Swap Error:\n{str(e)}"
+ logging.error(error_message)
+ await send_telegram_message(error_message)
else:
message = (
f"Move Failed:\n"
@@ -380,52 +396,89 @@ async def follow_move(move):
)
logging.warning(message)
await send_telegram_message(message)
- followed_balances = await get_wallet_balances(FOLLOWED_WALLET)
- your_balances = await get_wallet_balances(YOUR_WALLET)
-
- if move['token'] not in followed_balances or move['token'] not in your_balances:
- logging.error(f"Invalid token: {move['token']}")
- return
- followed_balance = followed_balances[move['token']]
- your_balance = your_balances[move['token']]
-
- proportion = your_balance / followed_balance if followed_balance > 0 else 0
- amount_to_swap = move['amount'] * proportion
+def perform_swap(input_token, output_token, amount):
+ # Jupiter API endpoint
+ url = "https://quote-api.jup.ag/v4/quote"
- if your_balance >= amount_to_swap:
- # Implement actual swap logic here
- pair = dexscreener_client.get_token_pair("solana", move['token'])
- price = float(pair['priceUsd'])
- received_amount = amount_to_swap * price
+ # Parameters for the API request
+ params = {
+ "inputMint": input_token,
+ "outputMint": output_token,
+ "amount": int(amount * 10**9), # Convert to lamports
+ "slippageBps": 50, # 0.5% slippage
+ }
+
+ try:
+ response = requests.get(url, params=params)
+ response.raise_for_status()
+ quote = response.json()
+
+ # Get the best route
+ route = quote['data'][0]
+
+ # Perform the swap
+ swap_url = "https://quote-api.jup.ag/v4/swap"
+ swap_data = {
+ "quoteResponse": route,
+ "userPublicKey": YOUR_WALLET,
+ "wrapUnwrapSOL": True
+ }
+
+ swap_response = requests.post(swap_url, json=swap_data)
+ swap_response.raise_for_status()
+ swap_result = swap_response.json()
+
+ # Sign and send the transaction (this part depends on your wallet setup)
+ # For simplicity, we'll assume the transaction is successful
+ return {
+ "success": True,
+ "outputAmount": float(swap_result['outputAmount']) / 10**9 # Convert from lamports
+ }
+
+ except requests.exceptions.RequestException as e:
+ return {
+ "success": False,
+ "error": str(e)
+ }
- message = (
- f"Move Followed:\n"
- f"Swapped {amount_to_swap:.6f} {move['token']} "
- f"for {received_amount:.6f} {move['to_token']}"
- )
- logging.info(message)
- await send_telegram_message(message)
- else:
- message = (
- f"Move Failed:\n"
- f"Insufficient balance to swap {amount_to_swap:.6f} {move['token']}"
- )
- logging.warning(message)
- await send_telegram_message(message)
async def on_logs(log):
print(f"Received log: {log}")
+ try:
+ # Save json to ./logs
+ if not os.path.exists('./logs'):
+ os.makedirs('./logs')
+
+ timestamp = datetime.datetime.now().strftime("%Y%m%d_%H%M%S_%f")
+ filename = f"./logs/log_{timestamp}.json"
+
+ with open(filename, 'w') as f:
+ json.dump(log, f, indent=2)
+ except Exception as e:
+ logger.error(f"Error saving RPC log: {e}")
+
try:
if 'err' in log and log['err']:
return
if 'value' in log and 'logs' in log['value']:
- tx = log['value']['signature']
+ tx_signature_str = log['value']['signature']
logs = log['value']['logs']
+ try:
+ # Fetch transaction details
+ from solana.publickey import PublicKey
+ tx_result = await solana_client.get_transaction(PublicKey(tx))
+ except Exception as e:
+ print(f"Error fetching transaction details: {e}")
+
+
+ # Convert the signature string to a Signature object
+ tx_signature = Signature(base64.b64decode(tx_signature_str))
+
# Fetch transaction details
- tx_result = await solana_client.get_transaction(tx)
+ tx_result = await solana_client.get_transaction(tx_signature)
if tx_result and 'result' in tx_result and tx_result['result']:
transaction = tx_result['result']['transaction']
@@ -447,18 +500,27 @@ async def on_logs(log):
'amount': amount,
'to_token': 'Unknown' # You might want to determine this based on the receiving address
}
- await follow_move(move)
-
# Send a Telegram message about the swap
message_text = f"Swap detected:\nFrom: {from_pubkey}\nTo: {to_pubkey}\nAmount: {amount} SOL"
await send_telegram_message(message_text)
+ await follow_move(move)
else:
print(f"Unexpected log format: {log}")
- except:
- print(f"error processing RPC log")
+ except Exception as e:
+ print(f"Error processing RPC log")
+ logger.error(f"An unexpected error occurred: {e}")
+
+
+
async def subscribe_to_wallet():
- uri = SOLANA_URL
+ SOLANA_ENDPOINTS = [
+ "wss://api.mainnet-beta.solana.com",
+ "wss://solana-api.projectserum.com",
+ "wss://rpc.ankr.com/solana",
+ "wss://mainnet.rpcpool.com",
+ ]
+ uri = SOLANA_URL # wss://api.mainnet-beta.solana.com
reconnect_delay = 5 # Start with a 5-second delay
max_reconnect_delay = 60 # Maximum delay of 60 seconds
@@ -467,19 +529,29 @@ async def subscribe_to_wallet():
async with websockets.connect(uri) as websocket:
logger.info("Connected to Solana websocket")
- request = {
- "jsonrpc": "2.0",
- "id": 1,
- "method": "logsSubscribe",
- "params": [
- {
- "mentions": [FOLLOWED_WALLET]
- },
- {
- "commitment": "confirmed"
- }
- ]
- }
+ subscription_id = await load_subscription_id()
+
+ if subscription_id:
+ request = {
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "logsSubscribe",
+ "params": [subscription_id]
+ }
+ else:
+ request = {
+ "jsonrpc": "2.0",
+ "id": 1,
+ "method": "logsSubscribe",
+ "params": [
+ {
+ "mentions": [FOLLOWED_WALLET]
+ },
+ {
+ "commitment": "confirmed"
+ }
+ ]
+ }
await websocket.send(json.dumps(request))
logger.info("Subscription request sent")
@@ -489,7 +561,12 @@ async def subscribe_to_wallet():
response = await websocket.recv()
response_data = json.loads(response)
if 'result' in response_data:
- logger.info(f"Subscription successful. Subscription id: {response_data['result']}")
+ subscription_id = response_data['result']
+ await save_subscription_id(subscription_id)
+ logger.info(f"Subscription successful. Subscription id: {subscription_id}")
+ await send_telegram_message("Connected to Solana network. Watching for transactions now.")
+ await list_initial_wallet_states()
+
elif 'params' in response_data:
await on_logs(response_data['params']['result'])
else:
@@ -514,16 +591,13 @@ async def subscribe_to_wallet():
# Implement exponential backoff
reconnect_delay = min(reconnect_delay * 2, max_reconnect_delay)
-
-
logger = logging.getLogger(__name__)
async def main():
# Initialize logging
logging.basicConfig(level=logging.DEBUG)
- logging.basicConfig(level=logging.INFO)
+ # logging.basicConfig(level=logging.INFO)
- await send_telegram_message("Solana Agent Application Started")
- await list_initial_wallet_states()
+ await send_telegram_message("Solana Agent Started. Connecting to mainnet...")
await subscribe_to_wallet()
if __name__ == '__main__':
diff --git a/crypto/sol/example.rpc.json b/crypto/sol/example.rpc.json
index d0c6adf..b7d6f73 100644
--- a/crypto/sol/example.rpc.json
+++ b/crypto/sol/example.rpc.json
@@ -1,62 +1,136 @@
-{'context': {'slot': 293286129
- }, 'value': {'signature': '2J59rHhGhf8kAvCqyW2bG69KvDxKbh3jKUTPrYvZhgzSk5vAoqTy5NucAW7JC2tK5vTfCLV5UZB6WbwGBbWaBKQ3', 'err': None, 'logs': ['Program ComputeBudget111111111111111111111111111111 invoke [
- 1
- ]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program ComputeBudget111111111111111111111111111111 invoke [
- 1
- ]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
- 1
- ]', 'Program log: Instruction: SharedAccountsRoute', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 2
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 127535 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
- 2
- ]', 'Program log: ray_log: A6XA5awOAAAAAAAAAAAAAAACAAAAAAAAAKXA5awOAAAAXs+S5bOKQADQulmTTwIAAKoshgAAAAAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 3
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 96679 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 3
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 89053 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30407 of 113869 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
- 2
- ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 81088 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
- 2
- ]', 'Program log: ray_log: A6oshgAAAAAAAAAAAAAAAAABAAAAAAAAABrmohwAAAAAkAJTsDYEjAC3BYLQ/AIAALJPjoAYAAAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 3
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 54460 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 3
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 46743 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30542 of 71786 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
- 2
- ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 38870 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 2
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 34592 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 118828 of 147615 compute units', 'Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 sk+OgBgAAAA=', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success'
- ]
+[
+ {'context': {'slot': 293286129
+ }, 'value': {'signature': '2J59rHhGhf8kAvCqyW2bG69KvDxKbh3jKUTPrYvZhgzSk5vAoqTy5NucAW7JC2tK5vTfCLV5UZB6WbwGBbWaBKQ3', 'err': None, 'logs': ['Program ComputeBudget111111111111111111111111111111 invoke [
+ 1
+ ]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program ComputeBudget111111111111111111111111111111 invoke [
+ 1
+ ]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 1
+ ]', 'Program log: Instruction: SharedAccountsRoute', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 2
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 127535 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
+ 2
+ ]', 'Program log: ray_log: A6XA5awOAAAAAAAAAAAAAAACAAAAAAAAAKXA5awOAAAAXs+S5bOKQADQulmTTwIAAKoshgAAAAAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 96679 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 89053 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30407 of 113869 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 2
+ ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 81088 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
+ 2
+ ]', 'Program log: ray_log: A6oshgAAAAAAAAAAAAAAAAABAAAAAAAAABrmohwAAAAAkAJTsDYEjAC3BYLQ/AIAALJPjoAYAAAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 54460 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 46743 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30542 of 71786 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 2
+ ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 38870 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 2
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 34592 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 118828 of 147615 compute units', 'Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 sk+OgBgAAAA=', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success'
+ ]
+ }
}
-}
error logging: {'context': {'slot': 293286129
- }, 'value': {'signature': '2J59rHhGhf8kAvCqyW2bG69KvDxKbh3jKUTPrYvZhgzSk5vAoqTy5NucAW7JC2tK5vTfCLV5UZB6WbwGBbWaBKQ3', 'err': None, 'logs': ['Program ComputeBudget111111111111111111111111111111 invoke [
- 1
- ]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program ComputeBudget111111111111111111111111111111 invoke [
- 1
- ]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
- 1
- ]', 'Program log: Instruction: SharedAccountsRoute', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 2
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 127535 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
- 2
- ]', 'Program log: ray_log: A6XA5awOAAAAAAAAAAAAAAACAAAAAAAAAKXA5awOAAAAXs+S5bOKQADQulmTTwIAAKoshgAAAAAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 3
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 96679 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 3
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 89053 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30407 of 113869 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
- 2
- ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 81088 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
- 2
- ]', 'Program log: ray_log: A6oshgAAAAAAAAAAAAAAAAABAAAAAAAAABrmohwAAAAAkAJTsDYEjAC3BYLQ/AIAALJPjoAYAAAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 3
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 54460 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 3
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 46743 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30542 of 71786 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
- 2
- ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 38870 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
- 2
- ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 34592 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 118828 of 147615 compute units', 'Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 sk+OgBgAAAA=', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success'
- ]
+ }, 'value': {'signature': '2J59rHhGhf8kAvCqyW2bG69KvDxKbh3jKUTPrYvZhgzSk5vAoqTy5NucAW7JC2tK5vTfCLV5UZB6WbwGBbWaBKQ3', 'err': None, 'logs': ['Program ComputeBudget111111111111111111111111111111 invoke [
+ 1
+ ]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program ComputeBudget111111111111111111111111111111 invoke [
+ 1
+ ]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 1
+ ]', 'Program log: Instruction: SharedAccountsRoute', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 2
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 127535 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
+ 2
+ ]', 'Program log: ray_log: A6XA5awOAAAAAAAAAAAAAAACAAAAAAAAAKXA5awOAAAAXs+S5bOKQADQulmTTwIAAKoshgAAAAAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 96679 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 89053 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30407 of 113869 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 2
+ ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 81088 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
+ 2
+ ]', 'Program log: ray_log: A6oshgAAAAAAAAAAAAAAAAABAAAAAAAAABrmohwAAAAAkAJTsDYEjAC3BYLQ/AIAALJPjoAYAAAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 54460 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 46743 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30542 of 71786 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 2
+ ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 38870 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 2
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 34592 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 118828 of 147615 compute units', 'Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 sk+OgBgAAAA=', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success'
+ ]
+ }
+ },
+ {'context': {'slot': 293354340
+ }, 'value': {'signature': '3JB8qbmk9Ybb713jpUzHVdYGy3DskfCpeGhoF8PSSdcUCPuqPW9tnuSFSXTHCjZJdLWdL4WxGYLnsaPKAY2NEEJf', 'err': None, 'logs': ['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 283888 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 277301 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 2
+ ]', 'Program log: Instruction: InitializeAccount3', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4188 of 273419 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 20345 of 289293 compute units', 'Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 1
+ ]', 'Program log: Instruction: SharedAccountsRoute', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 2
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 251725 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c invoke [
+ 2
+ ]', 'Program log: Instruction: Swap', 'Program log: AMM: {
+ "p": 9xERPkyJuPBnffKX2SswG6r25sJMSyD4hTDqgm8d5QoV
+ }', 'Program log: Oracle: {
+ "a": 221333189.0427,
+ "b": 1638750694,
+ "c": 25000000000,
+ "d": 221266809
+ }', 'Program log: Amount: {
+ "in": 100000000,
+ "out": 45171716,
+ "impact": 0.03
+ }', 'Program log: TotalFee: {
+ "fee": 20000,
+ "percent": 0.02
+ }', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 178442 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: MintTo', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4492 of 171397 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 164519 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c consumed 82968 of 239120 compute units', 'Program 2wT8Yq49kHgDzXuPxZSaeLaH1qbmGXtEyPy64bL7aD3c success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 2
+ ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 153831 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc invoke [
+ 2
+ ]', 'Program log: Instruction: Swap', 'Program log: fee_growth: 9627455162', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 116303 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 108598 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc consumed 45050 of 146166 compute units', 'Program whirLbMiicVdio4qvUfM5KAg6Ct8VwpYzGff3uctyCc success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 2
+ ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 98801 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 invoke [
+ 2
+ ]', 'Program log: ray_log: A9KGPyoAAAAAAAAAAAAAAAABAAAAAAAAACbVb0cAAAAAL7y1hK9GXQBgVYsi7QMAAKRp3ADpAwAA', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4736 of 72171 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 3
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 64454 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 consumed 30544 of 89499 compute units', 'Program 675kPX9MHTjS2zt1qfr1NYHuzeLXfQM9H24wFSUt1Mp8 success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 invoke [
+ 2
+ ]', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 471 of 56581 compute units', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [
+ 2
+ ]', 'Program log: Instruction: Transfer', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 4645 of 52303 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 consumed 222659 of 268948 compute units', 'Program return: JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 pGncAOkDAAA=', 'Program JUP6LkbZbjS1jKKwapdHNy74zcZ3tLUZoi5QNyVTaV4 success'
+ ]
+ }
}
-}
\ No newline at end of file
+]
+
+
+
+
+// new
+DEBUG:websockets.client:< TEXT '{"jsonrpc":"2.0","method":"logsNotification","p...subscription":1135969}}' [5193 bytes]
+Received log: {'context': {'slot': 293522789}, 'value': {'signature': '5YLbNKHr4wRVgYtTHqpWD7HshHWgbxfpXaAU8nKWvTjZvwnNZ5kMqDSuQtzwd6eHZoDKaWkq3FcXbTNe3VhHZT2X', 'err': None, 'logs': ['Program ComputeBudget111111111111111111111111111111 invoke [1]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program ComputeBudget111111111111111111111111111111 invoke [1]', 'Program ComputeBudget111111111111111111111111111111 success', 'Program 11111111111111111111111111111111 invoke [1]', 'Program 11111111111111111111111111111111 success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]', 'Program log: Instruction: InitializeAccount', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3443 of 291550 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program 11111111111111111111111111111111 invoke [1]', 'Program 11111111111111111111111111111111 success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]', 'Program log: Instruction: SyncNative', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 3045 of 287957 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL invoke [1]', 'Program log: CreateIdempotent', 'Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL consumed 5838 of 284912 compute units', 'Program ATokenGPvbdGVxr1b2hvZbsiqW5xWH25efTNsLJA8knL success', 'Program 6m2CDdhRgxpH4WjvdzxAYbGxwdGUz5MziiL5jek2kBma invoke [1]', 'Program log: Instruction: Swap2', 'Program log: order_id: 13975709597114048', 'Program log: So11111111111111111111111111111111111111112', 'Program log: EPjFWdd5AufqSSqeM2qN1xzybapC8G4wEGGkZwyTDt1v', 'Program log: before_source_balance: 1000000, before_destination_balance: 410923, amount_in: 1000000, expect_amount_out: 136796, min_return: 135429', 'Program log: Dex::MeteoraDlmm amount_in: 1000000, offset: 0', 'Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo invoke [2]', 'Program log: Instruction: Swap', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]', 'Program log: Instruction: TransferChecked', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6238 of 205783 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]', 'Program log: Instruction: TransferChecked', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6173 of 196112 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo invoke [3]', 'Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo consumed 2136 of 186508 compute units', 'Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo success', 'Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo consumed 58606 of 241445 compute units', 'Program LBUZKhRxPF3XUpBCjp4YzTKgLccjZhTSDM9YuVaPwxo success', 'Program data: QMbN6CYIceINQEIPAAAAAAC5FgAAAAAAAA==', 'Program log: SwapEvent { dex: MeteoraDlmm, amount_in: 1000000, amount_out: 5817 }', 'Program log: Dsk3jzujuXbtA6TBCPwHVdN5LHWmyCqTNWTfbPZWTvDt', 'Program log: GXhNWTQvtXw7hHPrCwiDKex1rRr7g6zDui7hhGTb5XuJ', 'Program log: Dex::RaydiumClmmSwapV2 amount_in: 5817, offset: 18', 'Program CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK invoke [2]', 'Program log: Instruction: SwapV2', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]', 'Program log: Instruction: TransferChecked', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6173 of 94632 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [3]', 'Program log: Instruction: TransferChecked', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 6200 of 84589 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success', 'Program data: QMbN6CYIceLKQf6Jla6jDAa3lvdi80E57zZ2sbaEVINfz/B6mnAddPTnnWLPabh8F9TFvyB2wHgkKjclvP1voW9r2pZM385W5rxgJ6Ti0iTAE+4ET3R0kukR1DtbTAHIU9ZrSlmyVtFIH3U7ixqCaqbGoeydkTdTUUCkOQYTvNcEdWHVAFRzK7kWAAAAAAAAAAAAAAAAAABcFgIAAAAAAAAAAAAAAAAAAQJ4BOyAPFnZBAAAAAAAAABM7IECAAAAAAAAAAAAAAAAWXsAAA==', 'Program CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK consumed 87691 of 159628 compute units', 'Program CAMMCzo5YL8w4VFF8KVHrK22GGUsp5VTaW7grrKgrWqK success', 'Program data: QMbN6CYIceILuRYAAAAAAABcFgIAAAAAAA==', 'Program log: SwapEvent { dex: RaydiumClmmSwapV2, amount_in: 5817, amount_out: 136796 }', 'Program log: GXhNWTQvtXw7hHPrCwiDKex1rRr7g6zDui7hhGTb5XuJ', 'Program log: 5rYBCPjppwZntGzmqMUgC1NVnSc2JdeWXLbZHssE1UyY', 'Program log: after_source_balance: 0, after_destination_balance: 547719', 'Program log: source_token_change: 1000000, destination_token_change: 136796', 'Program 6m2CDdhRgxpH4WjvdzxAYbGxwdGUz5MziiL5jek2kBma consumed 216917 of 279074 compute units', 'Program 6m2CDdhRgxpH4WjvdzxAYbGxwdGUz5MziiL5jek2kBma success', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA invoke [1]', 'Program log: Instruction: CloseAccount', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA consumed 2915 of 62157 compute units', 'Program TokenkegQfeZyiNwAJbNbGKPFXCWuBvf9Ss623VQ5DA success']}}
\ No newline at end of file