Web3.py
如何確定代幣是否收取轉賬費用?
我正在嘗試找出是否有一種以程式方式(使用 web3)來檢查令牌是否在傳輸時收取費用的方法,例如需要在 Uniswap 路由器上使用 swapExactETHForTokensSupportingFeeOnTransferTokens 函式的方法。
是否可以在不必呼叫 Uniswap swapExactETHForTokens 函式並隨後檢查臭名昭著的“UniswapV2:K”錯誤的情況下發現此資訊?
我也一直試圖弄清楚這一點。我所看到的唯一的東西,會非常hacky,但你可以解析一些使用該令牌的最新交易,並查看它們生成了多少內部交易。
例如,當代幣具有某種燃燒或轉移功能時,這就是交易的樣子。使用此代幣的每筆交易都至少有三個內部轉賬。但是沒有任何 FoT 或銷毀的代幣大多會進行兩次內部轉賬的交易。您必須解析其中的很多才能確定。但這是你可以做到的一種(非常醜陋的)方式。
此外,有人可能只是製作一個代幣列表,其中包含一組關於轉賬費用的精選數據。
我已經看到很多具有不同動態的代幣來獲得一些費用。一些錢包甚至可以免於支付這些費用,從而在分析中出現誤報。
使用 web3.py 在 python 中對我有用的是:我做了一個假交易並使用 eth.estimate_gas 函式在本地執行它。如果它引發異常,它將給您一個可靠的錯誤,如果您的程式碼和事務參數都正確,則意味著令牌不是正常的。