0

我想知道是否有办法检查令牌是否已被批准用于支出。我不是在问如何批准用于支出的代币,我已经通过参考了解了这部分:如何批准用于支出的代币(Uniswap 路由器合同)。我希望我的脚本在出售代币之前先进行检查,然后根据结果决定是先运行批准还是跳过它。这样一来,它就不会在每次买卖同一个代币时批准已经批准的代币。感谢您的所有帮助期待。

4

1 回答 1

1

我在别处得到了帮助。无论如何,对于任何寻求解决方案的人来说,这是一个示例:

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)

于 2021-08-27T22:11:44.490 回答