Solidity
無法估計 Uniswap / Sushiswap 上的 gas 錯誤
我試圖在 Ropsten 網路上交換一些令牌以進行測試,但我收到以下錯誤:無法估計 gas。這很奇怪,因為當我在 MetaMask 中從一個錢包轉移到另一個錢包時它工作正常,但嘗試在 Uniswap / Sushiswap 上這樣做時我收到了這個錯誤。
Transfer 和 TransferFrom 函式如下:
function transfer(address _to, uint256 _value) returns (bool success) { if (balances[msg.sender] >= _value && _value > 0) { balances[msg.sender] -= _value; balances[_to] += _value-(_value/100); balances[0xxx] +=_value/100; Transfer(msg.sender, _to, _value-(_value/100)); Transfer(msg.sender, 0xxx, _value/100); return true; } else { return false; } } function transferFrom(address _from, address _to, uint256 _value) returns (bool success) { if (balances[_from] >= _value && allowed[_from][msg.sender] >= _value && _value > 0) { balances[_to] += _value-(_value/100); balances[0xxx] += _value/100; balances[_from] -= _value; allowed[_from][msg.sender] -= _value; Transfer(_from, _to, _value-(_value/100)); Transfer(_from, 0xxx, _value/100); return true; } else { return false; } }
我知道這種情況正在發生,因為交易正在尋求進行兩次轉賬,一次用於“To”賬戶,另一筆用於另一個賬戶(稱為“0xxx”)。 奇怪的事實:當我為代幣添加流動性時它工作正常。
有人可以幫我理解這個錯誤到底發生了什麼以及解決它的一些建議嗎?
謝謝!
那是因為你的硬幣中的所有小數。舉個例子,如果你有 9,343,343,432 個硬幣。將其設為 9,343,000,000 類似的值,並將滑點容限更改為 5.5%