微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

尝试将 SmartContract 写入 Pancakeswap 路由器时出现 Web3.py“未知帐户”错误

如何解决尝试将 SmartContract 写入 Pancakeswap 路由器时出现 Web3.py“未知帐户”错误

我开始开发一个小程序,它应该允许我通过 pancakeswap 路由器购买代币。当我尝试进行交易时,出现“未知帐户”错误。我认为这可能是因为我应该在本地“登录”到我的 Metamask 帐户,但这只是我的假设。我导出了我的私钥并尝试使用 w3.eth.account.from_key(privateKey) 从中创建一个帐户,但它没有做任何事情。我还尝试在所有地址上执行 w3.tochecksumAddress(address) 但它没有做任何事情。我不知道此时我能做什么。


这是我的代码
binanceRPC = 'https://bsc-dataseed1.defibit.io/'
w3 = Web3(Web3.HTTPProvider(binanceRPC))


PCS_V2_ADDR = w3.tochecksumAddress(
    '0x10ED43C718714eb63d5aA57B78B54704E256024E')
PCS_ABI = #there would be pcs ABI but i needed to delete it due to character limit on stack
PCS_ROUTER_CONTRACT = w3.eth.contract(address=PCS_V2_ADDR,abi=PCS_ABI)

print(w3.isConnected())  # True

WBNB = w3.tochecksumAddress('0xbb4CdB9CBd36B01bD1cBaEBF2De08d9173bc095c')
shitcoin = w3.tochecksumAddress('0x3ee2200efb3400fabb9aacf31297cbdd1d435d47')

nonce = w3.eth.get_transaction_count(testAccAddr)

amountIn = 0.0005

tx = {
    'nonce': nonce,'from': testAccAddr,'to': PCS_V2_ADDR,'gasPrice': 5,'gas': 165250,'value': w3.toWei(amountIn,'ether')
}

w3.eth.account.privateKeyToAccount(testAccPrvKey)
print(w3.eth.accounts)  # []

txHash = PCS_ROUTER_CONTRACT.functions.swapExactETHForTokens(0,[w3.tochecksumAddress('0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c'),w3.tochecksumAddress(
    '0x3ee2200efb3400fabb9aacf31297cbdd1d435d47')],testAccAddr,1621289953).transact(tx)  # ValueError: {'code': -32000,'message': 'unkNown account'}

解决方法

尝试这样的事情:

account = w3.eth.account.privateKeyToAccount(testAccPrvKey)
w3.eth.default_account = account.address
txn = PCS_ROUTER_CONTRACT.functions.swapExactETHForTokens(0,[w3.toChecksumAddress('0xbb4cdb9cbd36b01bd1cbaebf2de08d9173bc095c'),w3.toChecksumAddress('0x3ee2200efb3400fabb9aacf31297cbdd1d435d47')],testAccAddr,1621289953).buildTransaction({
        'chainId': 97,#This is testnet
        'value': w3.toWei(amountIn,'ether'),'nonce': nonce,})


signed_txn = account.signTransaction(txn)
txid = w3.toHex(w3.eth.sendRawTransaction(signed_txn.rawTransaction))

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。