Exceptions

Vyper 轉換 TypeMismatch 錯誤

  • April 21, 2021

我正在嘗試在 Vyper 中使用 convert 但收到以下錯誤:

vyper.exceptions.TypeMismatch:對於轉換的參數 1 期望 (’num_literal’, ‘int128’, ‘int256’, ‘bytes32’, ‘Bytes’, ‘address’, ‘bool’, ‘decimal’) 之一

def forLoop() -> (uint256):
   x: uint256 = 0
   for i in [1, 2, 3]:
       x += convert(i, uint256)
   return x

在這裡它工作得很好,使用編譯器版本 0.2.8。

也許您應該嘗試將其添加到契約的頂部:

# @version ^0.2.8

也許您的函式需要裝飾器來指定它的可見性,例如:

@external
def forLoop() -> (uint256):
   x: uint256 = 0
   for i in [1, 2, 3]:
       x += convert(i, uint256)
   return x

您不需要在 0.2.12 版本上將 i 轉換為 uint256

嘗試如下。

def forLoop() -> (uint256):
x: uint256 = 0
for i in [1, 2, 3]:
   x += i
return x

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