[
  {
    "type": "constructor",
    "inputs": [
      {
        "name": "exile_",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "router_",
        "type": "address",
        "internalType": "contract IOstrakonRouter"
      }
    ],
    "stateMutability": "nonpayable"
  },
  {
    "type": "receive",
    "stateMutability": "payable"
  },
  {
    "type": "function",
    "name": "DEAD",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "SWEEP_INTERVAL",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "TWAP_PERIOD",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "exile",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "address"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "onClaim",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "amount",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "onForge",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "internalType": "uint256"
      },
      {
        "name": "oldToken",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "newToken",
        "type": "address",
        "internalType": "address"
      },
      {
        "name": "allocation",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "raise",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "router",
    "inputs": [],
    "outputs": [
      {
        "name": "",
        "type": "address",
        "internalType": "contract IOstrakonRouter"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "sliceOf",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "function",
    "name": "sweep",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [],
    "stateMutability": "nonpayable"
  },
  {
    "type": "function",
    "name": "wallOf",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "internalType": "uint256"
      }
    ],
    "outputs": [
      {
        "name": "",
        "type": "tuple",
        "internalType": "struct Walls.Wall",
        "components": [
          {
            "name": "oldToken",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "newToken",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "newPool",
            "type": "address",
            "internalType": "address"
          },
          {
            "name": "allocation",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "pending",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "received",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "sold",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hype",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "hypeTotal",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "lpBurned",
            "type": "uint256",
            "internalType": "uint256"
          },
          {
            "name": "startedAt",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "lastSweep",
            "type": "uint64",
            "internalType": "uint64"
          },
          {
            "name": "raised",
            "type": "bool",
            "internalType": "bool"
          }
        ]
      }
    ],
    "stateMutability": "view"
  },
  {
    "type": "event",
    "name": "Deepened",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "hype",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "tokens",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "lpBurned",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Raised",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "pool",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "hype",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "tokens",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "lpBurned",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Received",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "amount",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "Swept",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "oldSold",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      },
      {
        "name": "hypeOut",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "event",
    "name": "WallOpened",
    "inputs": [
      {
        "name": "shardId",
        "type": "uint256",
        "indexed": true,
        "internalType": "uint256"
      },
      {
        "name": "oldToken",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "newToken",
        "type": "address",
        "indexed": false,
        "internalType": "address"
      },
      {
        "name": "allocation",
        "type": "uint256",
        "indexed": false,
        "internalType": "uint256"
      }
    ],
    "anonymous": false
  },
  {
    "type": "error",
    "name": "AlreadyRaised",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NoHype",
    "inputs": []
  },
  {
    "type": "error",
    "name": "NothingToSweep",
    "inputs": []
  },
  {
    "type": "error",
    "name": "OnlyExile",
    "inputs": []
  },
  {
    "type": "error",
    "name": "RaiseTooEarly",
    "inputs": [
      {
        "name": "availableAt",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "ReentrancyGuardReentrantCall",
    "inputs": []
  },
  {
    "type": "error",
    "name": "SafeERC20FailedOperation",
    "inputs": [
      {
        "name": "token",
        "type": "address",
        "internalType": "address"
      }
    ]
  },
  {
    "type": "error",
    "name": "SweepTooSoon",
    "inputs": [
      {
        "name": "availableAt",
        "type": "uint256",
        "internalType": "uint256"
      }
    ]
  },
  {
    "type": "error",
    "name": "UnknownShard",
    "inputs": []
  }
]
