{
  "_format": "hh-sol-artifact-1",
  "contractName": "RoundsStorageUtils",
  "sourceName": "contracts/x-allocation-voting-governance/libraries/RoundsStorageUtils.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "uint8",
          "name": "bits",
          "type": "uint8"
        },
        {
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "SafeCastOverflowedUintDowncast",
      "type": "error"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "proposer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "voteStart",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "voteEnd",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes32[]",
          "name": "appsIds",
          "type": "bytes32[]"
        }
      ],
      "name": "RoundCreated",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "currentRoundDeadline",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentRoundId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "currentRoundSnapshot",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getAppIdsOfRound",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getAppsOfRound",
      "outputs": [
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "id",
              "type": "bytes32"
            },
            {
              "internalType": "address",
              "name": "teamWalletAddress",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "name",
              "type": "string"
            },
            {
              "internalType": "string",
              "name": "metadataURI",
              "type": "string"
            },
            {
              "internalType": "uint256",
              "name": "createdAtTimestamp",
              "type": "uint256"
            },
            {
              "internalType": "bool",
              "name": "appAvailableForAllocationVoting",
              "type": "bool"
            }
          ],
          "internalType": "struct X2EarnAppsDataTypes.AppWithDetailsReturnType[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "getRound",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "proposer",
              "type": "address"
            },
            {
              "internalType": "uint48",
              "name": "voteStart",
              "type": "uint48"
            },
            {
              "internalType": "uint32",
              "name": "voteDuration",
              "type": "uint32"
            }
          ],
          "internalType": "struct XAllocationVotingStorageTypes.RoundCore",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "roundDeadline",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "roundProposer",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "roundId",
          "type": "uint256"
        }
      ],
      "name": "roundSnapshot",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x610d0c61003a600b82828239805160001a60731461002d57634e487b7160e01b600052600060045260246000fd5b30600052607381538281f3fe73000000000000000000000000000000000000000030146080604052600436106100985760003560e01c8063291605f71461009d5780635320a147146100c6578063561b64ef146100f157806359372812146101075780637ace24851461010f5780637ad59a231461012f5780638f1327c01461014f5780639cbe5efd1461019b578063d06efeda146101a3578063d3a368bd146101b6575b600080fd5b6100b06100ab3660046107d3565b6101c9565b6040516100bd919061083c565b60405180910390f35b6100d96100d43660046107d3565b6103d0565b6040516001600160a01b0390911681526020016100bd565b6100f96103f9565b6040519081526020016100bd565b6100f961042d565b61012261011d3660046107d3565b61047c565b6040516100bd91906108f9565b81801561013b57600080fd5b506100f961014a3660046109c3565b6104ef565b61016261015d3660046107d3565b610610565b6040805182516001600160a01b0316815260208084015165ffffffffffff16908201529181015163ffffffff16908201526060016100bd565b6100f9610690565b6100f96101b13660046107d3565b6106a2565b6100f96101c43660046107d3565b6106d1565b7f1da8cbbb2b12987a437595605432a6bbe84c08e9685afaaee593f05659f50d00546060906001600160a01b0316600061020161071d565b600085815260028201602090815260408083208054825181850281018501909352808352949550929390929183018282801561025c57602002820191906000526020600020905b815481526020019060010190808311610248575b505050505090506000815190506000816001600160401b0381111561028357610283610955565b6040519080825280602002602001820160405280156102fb57816020015b6102e86040518060c001604052806000801916815260200160006001600160a01b031681526020016060815260200160608152602001600081526020016000151581525090565b8152602001906001900390816102a15790505b50905060005b828110156103c557856001600160a01b031663785d6e1885838151811061032a5761032a610ab4565b60200260200101516040518263ffffffff1660e01b815260040161035091815260200190565b600060405180830381865afa15801561036d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103959190810190610b55565b8282815181106103a7576103a7610ab4565b602002602001018190525080806103bd90610c31565b915050610301565b509695505050505050565b6000806103db61071d565b6000938452600101602052505060409020546001600160a01b031690565b60008061040461071d565b8054600090815260019091016020526040902054600160a01b900465ffffffffffff1692915050565b60008061043861071d565b805460008181526001830160205260409020549192509061047590600160d01b810463ffffffff1690600160a01b900465ffffffffffff16610c4a565b9250505090565b6060600061048861071d565b600084815260028201602090815260409182902080548351818402810184019094528084529394509192908301828280156104e257602002820191906000526020600020905b8154815260200190600101908083116104ce575b5050505050915050919050565b6000806104fa61071d565b9050806000016000815461050d90610c31565b9091555080546000818152600183016020526040902080546001600160a01b0319166001600160a01b03891617815590925061055065ffffffffffff8716610741565b8154600160a01b600160f01b031916600160a01b65ffffffffffff929092169190910263ffffffff60d01b191617600160d01b63ffffffff8716021781556000838152600283016020908152604090912085516105af9287019061077c565b507fed97f3daa22d7f521cfac2156e927c837565dd6980bd67cc6f7e53cc52ea09c88388886105ec63ffffffff8a1665ffffffffffff8316610c4a565b886040516105fe959493929190610c63565b60405180910390a15050949350505050565b604080516060810182526000808252602082018190529181018290529061063561071d565b60009384526001016020908152604093849020845160608101865290546001600160a01b0381168252600160a01b810465ffffffffffff1692820192909252600160d01b90910463ffffffff16938101939093525090919050565b60008061069b61071d565b5492915050565b6000806106ad61071d565b600093845260010160205250506040902054600160a01b900465ffffffffffff1690565b6000806106dc61071d565b600084815260018201602052604090205490915061071690600160d01b810463ffffffff1690600160a01b900465ffffffffffff16610c4a565b9392505050565b7f0f5210c47c3bb73c471770a1cbb5b7ddc03c0ec886694cc17ae21d1f595f190090565b600065ffffffffffff821115610778576040516306dfcc6560e41b8152603060048201526024810183905260440160405180910390fd5b5090565b8280548282559060005260206000209081019282156107b7579160200282015b828111156107b757825182559160200191906001019061079c565b506107789291505b8082111561077857600081556001016107bf565b6000602082840312156107e557600080fd5b5035919050565b60005b838110156108075781810151838201526020016107ef565b50506000910152565b600081518084526108288160208601602086016107ec565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156108eb57888303603f19018552815180518452878101516001600160a01b0316888501528681015160c0888601819052906108a482870182610810565b915050606080830151868303828801526108be8382610810565b6080858101519089015260a094850151151594909701939093525050509386019390860190600101610863565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561093157835183529284019291840191600101610915565b50909695505050505050565b6001600160a01b038116811461095257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b038111828210171561098d5761098d610955565b60405290565b604051601f8201601f191681016001600160401b03811182821017156109bb576109bb610955565b604052919050565b600080600080608085870312156109d957600080fd5b84356109e48161093d565b935060208581013565ffffffffffff81168114610a0057600080fd5b9350604086013563ffffffff81168114610a1957600080fd5b925060608601356001600160401b0380821115610a3557600080fd5b818801915088601f830112610a4957600080fd5b813581811115610a5b57610a5b610955565b8060051b9150610a6c848301610993565b818152918301840191848101908b841115610a8657600080fd5b938501935b83851015610aa457843582529385019390850190610a8b565b989b979a50959850505050505050565b634e487b7160e01b600052603260045260246000fd5b8051610ad58161093d565b919050565b600082601f830112610aeb57600080fd5b81516001600160401b03811115610b0457610b04610955565b610b17601f8201601f1916602001610993565b818152846020838601011115610b2c57600080fd5b610b3d8260208301602087016107ec565b949350505050565b80518015158114610ad557600080fd5b600060208284031215610b6757600080fd5b81516001600160401b0380821115610b7e57600080fd5b9083019060c08286031215610b9257600080fd5b610b9a61096b565b82518152610baa60208401610aca565b6020820152604083015182811115610bc157600080fd5b610bcd87828601610ada565b604083015250606083015182811115610be557600080fd5b610bf187828601610ada565b60608301525060808301516080820152610c0d60a08401610b45565b60a082015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201610c4357610c43610c1b565b5060010190565b80820180821115610c5d57610c5d610c1b565b92915050565b600060a08201878352602060018060a01b0388168185015265ffffffffffff8716604085015285606085015260a0608085015281855180845260c086019150828701935060005b81811015610cc657845183529383019391830191600101610caa565b50909a995050505050505050505056fea2646970667358221220c8f15c859171dde97455655c683861ad895af484cc844a3bb8494cb2f715ced064736f6c63430008140033",
  "deployedBytecode": "0x73000000000000000000000000000000000000000030146080604052600436106100985760003560e01c8063291605f71461009d5780635320a147146100c6578063561b64ef146100f157806359372812146101075780637ace24851461010f5780637ad59a231461012f5780638f1327c01461014f5780639cbe5efd1461019b578063d06efeda146101a3578063d3a368bd146101b6575b600080fd5b6100b06100ab3660046107d3565b6101c9565b6040516100bd919061083c565b60405180910390f35b6100d96100d43660046107d3565b6103d0565b6040516001600160a01b0390911681526020016100bd565b6100f96103f9565b6040519081526020016100bd565b6100f961042d565b61012261011d3660046107d3565b61047c565b6040516100bd91906108f9565b81801561013b57600080fd5b506100f961014a3660046109c3565b6104ef565b61016261015d3660046107d3565b610610565b6040805182516001600160a01b0316815260208084015165ffffffffffff16908201529181015163ffffffff16908201526060016100bd565b6100f9610690565b6100f96101b13660046107d3565b6106a2565b6100f96101c43660046107d3565b6106d1565b7f1da8cbbb2b12987a437595605432a6bbe84c08e9685afaaee593f05659f50d00546060906001600160a01b0316600061020161071d565b600085815260028201602090815260408083208054825181850281018501909352808352949550929390929183018282801561025c57602002820191906000526020600020905b815481526020019060010190808311610248575b505050505090506000815190506000816001600160401b0381111561028357610283610955565b6040519080825280602002602001820160405280156102fb57816020015b6102e86040518060c001604052806000801916815260200160006001600160a01b031681526020016060815260200160608152602001600081526020016000151581525090565b8152602001906001900390816102a15790505b50905060005b828110156103c557856001600160a01b031663785d6e1885838151811061032a5761032a610ab4565b60200260200101516040518263ffffffff1660e01b815260040161035091815260200190565b600060405180830381865afa15801561036d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f191682016040526103959190810190610b55565b8282815181106103a7576103a7610ab4565b602002602001018190525080806103bd90610c31565b915050610301565b509695505050505050565b6000806103db61071d565b6000938452600101602052505060409020546001600160a01b031690565b60008061040461071d565b8054600090815260019091016020526040902054600160a01b900465ffffffffffff1692915050565b60008061043861071d565b805460008181526001830160205260409020549192509061047590600160d01b810463ffffffff1690600160a01b900465ffffffffffff16610c4a565b9250505090565b6060600061048861071d565b600084815260028201602090815260409182902080548351818402810184019094528084529394509192908301828280156104e257602002820191906000526020600020905b8154815260200190600101908083116104ce575b5050505050915050919050565b6000806104fa61071d565b9050806000016000815461050d90610c31565b9091555080546000818152600183016020526040902080546001600160a01b0319166001600160a01b03891617815590925061055065ffffffffffff8716610741565b8154600160a01b600160f01b031916600160a01b65ffffffffffff929092169190910263ffffffff60d01b191617600160d01b63ffffffff8716021781556000838152600283016020908152604090912085516105af9287019061077c565b507fed97f3daa22d7f521cfac2156e927c837565dd6980bd67cc6f7e53cc52ea09c88388886105ec63ffffffff8a1665ffffffffffff8316610c4a565b886040516105fe959493929190610c63565b60405180910390a15050949350505050565b604080516060810182526000808252602082018190529181018290529061063561071d565b60009384526001016020908152604093849020845160608101865290546001600160a01b0381168252600160a01b810465ffffffffffff1692820192909252600160d01b90910463ffffffff16938101939093525090919050565b60008061069b61071d565b5492915050565b6000806106ad61071d565b600093845260010160205250506040902054600160a01b900465ffffffffffff1690565b6000806106dc61071d565b600084815260018201602052604090205490915061071690600160d01b810463ffffffff1690600160a01b900465ffffffffffff16610c4a565b9392505050565b7f0f5210c47c3bb73c471770a1cbb5b7ddc03c0ec886694cc17ae21d1f595f190090565b600065ffffffffffff821115610778576040516306dfcc6560e41b8152603060048201526024810183905260440160405180910390fd5b5090565b8280548282559060005260206000209081019282156107b7579160200282015b828111156107b757825182559160200191906001019061079c565b506107789291505b8082111561077857600081556001016107bf565b6000602082840312156107e557600080fd5b5035919050565b60005b838110156108075781810151838201526020016107ef565b50506000910152565b600081518084526108288160208601602086016107ec565b601f01601f19169290920160200192915050565b60006020808301818452808551808352604092508286019150828160051b87010184880160005b838110156108eb57888303603f19018552815180518452878101516001600160a01b0316888501528681015160c0888601819052906108a482870182610810565b915050606080830151868303828801526108be8382610810565b6080858101519089015260a094850151151594909701939093525050509386019390860190600101610863565b509098975050505050505050565b6020808252825182820181905260009190848201906040850190845b8181101561093157835183529284019291840191600101610915565b50909695505050505050565b6001600160a01b038116811461095257600080fd5b50565b634e487b7160e01b600052604160045260246000fd5b60405160c081016001600160401b038111828210171561098d5761098d610955565b60405290565b604051601f8201601f191681016001600160401b03811182821017156109bb576109bb610955565b604052919050565b600080600080608085870312156109d957600080fd5b84356109e48161093d565b935060208581013565ffffffffffff81168114610a0057600080fd5b9350604086013563ffffffff81168114610a1957600080fd5b925060608601356001600160401b0380821115610a3557600080fd5b818801915088601f830112610a4957600080fd5b813581811115610a5b57610a5b610955565b8060051b9150610a6c848301610993565b818152918301840191848101908b841115610a8657600080fd5b938501935b83851015610aa457843582529385019390850190610a8b565b989b979a50959850505050505050565b634e487b7160e01b600052603260045260246000fd5b8051610ad58161093d565b919050565b600082601f830112610aeb57600080fd5b81516001600160401b03811115610b0457610b04610955565b610b17601f8201601f1916602001610993565b818152846020838601011115610b2c57600080fd5b610b3d8260208301602087016107ec565b949350505050565b80518015158114610ad557600080fd5b600060208284031215610b6757600080fd5b81516001600160401b0380821115610b7e57600080fd5b9083019060c08286031215610b9257600080fd5b610b9a61096b565b82518152610baa60208401610aca565b6020820152604083015182811115610bc157600080fd5b610bcd87828601610ada565b604083015250606083015182811115610be557600080fd5b610bf187828601610ada565b60608301525060808301516080820152610c0d60a08401610b45565b60a082015295945050505050565b634e487b7160e01b600052601160045260246000fd5b600060018201610c4357610c43610c1b565b5060010190565b80820180821115610c5d57610c5d610c1b565b92915050565b600060a08201878352602060018060a01b0388168185015265ffffffffffff8716604085015285606085015260a0608085015281855180845260c086019150828701935060005b81811015610cc657845183529383019391830191600101610caa565b50909a995050505050505050505056fea2646970667358221220c8f15c859171dde97455655c683861ad895af484cc844a3bb8494cb2f715ced064736f6c63430008140033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
