{
  "work": "entropy",
  "pinned": [
    "0x05a1881b8fd544f097ac252d81e4951023fcfe02/contracts/zeroRenderer.sol",
    "0x01cc1bd2dece86e54481f1e6aeffc2fcc6915480/contracts/entropy.sol"
  ],
  "contracts": [
    {
      "name": "Entropy",
      "address": "0x01cc1bd2dece86e54481f1e6aeffc2fcc6915480",
      "role": "token storing block numbers and hashes and routing to the renderers",
      "compiler": "0.8.16+commit.07a7930e",
      "main": "contracts/entropy.sol",
      "files": [
        "contracts/entropy.sol",
        "@openzeppelin/contracts/access/Ownable.sol",
        "@openzeppelin/contracts/token/ERC721/ERC721.sol",
        "@openzeppelin/contracts/token/ERC721/IERC721.sol",
        "@openzeppelin/contracts/token/ERC721/IERC721Receiver.sol",
        "@openzeppelin/contracts/token/ERC721/extensions/IERC721Metadata.sol",
        "@openzeppelin/contracts/utils/Address.sol",
        "@openzeppelin/contracts/utils/Context.sol",
        "@openzeppelin/contracts/utils/Strings.sol",
        "@openzeppelin/contracts/utils/introspection/ERC165.sol",
        "@openzeppelin/contracts/utils/introspection/IERC165.sol"
      ],
      "focus": [
        {
          "file": "contracts/entropy.sol",
          "match": "uint lastMintedBlock = blockDB[blockDB.length - 1].blockNumber;",
          "lines": 11,
          "note": "each new token keeps one recent block and its hash"
        },
        {
          "file": "contracts/entropy.sol",
          "match": "if(tokenId == 0){",
          "lines": 7,
          "note": "token zero is the stream, every other token one frozen block"
        }
      ]
    },
    {
      "name": "Renderer",
      "address": "0x05a1881b8fd544f097ac252d81e4951023fcfe02",
      "role": "absolute zero renderer serving the html and javascript of a frozen block",
      "compiler": "0.8.16+commit.07a7930e",
      "main": "contracts/zeroRenderer.sol",
      "files": [
        "contracts/zeroRenderer.sol",
        "@openzeppelin/contracts/access/Ownable.sol",
        "@openzeppelin/contracts/utils/Base64.sol",
        "@openzeppelin/contracts/utils/Context.sol",
        "@openzeppelin/contracts/utils/Strings.sol"
      ],
      "focus": [
        {
          "file": "contracts/zeroRenderer.sol",
          "match": "// do the work !",
          "lines": 3,
          "note": "the block's hash sets the waves of a chladni figure"
        }
      ]
    },
    {
      "name": "streamRenderer",
      "address": "0x3bfea6182ff0e845fdafdd1ada36700fd3162976",
      "role": "renderer for the stream, read live by the token (unverified)",
      "files": [],
      "unverified": true
    }
  ]
}
