Ether
類型錯誤:契約“erc20interface”應標記為抽象
程式碼 :
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 個免費資源,可以幫助您進一步了解知識:
你所做的事情有很多問題。
- 截屏所有內容不是一個好主意
- 使用 windows 進行加密開發不是一個好主意
- 你使用的是舊版本的solidity
- 在冒險使用代幣之前,您應該從基礎開始。
買一本書,https://www.amazon.com/Mastering-Ethereum-Building-Smart-Contracts/dp/1491971940 …閱讀它。
我們都試圖偷工減料,但這不適用於智能合約:)