账户
0x20...ef48
0x20...EF48

0x20...EF48

US$0.00
此合同的源代码已经过验证!
合同元数据
编译器
0.8.26+commit.8a97fa7a
语言
Solidity
合同源代码
文件 1 的 1:HasaquiGlyphs.sol
// SPDX-License-Identifier: MIT
pragma solidity ^0.8.0;

// hasaqui Dec 6.2024
contract HasaquiGlyphs {
    uint256 public glyphCount = 0;

    event GlyphCreated(uint256 id, address creator);

    function createGlyph() public returns (uint256) {
        uint256 newId = glyphCount;
        glyphCount++;

        emit GlyphCreated(newId, msg.sender);
        return newId;
    }

    function getGlyph(uint256 id) public view returns (string memory) {
        require(id < glyphCount, "Glyph does not exist.");
        return generateGlyph(id, msg.sender);
    }

    function generateGlyph(uint256 id, address creator) internal pure returns (string memory) {
        bytes memory glyphData;

        uint256 baseSeed = uint256(keccak256(abi.encodePacked(id, creator)));
        uint256 size = 12;
        bytes memory pattern = bytes("hasaqui hasaqui hasaqui ");

        for (uint256 i = 0; i < size; i++) {
            uint256 seed = uint256(keccak256(abi.encodePacked(baseSeed, i)));
            for (uint256 j = 0; j < size; j++) {
                uint256 patternIndex = (seed % pattern.length);
                glyphData = abi.encodePacked(glyphData, pattern[patternIndex]);
                seed /= pattern.length;
            }
            glyphData = abi.encodePacked(glyphData, "\n");
        }

        return string(glyphData);
    }

}
设置
{
  "compilationTarget": {
    "HasaquiGlyphs.sol": "HasaquiGlyphs"
  },
  "evmVersion": "cancun",
  "libraries": {},
  "metadata": {
    "bytecodeHash": "ipfs"
  },
  "optimizer": {
    "enabled": false,
    "runs": 200
  },
  "remappings": []
}
ABI
[{"anonymous":false,"inputs":[{"indexed":false,"internalType":"uint256","name":"id","type":"uint256"},{"indexed":false,"internalType":"address","name":"creator","type":"address"}],"name":"GlyphCreated","type":"event"},{"inputs":[],"name":"createGlyph","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"uint256","name":"id","type":"uint256"}],"name":"getGlyph","outputs":[{"internalType":"string","name":"","type":"string"}],"stateMutability":"view","type":"function"},{"inputs":[],"name":"glyphCount","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"}]