检查钱包是否被批准使用代币

Check if wallet is approved to spend token

我想知道是否有办法检查令牌是否已获准用于支出。我不是在问如何批准用于支出的令牌,我已经通过参考找到了这部分:How to approve a token for spending on (Uniswap router contract)。我希望我的脚本在出售代币之前先进行检查,然后根据结果决定先 运行 批准还是跳过它。这样它就不会在每次买卖相同的代币时批准已经批准的代币。感谢大家的帮助期待。

我在别处得到了帮助。无论如何,这里有一个例子供任何人寻找解决方案:

import json
import sys
from web3 import Web3

bsc = 'https://bsc-dataseed.binance.org/'
web3 = Web3(Web3.HTTPProvider(bsc))
print(web3.isConnected())


contract = '0x40619dc9F00ea34e51D96b6EC5d8a6aD75457434'
contract = web3.toChecksumAddress(contract)
abi = [{"constant":True,"inputs":[{"name":"_owner","type":"address"},{"name":"_spender","type":"address"}],"name":"allowance","outputs":[{"name":"","type":"uint256"}],"payable":False,"stateMutability":"view","type":"function"},]
contract = web3.eth.contract(address=contract, abi=abi)

_owner = web3.toChecksumAddress("0x29cdf45A1cda9Fd722108b05BaaA5785DF5E98aF")
_spender = web3.toChecksumAddress("0xb5C2c0A73f59508731b915c646615089e1517628")

x = contract.functions.allowance(_owner, _spender).call();
print(x)