Base Learn Prefect-4——Own a(n) Imports Pin NFT

感谢X用户@isnotberlin提供的代码

以下是,Base Learn Prefect-代码 Own a(n) Imports Pin NFT

1. Own a(n) Imports Pin NFT由两段代码组成SillyStringUtils.sol和imports.sol

SillyStringUtils.sol

SillyStringUtils.sol
// SPDX-License-Identifier: MIT

pragma solidity ^0.8.17;

library SillyStringUtils {

    struct Haiku {
        string line1;
        string line2;
        string line3;
    }

    function shruggie(string memory _input) internal pure returns (string memory) {
        return string.concat(_input, unicode" 🤷");
    }
}

这段代码被imports.sol引用

imports.sol

imports.sol
// SPDX-License-Identifier: MIT

// Importing the SillyStringUtils library
import "./SillyStringUtils.sol";

pragma solidity 0.8.17;

contract ImportsExercise {
    // Using the SillyStringUtils library for string manipulation
    using SillyStringUtils for string;

    // Declaring a public variable to store a Haiku
    SillyStringUtils.Haiku public haiku;

    // Function to save a Haiku
    function saveHaiku(string memory _line1, string memory _line2, string memory _line3) public {
        haiku.line1 = _line1;
        haiku.line2 = _line2;
        haiku.line3 = _line3;
    }

    // Function to retrieve the saved Haiku
    function getHaiku() public view returns (SillyStringUtils.Haiku memory) {
        return haiku;
    }

    // Function to append a shrugging emoji to the third line of the Haiku
    function shruggieHaiku() public view returns (SillyStringUtils.Haiku memory) {
        // Creating a copy of the Haiku
        SillyStringUtils.Haiku memory newHaiku = haiku;
        // Appending the shrugging emoji to the third line using the shruggie function from the SillyStringUtils library
        newHaiku.line3 = newHaiku.line3.shruggie();
        return newHaiku;
    }
}

部署这段代码,在Remix IDE部署

评论

此博客中的热门博文

Base Learn Newcomer - 1 含代码Basic Contracts

Base Learn Supreme-5——SCD ERC721 、Minimal Token、ERC20

Base Learn Acolyte -2含代码Storage、Structures、Arrays