{
  "_format": "hh-sol-artifact-1",
  "contractName": "BenchUsingTellor",
  "sourceName": "contracts/mocks/BenchUsingTellor.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address payable",
          "name": "_tellor",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getDataAfter",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "_value",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_timestampRetrieved",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getDataBefore",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "_value",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "_timestampRetrieved",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getIndexForDataAfter",
      "outputs": [
        {
          "internalType": "bool",
          "name": "_found",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getIndexForDataBefore",
      "outputs": [
        {
          "internalType": "bool",
          "name": "_found",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_maxAge",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_maxCount",
          "type": "uint256"
        }
      ],
      "name": "getMultipleValuesBefore",
      "outputs": [
        {
          "internalType": "bytes[]",
          "name": "_values",
          "type": "bytes[]"
        },
        {
          "internalType": "uint256[]",
          "name": "_timestamps",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        }
      ],
      "name": "getNewValueCountbyQueryId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "getReporterByTimestamp",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_index",
          "type": "uint256"
        }
      ],
      "name": "getTimestampbyQueryIdandIndex",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "isInDispute",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_queryId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_timestamp",
          "type": "uint256"
        }
      ],
      "name": "retrieveData",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "tellor",
      "outputs": [
        {
          "internalType": "contract ITellor",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060405161108b38038061108b83398101604081905261002f91610054565b600080546001600160a01b0319166001600160a01b0392909216919091179055610082565b600060208284031215610065578081fd5b81516001600160a01b038116811461007b578182fd5b9392505050565b610ffa806100916000396000f3fe608060405234801561001057600080fd5b50600436106100b95760003560e01c8063a792765f11610081578063e07c54861161005b578063e07c5486146101c3578063f66f49c3146101d6578063fcd4a546146101e9576100b9565b8063a792765f1461017d578063c5958af914610190578063ce5e11bf146101b0576100b9565b80631959ad5b146100be57806329449085146100ee57806344e87f911461011857806364ee3c6d1461013b57806377b03e0d1461015c575b600080fd5b6000546100d1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101016100fc366004610d48565b61020a565b6040805192151583526020830191909152016100e5565b61012b610126366004610d48565b610223565b60405190151581526020016100e5565b61014e610149366004610d48565b610236565b6040516100e5929190610ec5565b61016f61016a366004610d30565b610244565b6040519081526020016100e5565b61014e61018b366004610d48565b610257565b6101a361019e366004610d48565b610265565b6040516100e59190610eb2565b61016f6101be366004610d48565b610271565b6100d16101d1366004610d48565b61027d565b6101016101e4366004610d48565b610289565b6101fc6101f7366004610d69565b610296565b6040516100e5929190610e19565b60008061021784846102b3565b915091505b9250929050565b600061022f8383610336565b9392505050565b6060600061021784846103ba565b600061024f82610413565b90505b919050565b606060006102178484610490565b606061022f8383610526565b600061022f83836105ae565b600061022f8383610632565b60008061021784846106b6565b6060806102a586868686610877565b915091505b94509492505050565b60008054604051632944908560e01b8152600481018590526024810184905282916001600160a01b031690632944908590604401604080518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102179190610d05565b600080546040516344e87f9160e01b815260048101859052602481018490526001600160a01b03909116906344e87f919060440160206040518083038186803b15801561038257600080fd5b505afa158015610396573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610c96565b606060008060006103cb86866106b6565b91509150816103f2576000604051806020016040528060008152509093509350505061021c565b6103fc86826105ae565b92506104088684610526565b935050509250929050565b600080546040516377b03e0d60e01b8152600481018490526001600160a01b03909116906377b03e0d9060240160206040518083038186803b15801561045857600080fd5b505afa15801561046c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024f9190610dd5565b6000805460405163a792765f60e01b81526004810185905260248101849052606092916001600160a01b03169063a792765f9060440160006040518083038186803b1580156104de57600080fd5b505afa1580156104f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051a9190810190610cb0565b90969095509350505050565b60005460405163c5958af960e01b815260048101849052602481018390526060916001600160a01b03169063c5958af99060440160006040518083038186803b15801561057257600080fd5b505afa158015610586573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261022f9190810190610d9a565b6000805460405163ce5e11bf60e01b815260048101859052602481018490526001600160a01b039091169063ce5e11bf9060440160206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610dd5565b6000805460405163703e2a4360e11b815260048101859052602481018490526001600160a01b039091169063e07c54869060440160206040518083038186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610c6f565b60008060006106c485610413565b9050806106d857600080925092505061021c565b806106e281610f66565b91506001905060008083816106f78a836105ae565b9050888111610712576000809750975050505050505061021c565b61071c8a846105ae565b90508881111561072b57600094505b84156107e257600261073d8484610ee7565b6107479190610eff565b93506107538a856105ae565b9050888111156107995760006107738b61076e600188610f1f565b6105ae565b90508981116107855760009550610793565b610790600186610f1f565b92505b506107dd565b60006107aa8b61076e876001610ee7565b9050898111156107cd5760009550846107c281610f7d565b9550508091506107db565b6107d8856001610ee7565b93505b505b61072b565b6107ec8a82610336565b610802576001849750975050505050505061021c565b61080c8a82610336565b801561081757508584105b1561083a578361082681610f7d565b9450506108338a856105ae565b9050610802565b858414801561084e575061084e8a82610336565b15610865576000809750975050505050505061021c565b6001849750975050505050505061021c565b6060806000806108908861088b888a610f1f565b6106b6565b91509150816108e15760408051600080825260208201909252906108c4565b60608152602001906001900390816108af5790505b5060408051600081526020810190915290945092506102aa915050565b60006108ed89896102b3565b909350905082610940576040805160008082526020820190925290610922565b606081526020019060019003908161090d5790505b5060408051600081526020810190915290955093506102aa92505050565b60008060008867ffffffffffffffff81111561096c57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610995578160200160208202803683370190505b5090505b88831080156109bc575084826109b0866001610ee7565b6109ba9190610f1f565b115b15610a2e5760006109d18d61076e8588610f1f565b90506109dd8d82610336565b610a1b5780828581518110610a0257634e487b7160e01b600052603260045260246000fd5b602090810291909101015283610a1781610f7d565b9450505b82610a2581610f7d565b93505050610999565b60008367ffffffffffffffff811115610a5757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a8a57816020015b6060815260200190600190039081610a755790505b50905060008467ffffffffffffffff811115610ab657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610adf578160200160208202803683370190505b50905060005b85811015610bc5578381610afa600189610f1f565b610b049190610f1f565b81518110610b2257634e487b7160e01b600052603260045260246000fd5b6020026020010151828281518110610b4a57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050610b878f838381518110610b7a57634e487b7160e01b600052603260045260246000fd5b6020026020010151610526565b838281518110610ba757634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610bbd90610f7d565b915050610ae5565b50909d909c509a5050505050505050505050565b8051801515811461025257600080fd5b600082601f830112610bf9578081fd5b815167ffffffffffffffff80821115610c1457610c14610fae565b604051601f8301601f19908116603f01168101908282118183101715610c3c57610c3c610fae565b81604052838152866020858801011115610c54578485fd5b610c65846020830160208901610f36565b9695505050505050565b600060208284031215610c80578081fd5b81516001600160a01b038116811461022f578182fd5b600060208284031215610ca7578081fd5b61022f82610bd9565b600080600060608486031215610cc4578182fd5b610ccd84610bd9565b9250602084015167ffffffffffffffff811115610ce8578283fd5b610cf486828701610be9565b925050604084015190509250925092565b60008060408385031215610d17578182fd5b610d2083610bd9565b9150602083015190509250929050565b600060208284031215610d41578081fd5b5035919050565b60008060408385031215610d5a578182fd5b50508035926020909101359150565b60008060008060808587031215610d7e578081fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215610dab578081fd5b815167ffffffffffffffff811115610dc1578182fd5b610dcd84828501610be9565b949350505050565b600060208284031215610de6578081fd5b5051919050565b60008151808452610e05816020860160208601610f36565b601f01601f19169290920160200192915050565b6000604082016040835280855180835260608501915060608160051b86010192506020808801855b83811015610e6f57605f19888703018552610e5d868351610ded565b95509382019390820190600101610e41565b505085840381870152865180855287820194820193509150845b82811015610ea557845184529381019392810192600101610e89565b5091979650505050505050565b60006020825261022f6020830184610ded565b600060408252610ed86040830185610ded565b90508260208301529392505050565b60008219821115610efa57610efa610f98565b500190565b600082610f1a57634e487b7160e01b81526012600452602481fd5b500490565b600082821015610f3157610f31610f98565b500390565b60005b83811015610f51578181015183820152602001610f39565b83811115610f60576000848401525b50505050565b600081610f7557610f75610f98565b506000190190565b6000600019821415610f9157610f91610f98565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122001d7b9cb8ae736c4ffe0d77f29db85b7bc705ac8874f27963a62381702f3791064736f6c63430008030033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100b95760003560e01c8063a792765f11610081578063e07c54861161005b578063e07c5486146101c3578063f66f49c3146101d6578063fcd4a546146101e9576100b9565b8063a792765f1461017d578063c5958af914610190578063ce5e11bf146101b0576100b9565b80631959ad5b146100be57806329449085146100ee57806344e87f911461011857806364ee3c6d1461013b57806377b03e0d1461015c575b600080fd5b6000546100d1906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b6101016100fc366004610d48565b61020a565b6040805192151583526020830191909152016100e5565b61012b610126366004610d48565b610223565b60405190151581526020016100e5565b61014e610149366004610d48565b610236565b6040516100e5929190610ec5565b61016f61016a366004610d30565b610244565b6040519081526020016100e5565b61014e61018b366004610d48565b610257565b6101a361019e366004610d48565b610265565b6040516100e59190610eb2565b61016f6101be366004610d48565b610271565b6100d16101d1366004610d48565b61027d565b6101016101e4366004610d48565b610289565b6101fc6101f7366004610d69565b610296565b6040516100e5929190610e19565b60008061021784846102b3565b915091505b9250929050565b600061022f8383610336565b9392505050565b6060600061021784846103ba565b600061024f82610413565b90505b919050565b606060006102178484610490565b606061022f8383610526565b600061022f83836105ae565b600061022f8383610632565b60008061021784846106b6565b6060806102a586868686610877565b915091505b94509492505050565b60008054604051632944908560e01b8152600481018590526024810184905282916001600160a01b031690632944908590604401604080518083038186803b1580156102fe57600080fd5b505afa158015610312573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906102179190610d05565b600080546040516344e87f9160e01b815260048101859052602481018490526001600160a01b03909116906344e87f919060440160206040518083038186803b15801561038257600080fd5b505afa158015610396573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610c96565b606060008060006103cb86866106b6565b91509150816103f2576000604051806020016040528060008152509093509350505061021c565b6103fc86826105ae565b92506104088684610526565b935050509250929050565b600080546040516377b03e0d60e01b8152600481018490526001600160a01b03909116906377b03e0d9060240160206040518083038186803b15801561045857600080fd5b505afa15801561046c573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061024f9190610dd5565b6000805460405163a792765f60e01b81526004810185905260248101849052606092916001600160a01b03169063a792765f9060440160006040518083038186803b1580156104de57600080fd5b505afa1580156104f2573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261051a9190810190610cb0565b90969095509350505050565b60005460405163c5958af960e01b815260048101849052602481018390526060916001600160a01b03169063c5958af99060440160006040518083038186803b15801561057257600080fd5b505afa158015610586573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261022f9190810190610d9a565b6000805460405163ce5e11bf60e01b815260048101859052602481018490526001600160a01b039091169063ce5e11bf9060440160206040518083038186803b1580156105fa57600080fd5b505afa15801561060e573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610dd5565b6000805460405163703e2a4360e11b815260048101859052602481018490526001600160a01b039091169063e07c54869060440160206040518083038186803b15801561067e57600080fd5b505afa158015610692573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061022f9190610c6f565b60008060006106c485610413565b9050806106d857600080925092505061021c565b806106e281610f66565b91506001905060008083816106f78a836105ae565b9050888111610712576000809750975050505050505061021c565b61071c8a846105ae565b90508881111561072b57600094505b84156107e257600261073d8484610ee7565b6107479190610eff565b93506107538a856105ae565b9050888111156107995760006107738b61076e600188610f1f565b6105ae565b90508981116107855760009550610793565b610790600186610f1f565b92505b506107dd565b60006107aa8b61076e876001610ee7565b9050898111156107cd5760009550846107c281610f7d565b9550508091506107db565b6107d8856001610ee7565b93505b505b61072b565b6107ec8a82610336565b610802576001849750975050505050505061021c565b61080c8a82610336565b801561081757508584105b1561083a578361082681610f7d565b9450506108338a856105ae565b9050610802565b858414801561084e575061084e8a82610336565b15610865576000809750975050505050505061021c565b6001849750975050505050505061021c565b6060806000806108908861088b888a610f1f565b6106b6565b91509150816108e15760408051600080825260208201909252906108c4565b60608152602001906001900390816108af5790505b5060408051600081526020810190915290945092506102aa915050565b60006108ed89896102b3565b909350905082610940576040805160008082526020820190925290610922565b606081526020019060019003908161090d5790505b5060408051600081526020810190915290955093506102aa92505050565b60008060008867ffffffffffffffff81111561096c57634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610995578160200160208202803683370190505b5090505b88831080156109bc575084826109b0866001610ee7565b6109ba9190610f1f565b115b15610a2e5760006109d18d61076e8588610f1f565b90506109dd8d82610336565b610a1b5780828581518110610a0257634e487b7160e01b600052603260045260246000fd5b602090810291909101015283610a1781610f7d565b9450505b82610a2581610f7d565b93505050610999565b60008367ffffffffffffffff811115610a5757634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610a8a57816020015b6060815260200190600190039081610a755790505b50905060008467ffffffffffffffff811115610ab657634e487b7160e01b600052604160045260246000fd5b604051908082528060200260200182016040528015610adf578160200160208202803683370190505b50905060005b85811015610bc5578381610afa600189610f1f565b610b049190610f1f565b81518110610b2257634e487b7160e01b600052603260045260246000fd5b6020026020010151828281518110610b4a57634e487b7160e01b600052603260045260246000fd5b602002602001018181525050610b878f838381518110610b7a57634e487b7160e01b600052603260045260246000fd5b6020026020010151610526565b838281518110610ba757634e487b7160e01b600052603260045260246000fd5b60200260200101819052508080610bbd90610f7d565b915050610ae5565b50909d909c509a5050505050505050505050565b8051801515811461025257600080fd5b600082601f830112610bf9578081fd5b815167ffffffffffffffff80821115610c1457610c14610fae565b604051601f8301601f19908116603f01168101908282118183101715610c3c57610c3c610fae565b81604052838152866020858801011115610c54578485fd5b610c65846020830160208901610f36565b9695505050505050565b600060208284031215610c80578081fd5b81516001600160a01b038116811461022f578182fd5b600060208284031215610ca7578081fd5b61022f82610bd9565b600080600060608486031215610cc4578182fd5b610ccd84610bd9565b9250602084015167ffffffffffffffff811115610ce8578283fd5b610cf486828701610be9565b925050604084015190509250925092565b60008060408385031215610d17578182fd5b610d2083610bd9565b9150602083015190509250929050565b600060208284031215610d41578081fd5b5035919050565b60008060408385031215610d5a578182fd5b50508035926020909101359150565b60008060008060808587031215610d7e578081fd5b5050823594602084013594506040840135936060013592509050565b600060208284031215610dab578081fd5b815167ffffffffffffffff811115610dc1578182fd5b610dcd84828501610be9565b949350505050565b600060208284031215610de6578081fd5b5051919050565b60008151808452610e05816020860160208601610f36565b601f01601f19169290920160200192915050565b6000604082016040835280855180835260608501915060608160051b86010192506020808801855b83811015610e6f57605f19888703018552610e5d868351610ded565b95509382019390820190600101610e41565b505085840381870152865180855287820194820193509150845b82811015610ea557845184529381019392810192600101610e89565b5091979650505050505050565b60006020825261022f6020830184610ded565b600060408252610ed86040830185610ded565b90508260208301529392505050565b60008219821115610efa57610efa610f98565b500190565b600082610f1a57634e487b7160e01b81526012600452602481fd5b500490565b600082821015610f3157610f31610f98565b500390565b60005b83811015610f51578181015183820152602001610f39565b83811115610f60576000848401525b50505050565b600081610f7557610f75610f98565b506000190190565b6000600019821415610f9157610f91610f98565b5060010190565b634e487b7160e01b600052601160045260246000fd5b634e487b7160e01b600052604160045260246000fdfea264697066735822122001d7b9cb8ae736c4ffe0d77f29db85b7bc705ac8874f27963a62381702f3791064736f6c63430008030033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
