{
  "work": "the-pond",
  "pinned": [
    "0x22fea2f6b2154859630011d9a38648171ca0d972/contracts/Pond.sol",
    "0xd60d12be288f22300782337d49aff7e86d8c2023/contracts/PondRenderer.sol"
  ],
  "contracts": [
    {
      "name": "Pond",
      "address": "0x22fea2f6b2154859630011d9a38648171ca0d972",
      "role": "the token, keeping every bid of its auction",
      "compiler": "0.8.27+commit.40a35a09",
      "main": "contracts/Pond.sol",
      "files": [
        "contracts/Pond.sol",
        "contracts/ISculpture.sol",
        "contracts/Sculpture.sol",
        "lib/openzeppelin-contracts/contracts/access/Ownable.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC165.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC4906.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/IERC721.sol",
        "lib/openzeppelin-contracts/contracts/interfaces/draft-IERC6093.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/ERC721.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/IERC721Receiver.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/extensions/IERC721Metadata.sol",
        "lib/openzeppelin-contracts/contracts/token/ERC721/utils/ERC721Utils.sol",
        "lib/openzeppelin-contracts/contracts/utils/Bytes.sol",
        "lib/openzeppelin-contracts/contracts/utils/Context.sol",
        "lib/openzeppelin-contracts/contracts/utils/Panic.sol",
        "lib/openzeppelin-contracts/contracts/utils/Strings.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/ERC165.sol",
        "lib/openzeppelin-contracts/contracts/utils/introspection/IERC165.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/Math.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol"
      ],
      "focus": [
        {
          "file": "contracts/Pond.sol",
          "match": "_initSculpture(\"Pond\", \"Nahiko\", msg.sender,",
          "lines": 1,
          "note": "the dedication, written into the work"
        },
        {
          "file": "contracts/Pond.sol",
          "match": "function syncSRBid() external {",
          "lines": 13,
          "note": "anyone could bring the latest bid of the auction into the pond"
        },
        {
          "file": "contracts/Pond.sol",
          "match": "function closeAuction() external onlyOwner {",
          "lines": 3,
          "note": "once the auction closed, the pond was frozen"
        }
      ]
    },
    {
      "name": "PondRenderer",
      "address": "0xd60d12be288f22300782337d49aff7e86d8c2023",
      "role": "renderer drawing one lily for each bid",
      "compiler": "0.8.27+commit.40a35a09",
      "main": "contracts/PondRenderer.sol",
      "files": [
        "contracts/PondRenderer.sol",
        "lib/openzeppelin-contracts/contracts/access/Ownable.sol",
        "lib/openzeppelin-contracts/contracts/utils/Base64.sol",
        "lib/openzeppelin-contracts/contracts/utils/Bytes.sol",
        "lib/openzeppelin-contracts/contracts/utils/Context.sol",
        "lib/openzeppelin-contracts/contracts/utils/Panic.sol",
        "lib/openzeppelin-contracts/contracts/utils/Strings.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/Math.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/SafeCast.sol",
        "lib/openzeppelin-contracts/contracts/utils/math/SignedMath.sol",
        "lib/solady/src/utils/DynamicBufferLib.sol"
      ],
      "focus": [
        {
          "file": "contracts/PondRenderer.sol",
          "match": "function generateImageDataURIs() private view returns (bytes memory) {",
          "lines": 49,
          "note": "one lily for each bid, read from the chain"
        },
        {
          "file": "contracts/PondRenderer.sol",
          "match": "function generateBidNamesList() private view returns (bytes memory) {",
          "lines": 44,
          "note": "each bidder named once, outbid or not"
        }
      ]
    }
  ]
}
