Auf Bibliotheken zurückgreifen

Published by Mario Oettler on

Code, wie wir ihn oben selbst geschrieben haben, kommt häufig vor. Es ist daher nicht sinnvoll, diesen stets von Neuem zu schreiben. Stattdessen bietet es sich an, auf bereits bewährten Code zurückzugreifen. Solidity ermöglicht dies mittels Bibliotheken.

Dies gelingt mittels „import“. Remix findet diese Abhängigkeiten selbständig.

Man kann nun auf die Bibliothek zugreifen, indem man den eigenen Contract mit dem Keyword „is“ erweitert. (Zeile 8)

Wir binden die Bibliotheken ERC20 und Ownable von OpenZeppelin ein.

Wir definieren unseren Constructor und fügen eine eigen Funktion getBalance() ein. Diese soll nur durch den Owner aufrufbar sein.

Wenn wir den Contract compilieren und deployen, sehen wir, dass viele andere Funktionen hinzugekommen sind. Diese kommen aus den beiden eingebundenen Bibliotheken.

Den folgenden Code finden Sie in der Datei contract_s2_07.sol.


// SPDX-License-Identifier: MIT

pragma solidity ^0.8.26;

import "@openzeppelin/contracts/token/ERC20/ERC20.sol";
import {Ownable} from "@openzeppelin/contracts/access/Ownable.sol";

contract EasyERC20 is ERC20, Ownable{
    //constructor() ERC20("MyToken", "MTK") {}
    constructor(uint256 initialSupply) ERC20("Gold", "GLD") Ownable(msg.sender) {
        _mint(msg.sender, initialSupply);
        _transfer(msg.sender, 0xAb8483F64d9C6d1EcF9b849Ae677dD3315835cb2, initialSupply);
    }


    function getBalance() public onlyOwner() view returns(uint256){
        return address(this).balance;
    }
}

Wir binden die Bibliotheken ERC20 und Ownable von OpenZeppelin ein.

Dies gelingt mittels „import“. Remix findet diese Abhängigkeiten selbständig.

Man kann nun auf die Bibliothek zugreifen, indem man den eigenen Contract mit dem Keyword „is“ erweitert. (Zeile 8)

Wir definieren unseren Constructor und fügen eine eigen Funktion getBalance() ein. Diese soll nur durch den Owner aufrufbar sein.

Wenn wir den Contract compilieren und deployen, sehen wir, dass viele andere Funktionen hinzugekommen sind. Diese kommen aus den beiden eingebundenen Bibliotheken.

Aufgabe

Erstellen Sie einen NFT-Contract, der dem ERC721 folgt. Nutzen Sie dafür eine Bibliothek.

Lösung

Categories: