{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldAdmin",
          "type": "address"
        }
      ],
      "name": "AdminUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "newBidAmount",
          "type": "uint128"
        },
        {
          "indexed": false,
          "internalType": "uint128",
          "name": "oldBidAmount",
          "type": "uint128"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "taxNumerator",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "taxDenominator",
          "type": "uint16"
        }
      ],
      "name": "SlotClaimed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newDelegate",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "oldDelegate",
          "type": "address"
        }
      ],
      "name": "SlotDelegateUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "staker",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "stakeAmount",
          "type": "uint256"
        }
      ],
      "name": "Stake",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "newNumerator",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "newDenominator",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "oldNumerator",
          "type": "uint16"
        },
        {
          "indexed": false,
          "internalType": "uint16",
          "name": "oldDenominator",
          "type": "uint16"
        }
      ],
      "name": "TaxRateUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "staker",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "unstakedAmount",
          "type": "uint256"
        }
      ],
      "name": "Unstake",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "withdrawer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "withdrawalAmount",
          "type": "uint256"
        }
      ],
      "name": "Withdraw",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "MIN_BID",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "admin",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        },
        {
          "internalType": "uint128",
          "name": "bid",
          "type": "uint128"
        },
        {
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        }
      ],
      "name": "claimSlot",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        },
        {
          "internalType": "uint128",
          "name": "bid",
          "type": "uint128"
        },
        {
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "claimSlotWithPermit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IERC20Extended",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "contract ILockManager",
          "name": "_lockManager",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "_admin",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "_taxNumerator",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "_taxDenominator",
          "type": "uint16"
        }
      ],
      "name": "initialize",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "lockManager",
      "outputs": [
        {
          "internalType": "contract ILockManager",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "lockedBalance",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newAdmin",
          "type": "address"
        }
      ],
      "name": "setAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        },
        {
          "internalType": "address",
          "name": "delegate",
          "type": "address"
        }
      ],
      "name": "setSlotDelegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint16",
          "name": "numerator",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "denominator",
          "type": "uint16"
        }
      ],
      "name": "setTaxRate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        }
      ],
      "name": "slotBalance",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "balance",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "name": "slotBid",
      "outputs": [
        {
          "internalType": "address",
          "name": "bidder",
          "type": "address"
        },
        {
          "internalType": "uint16",
          "name": "taxNumerator",
          "type": "uint16"
        },
        {
          "internalType": "uint16",
          "name": "taxDenominator",
          "type": "uint16"
        },
        {
          "internalType": "uint64",
          "name": "periodStart",
          "type": "uint64"
        },
        {
          "internalType": "uint128",
          "name": "bidAmount",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        }
      ],
      "name": "slotCost",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        }
      ],
      "name": "slotDelegate",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "",
          "type": "uint8"
        }
      ],
      "name": "slotExpiration",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "",
          "type": "uint64"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        }
      ],
      "name": "slotForeclosed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "slot",
          "type": "uint8"
        }
      ],
      "name": "slotOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        }
      ],
      "name": "stake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        },
        {
          "internalType": "uint256",
          "name": "deadline",
          "type": "uint256"
        },
        {
          "internalType": "uint8",
          "name": "v",
          "type": "uint8"
        },
        {
          "internalType": "bytes32",
          "name": "r",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32",
          "name": "s",
          "type": "bytes32"
        }
      ],
      "name": "stakeWithPermit",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "name": "stakedBalance",
      "outputs": [
        {
          "internalType": "uint128",
          "name": "",
          "type": "uint128"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "taxDenominator",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "taxNumerator",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "token",
      "outputs": [
        {
          "internalType": "contract IERC20Extended",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        }
      ],
      "name": "unstake",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint128",
          "name": "amount",
          "type": "uint128"
        }
      ],
      "name": "withdraw",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "storageLayout": {
    "storage": [
      {
        "astId": 322,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "_initialized",
        "offset": 0,
        "slot": "0",
        "type": "t_bool"
      },
      {
        "astId": 325,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "_initializing",
        "offset": 1,
        "slot": "0",
        "type": "t_bool"
      },
      {
        "astId": 381,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "slotExpiration",
        "offset": 0,
        "slot": "1",
        "type": "t_mapping(t_uint8,t_uint64)"
      },
      {
        "astId": 386,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "_slotDelegate",
        "offset": 0,
        "slot": "2",
        "type": "t_mapping(t_uint8,t_address)"
      },
      {
        "astId": 391,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "_slotOwner",
        "offset": 0,
        "slot": "3",
        "type": "t_mapping(t_uint8,t_address)"
      },
      {
        "astId": 397,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "slotBid",
        "offset": 0,
        "slot": "4",
        "type": "t_mapping(t_uint8,t_struct(Bid)376_storage)"
      },
      {
        "astId": 402,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "stakedBalance",
        "offset": 0,
        "slot": "5",
        "type": "t_mapping(t_address,t_uint128)"
      },
      {
        "astId": 407,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "lockedBalance",
        "offset": 0,
        "slot": "6",
        "type": "t_mapping(t_address,t_uint128)"
      },
      {
        "astId": 411,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "token",
        "offset": 0,
        "slot": "7",
        "type": "t_contract(IERC20Extended)318"
      },
      {
        "astId": 415,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "lockManager",
        "offset": 0,
        "slot": "8",
        "type": "t_contract(ILockManager)133"
      },
      {
        "astId": 418,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "admin",
        "offset": 0,
        "slot": "9",
        "type": "t_address"
      },
      {
        "astId": 421,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "taxNumerator",
        "offset": 20,
        "slot": "9",
        "type": "t_uint16"
      },
      {
        "astId": 424,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "taxDenominator",
        "offset": 22,
        "slot": "9",
        "type": "t_uint16"
      },
      {
        "astId": 427,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "MIN_BID",
        "offset": 0,
        "slot": "10",
        "type": "t_uint128"
      },
      {
        "astId": 430,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "_NOT_ENTERED",
        "offset": 0,
        "slot": "11",
        "type": "t_uint256"
      },
      {
        "astId": 433,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "_ENTERED",
        "offset": 0,
        "slot": "12",
        "type": "t_uint256"
      },
      {
        "astId": 436,
        "contract": "EdenNetwork.sol:EdenNetwork",
        "label": "_status",
        "offset": 0,
        "slot": "13",
        "type": "t_uint256"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_bool": {
        "encoding": "inplace",
        "label": "bool",
        "numberOfBytes": "1"
      },
      "t_contract(IERC20Extended)318": {
        "encoding": "inplace",
        "label": "contract IERC20Extended",
        "numberOfBytes": "20"
      },
      "t_contract(ILockManager)133": {
        "encoding": "inplace",
        "label": "contract ILockManager",
        "numberOfBytes": "20"
      },
      "t_mapping(t_address,t_uint128)": {
        "encoding": "mapping",
        "key": "t_address",
        "label": "mapping(address => uint128)",
        "numberOfBytes": "32",
        "value": "t_uint128"
      },
      "t_mapping(t_uint8,t_address)": {
        "encoding": "mapping",
        "key": "t_uint8",
        "label": "mapping(uint8 => address)",
        "numberOfBytes": "32",
        "value": "t_address"
      },
      "t_mapping(t_uint8,t_struct(Bid)376_storage)": {
        "encoding": "mapping",
        "key": "t_uint8",
        "label": "mapping(uint8 => struct EdenNetwork.Bid)",
        "numberOfBytes": "32",
        "value": "t_struct(Bid)376_storage"
      },
      "t_mapping(t_uint8,t_uint64)": {
        "encoding": "mapping",
        "key": "t_uint8",
        "label": "mapping(uint8 => uint64)",
        "numberOfBytes": "32",
        "value": "t_uint64"
      },
      "t_struct(Bid)376_storage": {
        "encoding": "inplace",
        "label": "struct EdenNetwork.Bid",
        "members": [
          {
            "astId": 367,
            "contract": "EdenNetwork.sol:EdenNetwork",
            "label": "bidder",
            "offset": 0,
            "slot": "0",
            "type": "t_address"
          },
          {
            "astId": 369,
            "contract": "EdenNetwork.sol:EdenNetwork",
            "label": "taxNumerator",
            "offset": 20,
            "slot": "0",
            "type": "t_uint16"
          },
          {
            "astId": 371,
            "contract": "EdenNetwork.sol:EdenNetwork",
            "label": "taxDenominator",
            "offset": 22,
            "slot": "0",
            "type": "t_uint16"
          },
          {
            "astId": 373,
            "contract": "EdenNetwork.sol:EdenNetwork",
            "label": "periodStart",
            "offset": 24,
            "slot": "0",
            "type": "t_uint64"
          },
          {
            "astId": 375,
            "contract": "EdenNetwork.sol:EdenNetwork",
            "label": "bidAmount",
            "offset": 0,
            "slot": "1",
            "type": "t_uint128"
          }
        ],
        "numberOfBytes": "64"
      },
      "t_uint128": {
        "encoding": "inplace",
        "label": "uint128",
        "numberOfBytes": "16"
      },
      "t_uint16": {
        "encoding": "inplace",
        "label": "uint16",
        "numberOfBytes": "2"
      },
      "t_uint256": {
        "encoding": "inplace",
        "label": "uint256",
        "numberOfBytes": "32"
      },
      "t_uint64": {
        "encoding": "inplace",
        "label": "uint64",
        "numberOfBytes": "8"
      },
      "t_uint8": {
        "encoding": "inplace",
        "label": "uint8",
        "numberOfBytes": "1"
      }
    }
  }
}