Vyper

無法在 Vyper 合約介面中使用外部合約地址作為函式參數

  • July 4, 2019

我正在嘗試使用最新的編譯器編譯 Uniswap Exchange 合約vyper

我首先更新了對新定義的 ERC20 引用token: ERC20並設置了一個 import from vyper.interfaces import ERC20

下一個問題是getExchange()工廠界面中的功能。

vyper.exceptions.TypeMismatchException: line 68:15 Typecasting from base type address(ERC20) to address unavailable

這發生在以下行:

assert self.factory.getExchange(self.token) == self

我試圖通過修改getExchange介面來解決它:

   def getExchange(token_addr: ERC20) -> address: constant

但這會產生另一個錯誤:

vyper.exceptions.InvalidTypeException: line 8: Invalid base type: ERC20
   def getExchange(token_addr: ERC20) -> address: constant

如何讓它編譯?

原來這是一個編譯器錯誤,正在解決。

見這裡:https ://github.com/ethereum/vyper/issues/1375

引用自:https://ethereum.stackexchange.com/questions/69115