【发布时间】:2021-11-08 09:39:41
【问题描述】:
我正在尝试使用 pyserum 将 SOL 转换为 USDT。 这是我正在使用的代码。
import base58
from pyserum.connection import conn
from pyserum.enums import OrderType, Side
from pyserum.market import Market
from pyserum.connection import get_live_markets, get_token_mints
from solana.publickey import PublicKey
from solana.rpc.types import TxOpts
from solana.keypair import Keypair
from spl.token.client import Token
from spl.token.constants import TOKEN_PROGRAM_ID
from config import PRIVATEKEYPHANTOM
all_mint_address = get_token_mints()
all_market_address = get_live_markets()
if __name__ == '__main__':
from_coin = 'SOL'
to_coin = 'USDT'
symbol = f"{from_coin}/{to_coin}"
market_address = fetch_market_address(symbol)
mint_address = fetch_mint_address(symbol)
sender_key_pair = get_keypair(PRIVATEKEYPHANTOM)
payer = Keypair(sender_key_pair[:32])
cc = conn("https://api.mainnet-beta.solana.com")
quote_token = Token(
cc,
pubkey=PublicKey(mint_address), # mint address of token USDT
program_id=TOKEN_PROGRAM_ID,
payer=payer,
)
quote_wallet = quote_token.create_account(
payer.public_key,
skip_confirmation=True) # Make sure you send tokens to this address
print("quote wallet: ", str(quote_wallet))
market_address = PublicKey(market_address) # Address for SOL/USDT
print(market_address)
market = Market.load(cc, market_address)
tx_sig = market.place_order(
payer=quote_wallet,
owner=payer,
side=Side.BUY,
order_type=OrderType.LIMIT,
limit_price=0.01,
max_quantity=1,
opts = TxOpts(skip_preflight=True)
)
print(tx_sig)
虽然,我在执行后收到以下错误。 ** 交易失败:错误处理指令1:未知指令错误 **
完整的错误可以找到here
【问题讨论】:
-
我得到了同样的错误。你设法解决了这个问题吗?