Ether

類型錯誤:契約“erc20interface”應標記為抽象

  • July 8, 2021

程式碼 :

contract ERC20Interface {
   function totalSupply() public view returns (uint);
   function balanceOf(address tokenOwner) public view returns (uint balance);
   function allowance(address tokenOwner, address spender) public view returns (uint remaining);
   function transfer(address to, uint tokens) public returns (bool success);
   function approve(address spender, uint tokens) public returns (bool success);
   function transferFrom(address from, address to, uint tokens) public returns (bool success);

在此處輸入圖像描述

忽略之前的海報 OWADVL 所說的話。這是一個學習和克服編碼時遇到的困難的地方。像他這樣的答案將那些只是在這裡試圖擴展他們的知識的人推開。不過,OWADVL 說您使用的是舊版本的 Solidity 是正確的。除非您專門使用僅在舊版本中支持的已棄用功能,否則通常建議使用最新版本。但是,他再次指出您對作業系統的偏好是錯誤的。Remix IDE 完全是一個基於瀏覽器的 IDE,因此您使用哪種作業系統並不重要,因為最終它將在瀏覽器實例中執行。

話雖如此,您可以通過更改來修復整個錯誤塊:

  • 第 45 行:“合約 ERC20Interface”到“介面 IERC20”
  • 您可能還希望將每個函式中使用的“public”關鍵字更改為僅用於介面中的函式的“external”
  • 要更改 Solidity 的版本,請使用“pragma solidity >=0.8.4 <0.9.0;” 在程式碼的最頂部(有一些較新的版本,但這是目前公認的穩定版本)

這裡的想法是你正在使用 ERC20 的介面,然後繼承這個介面,它是你自己合約的函式。

這裡有 2 個免費資源,可以幫助您進一步了解知識:

你所做的事情有很多問題。

  1. 截屏所有內容不是一個好主意
  2. 使用 windows 進行加密開發不是一個好主意
  3. 你使用的是舊版本的solidity
  4. 在冒險使用代幣之前,您應該從基礎開始。

買一本書,https://www.amazon.com/Mastering-Ethereum-Building-Smart-Contracts/dp/1491971940 …閱讀它。

我們都試圖偷工減料,但這不適用於智能合約:)

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