{
    "_format": "hh-sol-artifact-1",
    "contractName": "BTCReferee",
    "sourceName": "contracts/BTCReferee.sol",
    "abi": [
        {
            "inputs": [
                {
                    "internalType": "address",
                    "name": "_relay",
                    "type": "address"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "constructor"
        },
        {
            "inputs": [],
            "name": "relay",
            "outputs": [
                {
                    "internalType": "address",
                    "name": "",
                    "type": "address"
                }
            ],
            "stateMutability": "view",
            "type": "function"
        },
        {
            "inputs": [
                {
                    "internalType": "bytes32",
                    "name": "id",
                    "type": "bytes32"
                },
                {
                    "internalType": "uint32",
                    "name": "height",
                    "type": "uint32"
                },
                {
                    "internalType": "uint256",
                    "name": "index",
                    "type": "uint256"
                },
                {
                    "internalType": "bytes32",
                    "name": "txid",
                    "type": "bytes32"
                },
                {
                    "internalType": "bytes",
                    "name": "header",
                    "type": "bytes"
                },
                {
                    "internalType": "bytes",
                    "name": "proof",
                    "type": "bytes"
                },
                {
                    "internalType": "bytes",
                    "name": "rawtx",
                    "type": "bytes"
                },
                {
                    "internalType": "bytes20",
                    "name": "btcHash",
                    "type": "bytes20"
                },
                {
                    "internalType": "enum Bitcoin.Script",
                    "name": "format",
                    "type": "uint8"
                }
            ],
            "name": "verifyTx",
            "outputs": [
                {
                    "internalType": "uint256",
                    "name": "",
                    "type": "uint256"
                }
            ],
            "stateMutability": "nonpayable",
            "type": "function"
        }
    ],
    "bytecode": "0x608060405234801561001057600080fd5b506040516111b53803806111b58339818101604052602081101561003357600080fd5b5051600080546001600160a01b039092166001600160a01b0319909216919091179055611150806100656000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063b59589d11461003b578063eef421ab1461005f575b600080fd5b6100436101bc565b604080516001600160a01b039092168252519081900360200190f35b6101aa600480360361012081101561007657600080fd5b81359163ffffffff6020820135169160408201359160608101359181019060a0810160808201356401000000008111156100af57600080fd5b8201836020820111156100c157600080fd5b803590602001918460018302840111640100000000831117156100e357600080fd5b91939092909160208101903564010000000081111561010157600080fd5b82018360208201111561011357600080fd5b8035906020019184600183028401116401000000008311171561013557600080fd5b91939092909160208101903564010000000081111561015357600080fd5b82018360208201111561016557600080fd5b8035906020019184600183028401116401000000008311171561018757600080fd5b919350915080356bffffffffffffffffffffffff1916906020013560ff166101cb565b60408051918252519081900360200190f35b6000546001600160a01b031681565b604080518082019091526013815272092dcecc2d8d2c840deeae8e0eae840d0c2e6d606b1b60208201526000906bffffffffffffffffffffffff1984166102905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561025557818101518382015260200161023d565b50505050905090810190601f1680156102825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506103188c8c8c8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061047292505050565b6040518060400160405280601a81526020017f43616e6e6f742076657269667920747820696e636c7573696f6e0000000000008152509061039a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561025557818101518382015260200161023d565b506000806103e187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508992508891506105f69050565b915091508e821460405180604001604052806012815260200171125b9d985b1a59081c995c5d595cdd081a5960721b8152509061045f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561025557818101518382015260200161023d565b509e9d5050505050505050505050505050565b60008054604051632b3e5d0d60e21b815263ffffffff881660048201908152602482018890526044820187905260a4820184905260c4820184905260e060648301908152865160e484015286516001600160a01b039094169363acf97434938b938b938b938b938b938b93849391929091608482019161010401906020890190808383895b8381101561050f5781810151838201526020016104f7565b50505050905090810190601f16801561053c5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101561056f578181015183820152602001610557565b50505050905090810190601f16801561059c5780820380516001836020036101000a031916815260200191505b50995050505050505050505060206040518083038186803b1580156105c057600080fd5b505afa1580156105d4573d6000803e3d6000fd5b505050506040513d60208110156105ea57600080fd5b50519695505050505050565b60008060006106048661077b565b91505060606106218283895103896108a89092919063ffffffff16565b9050600061062e82610963565b50905060005b8181101561076f57606061064e848363ffffffff610a1716565b9050606061065b82610b94565b90506000808a600281111561066c57fe5b14801561067d575061067d82610bfc565b156106925761068b82610c8b565b9050610723565b60018a60028111156106a057fe5b1480156106b157506106b182610ca3565b156106bf5761068b82610d76565b60028a60028111156106cd57fe5b1480156106de57506106de82610d8e565b156106f5576106ec82610dc5565b91506107239050565b6106fe82610e03565b1561071b5761071461070f83610e18565b610e5e565b9850610723565b505050610767565b6bffffffffffffffffffffffff19818116908c1614156107635761076061074984610e7a565b899067ffffffffffffffff1663ffffffff610e8516565b97505b5050505b600101610634565b50505050935093915050565b80516000908190600460606107988683600263ffffffff6108a816565b9050806000815181106107a757fe5b01602001516001600160f81b0319161580156107e25750806001815181106107cb57fe5b6020910101516001600160f81b031916600160f81b145b156107ee578160020191505b600061080b610806888580880363ffffffff6108a816565b610edf565b60ff16905080610819575060015b600061083461082f89868563ffffffff6108a816565b610f5b565b93820193905060005b8181101561089a57602485019460009061086490610806908c9089908b03602319016108a8565b60ff16905080610872575060015b600061088861082f8c898563ffffffff6108a816565b9190960101600401945060010161083d565b509550919350505050915091565b6060816108c4575060408051602081019091526000815261095c565b82820183811180156108d7575080855110155b61091e576040805162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b604051915082604083010160405282825283850182038460208701018481015b808210156109575781518383015260208201915061093e565b505050505b9392505050565b80516000908190818061098061080687838663ffffffff6108a816565b60ff1690508061098e575060015b60006109a461082f88858563ffffffff6108a816565b92820192905060005b81811015610a0a5783600801935060006109d7610806868789038c6108a89092919063ffffffff16565b60ff169050806109e5575060015b60006109fb61082f8b888563ffffffff6108a816565b919095010193506001016109ad565b5094509092505050915091565b8151606090600080610a3361080687838663ffffffff6108a816565b60ff16905080610a41575060015b6000610a5761082f88858563ffffffff6108a816565b9050858110156040518060400160405280600e81526020016d125b9d985b1a59081bdd5d1c1d5d60921b81525090610ad05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561025557818101518382015260200161023d565b50918101918260005b82811015610b75578460080194506000610b0361080687888a038d6108a89092919063ffffffff16565b60ff16905080610b11575060015b6000610b2761082f8c898563ffffffff6108a816565b9682018701969050828a1415610b6857610b5984610b4b898263ffffffff610f9f16565b8d919063ffffffff6108a816565b98505050505050505050610b8e565b5085925050600101610ad9565b5060405180602001604052806000815250955050505050505b92915050565b805160609060086000610bb56108068684600719870163ffffffff6108a816565b60ff16905080610bc3575060015b6000610bd961082f87858563ffffffff6108a816565b928201929050610bf086848363ffffffff6108a816565b9450505050505b919050565b600081516017148015610c2e5750815160a960f81b908390600090610c1d57fe5b01602001516001600160f81b031916145b8015610c59575081600181518110610c4257fe5b6020910101516001600160f81b031916600560fa1b145b8015610b8e57508151608760f81b9083906016908110610c7557fe5b01602001516001600160f81b0319161492915050565b6000610b8e61070f836002601463ffffffff6108a816565b600081516019148015610cd557508151603b60f91b908390600090610cc457fe5b01602001516001600160f81b031916145b8015610d025750815160a960f81b9083906001908110610cf157fe5b01602001516001600160f81b031916145b8015610d2d575081600281518110610d1657fe5b6020910101516001600160f81b031916600560fa1b145b8015610d5a57508151601160fb1b9083906017908110610d4957fe5b01602001516001600160f81b031916145b8015610b8e57508151602b60fa1b9083906018908110610c7557fe5b6000610b8e61070f836003601463ffffffff6108a816565b600081516016148015610b8e575081600181518110610da957fe5b6020910101516001600160f81b031916600560fa1b1492915050565b60008082600081518110610dd557fe5b01602001516001600160f81b031916610dfa61070f856002601463ffffffff6108a816565b91509150915091565b8051600090603560f91b9083908390610c7557fe5b606080610e34600180855103856108a89092919063ffffffff16565b905061095c600182600081518110610e4857fe5b016020015183919060f81c63ffffffff6108a816565b6000815160001415610e7257506000610bf7565b506020015190565b6000610b8e82610fe1565b60008282018381101561095c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081600081518110610eee57fe5b60209101015160f81c60ff1415610f0757506008610bf7565b81600081518110610f1457fe5b60209101015160f81c60fe1415610f2d57506004610bf7565b81600081518110610f3a57fe5b60209101015160f81c60fd1415610f5357506002610bf7565b506000919050565b600080805b8351811015610f98578060010184510360080260020a848281518110610f8257fe5b016020015160f81c029190910190600101610f60565b5092915050565b600061095c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061100e565b60006060610fee83611068565b90506060610ffb8261107d565b905061100681610f5b565b949350505050565b600081848411156110605760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561025557818101518382015260200161023d565b505050900390565b6060610b8e826000600863ffffffff6108a816565b606080825167ffffffffffffffff8111801561109857600080fd5b506040519080825280601f01601f1916602001820160405280156110c3576020820181803683370190505b50905060005b8351811015610f98578381815181106110de57fe5b602001015160f81c60f81b8260018387510303815181106110fb57fe5b60200101906001600160f81b031916908160001a9053506001016110c956fea26469706673582212201591ece0da1738c9d66544653bb45f4250780f18c3895048a4d04e4894c071e164736f6c63430006060033",
    "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063b59589d11461003b578063eef421ab1461005f575b600080fd5b6100436101bc565b604080516001600160a01b039092168252519081900360200190f35b6101aa600480360361012081101561007657600080fd5b81359163ffffffff6020820135169160408201359160608101359181019060a0810160808201356401000000008111156100af57600080fd5b8201836020820111156100c157600080fd5b803590602001918460018302840111640100000000831117156100e357600080fd5b91939092909160208101903564010000000081111561010157600080fd5b82018360208201111561011357600080fd5b8035906020019184600183028401116401000000008311171561013557600080fd5b91939092909160208101903564010000000081111561015357600080fd5b82018360208201111561016557600080fd5b8035906020019184600183028401116401000000008311171561018757600080fd5b919350915080356bffffffffffffffffffffffff1916906020013560ff166101cb565b60408051918252519081900360200190f35b6000546001600160a01b031681565b604080518082019091526013815272092dcecc2d8d2c840deeae8e0eae840d0c2e6d606b1b60208201526000906bffffffffffffffffffffffff1984166102905760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561025557818101518382015260200161023d565b50505050905090810190601f1680156102825780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b506103188c8c8c8c8c8080601f016020809104026020016040519081016040528093929190818152602001838380828437600081840152601f19601f820116905080830192505050505050508b8b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525061047292505050565b6040518060400160405280601a81526020017f43616e6e6f742076657269667920747820696e636c7573696f6e0000000000008152509061039a5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561025557818101518382015260200161023d565b506000806103e187878080601f0160208091040260200160405190810160405280939291908181526020018383808284376000920191909152508992508891506105f69050565b915091508e821460405180604001604052806012815260200171125b9d985b1a59081c995c5d595cdd081a5960721b8152509061045f5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561025557818101518382015260200161023d565b509e9d5050505050505050505050505050565b60008054604051632b3e5d0d60e21b815263ffffffff881660048201908152602482018890526044820187905260a4820184905260c4820184905260e060648301908152865160e484015286516001600160a01b039094169363acf97434938b938b938b938b938b938b93849391929091608482019161010401906020890190808383895b8381101561050f5781810151838201526020016104f7565b50505050905090810190601f16801561053c5780820380516001836020036101000a031916815260200191505b50838103825286518152865160209182019188019080838360005b8381101561056f578181015183820152602001610557565b50505050905090810190601f16801561059c5780820380516001836020036101000a031916815260200191505b50995050505050505050505060206040518083038186803b1580156105c057600080fd5b505afa1580156105d4573d6000803e3d6000fd5b505050506040513d60208110156105ea57600080fd5b50519695505050505050565b60008060006106048661077b565b91505060606106218283895103896108a89092919063ffffffff16565b9050600061062e82610963565b50905060005b8181101561076f57606061064e848363ffffffff610a1716565b9050606061065b82610b94565b90506000808a600281111561066c57fe5b14801561067d575061067d82610bfc565b156106925761068b82610c8b565b9050610723565b60018a60028111156106a057fe5b1480156106b157506106b182610ca3565b156106bf5761068b82610d76565b60028a60028111156106cd57fe5b1480156106de57506106de82610d8e565b156106f5576106ec82610dc5565b91506107239050565b6106fe82610e03565b1561071b5761071461070f83610e18565b610e5e565b9850610723565b505050610767565b6bffffffffffffffffffffffff19818116908c1614156107635761076061074984610e7a565b899067ffffffffffffffff1663ffffffff610e8516565b97505b5050505b600101610634565b50505050935093915050565b80516000908190600460606107988683600263ffffffff6108a816565b9050806000815181106107a757fe5b01602001516001600160f81b0319161580156107e25750806001815181106107cb57fe5b6020910101516001600160f81b031916600160f81b145b156107ee578160020191505b600061080b610806888580880363ffffffff6108a816565b610edf565b60ff16905080610819575060015b600061083461082f89868563ffffffff6108a816565b610f5b565b93820193905060005b8181101561089a57602485019460009061086490610806908c9089908b03602319016108a8565b60ff16905080610872575060015b600061088861082f8c898563ffffffff6108a816565b9190960101600401945060010161083d565b509550919350505050915091565b6060816108c4575060408051602081019091526000815261095c565b82820183811180156108d7575080855110155b61091e576040805162461bcd60e51b8152602060048201526013602482015272536c696365206f7574206f6620626f756e647360681b604482015290519081900360640190fd5b604051915082604083010160405282825283850182038460208701018481015b808210156109575781518383015260208201915061093e565b505050505b9392505050565b80516000908190818061098061080687838663ffffffff6108a816565b60ff1690508061098e575060015b60006109a461082f88858563ffffffff6108a816565b92820192905060005b81811015610a0a5783600801935060006109d7610806868789038c6108a89092919063ffffffff16565b60ff169050806109e5575060015b60006109fb61082f8b888563ffffffff6108a816565b919095010193506001016109ad565b5094509092505050915091565b8151606090600080610a3361080687838663ffffffff6108a816565b60ff16905080610a41575060015b6000610a5761082f88858563ffffffff6108a816565b9050858110156040518060400160405280600e81526020016d125b9d985b1a59081bdd5d1c1d5d60921b81525090610ad05760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561025557818101518382015260200161023d565b50918101918260005b82811015610b75578460080194506000610b0361080687888a038d6108a89092919063ffffffff16565b60ff16905080610b11575060015b6000610b2761082f8c898563ffffffff6108a816565b9682018701969050828a1415610b6857610b5984610b4b898263ffffffff610f9f16565b8d919063ffffffff6108a816565b98505050505050505050610b8e565b5085925050600101610ad9565b5060405180602001604052806000815250955050505050505b92915050565b805160609060086000610bb56108068684600719870163ffffffff6108a816565b60ff16905080610bc3575060015b6000610bd961082f87858563ffffffff6108a816565b928201929050610bf086848363ffffffff6108a816565b9450505050505b919050565b600081516017148015610c2e5750815160a960f81b908390600090610c1d57fe5b01602001516001600160f81b031916145b8015610c59575081600181518110610c4257fe5b6020910101516001600160f81b031916600560fa1b145b8015610b8e57508151608760f81b9083906016908110610c7557fe5b01602001516001600160f81b0319161492915050565b6000610b8e61070f836002601463ffffffff6108a816565b600081516019148015610cd557508151603b60f91b908390600090610cc457fe5b01602001516001600160f81b031916145b8015610d025750815160a960f81b9083906001908110610cf157fe5b01602001516001600160f81b031916145b8015610d2d575081600281518110610d1657fe5b6020910101516001600160f81b031916600560fa1b145b8015610d5a57508151601160fb1b9083906017908110610d4957fe5b01602001516001600160f81b031916145b8015610b8e57508151602b60fa1b9083906018908110610c7557fe5b6000610b8e61070f836003601463ffffffff6108a816565b600081516016148015610b8e575081600181518110610da957fe5b6020910101516001600160f81b031916600560fa1b1492915050565b60008082600081518110610dd557fe5b01602001516001600160f81b031916610dfa61070f856002601463ffffffff6108a816565b91509150915091565b8051600090603560f91b9083908390610c7557fe5b606080610e34600180855103856108a89092919063ffffffff16565b905061095c600182600081518110610e4857fe5b016020015183919060f81c63ffffffff6108a816565b6000815160001415610e7257506000610bf7565b506020015190565b6000610b8e82610fe1565b60008282018381101561095c576040805162461bcd60e51b815260206004820152601b60248201527f536166654d6174683a206164646974696f6e206f766572666c6f770000000000604482015290519081900360640190fd5b600081600081518110610eee57fe5b60209101015160f81c60ff1415610f0757506008610bf7565b81600081518110610f1457fe5b60209101015160f81c60fe1415610f2d57506004610bf7565b81600081518110610f3a57fe5b60209101015160f81c60fd1415610f5357506002610bf7565b506000919050565b600080805b8351811015610f98578060010184510360080260020a848281518110610f8257fe5b016020015160f81c029190910190600101610f60565b5092915050565b600061095c83836040518060400160405280601e81526020017f536166654d6174683a207375627472616374696f6e206f766572666c6f77000081525061100e565b60006060610fee83611068565b90506060610ffb8261107d565b905061100681610f5b565b949350505050565b600081848411156110605760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561025557818101518382015260200161023d565b505050900390565b6060610b8e826000600863ffffffff6108a816565b606080825167ffffffffffffffff8111801561109857600080fd5b506040519080825280601f01601f1916602001820160405280156110c3576020820181803683370190505b50905060005b8351811015610f98578381815181106110de57fe5b602001015160f81c60f81b8260018387510303815181106110fb57fe5b60200101906001600160f81b031916908160001a9053506001016110c956fea26469706673582212201591ece0da1738c9d66544653bb45f4250780f18c3895048a4d04e4894c071e164736f6c63430006060033",
    "linkReferences": {},
    "deployedLinkReferences": {}
}
