0

我正在尝试调用路由器合约的 swapExactTokensForTokens,我需要将 USDT 交换为 tokenB。这是交易的代码:

router = '0x0000000'
abi = '[{"inputs":[{"internalType":"address","name":"_factory","type":"address"},.... {"stateMutability":"payable","type":"receive"}]'

router_contract = w3.eth.contract(router, abi=abi)

USDTAdress = "0x55d398326f99059fF775485246999027B3197955"
tokenB = '0x000...'

path = [USDTAdress , tokenB]

balanceUSD = 100
miniumGet = 1000
nonce = self.web3.eth.get_transaction_count(myWalletAddress)

pancakeswap2_txn = self.router.functions.swapExactTokensForTokens(
                    balanceUSD,
                    miniumGet,         
                    [USDTAdress , tokenB],
                    myWalletAddress,
                    (time.time() + 30)
                ).buildTransaction({
                    'from': myWalletAddress,
                    'gas': 250000,
                    'gasPrice': self.web3.toWei("5", 'gwei'),
                    'nonce': nonce,
                })

signed_txn = self.web3.eth.account.sign_transaction(pancakeswap2_txn, private_key=mySecretKey)
tx_token = self.web3.eth.send_raw_transaction(signed_txn.rawTransaction)

但我总是收到错误“失败并出现错误'PancakeRouter:INSUFFICIENT_B_AMOUNT'”。在使用 BNB 时,此代码可以与 swapExactETHForTokens 一起使用。

谢谢你的建议

4

0 回答 0