{"bytecode":"608060405234801562000010575f80fd5b50604051620012d0380380620012d0833981016040819052620000339162000125565b33806200005957604051631e4fbdf760e01b81525f600482015260240160405180910390fd5b6200006481620000ba565b50600180546001600160a01b039485166001600160a01b0319909116179055600480549190931668010000000000000000026001600160e01b03199091166001600160401b039092169190911717905562000179565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b80516001600160a01b038116811462000120575f80fd5b919050565b5f805f6060848603121562000138575f80fd5b620001438462000109565b60208501519093506001600160401b038116811462000160575f80fd5b9150620001706040850162000109565b90509250925092565b61114980620001875f395ff3fe608060405234801561000f575f80fd5b50600436106100e5575f3560e01c806387e02d9911610088578063aecb7ba111610063578063aecb7ba1146101e9578063e5db1e78146101fc578063f160d3691461020f578063f2fde38b14610222575f80fd5b806387e02d991461019b5780638da5cb5b146101ae578063a001ecdd146101be575f80fd5b806346904840116100c357806346904840146101415780635491247f1461015b5780636ee45bc214610170578063715018a614610193575f80fd5b8063238ac933146100e957806328f833b7146101195780632df485fe1461012e575b5f80fd5b6002546100fc906001600160a01b031681565b6040516001600160a01b0390911681526020015b60405180910390f35b610121610235565b6040516101109190610c43565b6001546100fc906001600160a01b031681565b6004546100fc90600160401b90046001600160a01b031681565b61016e610169366004610d26565b6102c1565b005b61018361017e366004610dac565b61059b565b6040519015158152602001610110565b61016e6105f5565b61016e6101a9366004610df4565b610608565b5f546001600160a01b03166100fc565b6004546101d1906001600160401b031681565b6040516001600160401b039091168152602001610110565b61016e6101f7366004610e3e565b6106fe565b61016e61020a366004610e57565b610729565b61016e61021d366004610e98565b61087a565b61016e610230366004610e98565b610918565b6003805461024290610eb1565b80601f016020809104026020016040519081016040528092919081815260200182805461026e90610eb1565b80156102b95780601f10610290576101008083540402835291602001916102b9565b820191905f5260205f20905b81548152906001019060200180831161029c57829003601f168201915b505050505081565b5f85856040516020016102eb92919091825260e01b6001600160e01b031916602082015260240190565b60408051601f1981840301815291815281516020928301205f818152600690935291205490915060ff161561035e5760405162461bcd60e51b81526020600482015260146024820152734f7264657220616c72656164792065786973747360601b60448201526064015b60405180910390fd5b5f818152600660209081526040808320805460ff19166001179055516103ce9189918991899189910193845260e09290921b6001600160e01b031916602084015260601b6bffffffffffffffffffffffff1916602483015260c01b6001600160c01b031916603882015260400190565b6040516020818303038152906040528051906020012090505f61041d827f19457468657265756d205369676e6564204d6573736167653a0a3332000000005f908152601c91909152603c902090565b90505f61042a8286610955565b6001600160a01b0381165f9081526005602052604081208054929350909161045190610eb1565b9050116104985760405162461bcd60e51b815260206004820152601560248201527414da59db995c881b9bdd08185d5d1a1bdc9a5e9959605a1b6044820152606401610355565b6001546001600160a01b03165f806104af8961097d565b600480546040516340c10f1960e01b8152600160401b9091046001600160a01b03908116928201929092526001600160401b03841660248201529294509092508416906340c10f19906044015f604051808303815f87803b158015610512575f80fd5b505af1158015610524573d5f803e3d5ffd5b50506040516340c10f1960e01b81526001600160a01b038d811660048301526001600160401b0385166024830152861692506340c10f1991506044015f604051808303815f87803b158015610577575f80fd5b505af1158015610589573d5f803e3d5ffd5b50505050505050505050505050505050565b5f8083836040516020016105c692919091825260e01b6001600160e01b031916602082015260240190565b60408051808303601f1901815291815281516020928301205f908152600690925290205460ff16949350505050565b6105fd6109b8565b6106065f6109e4565b565b6106106109b8565b6001600160a01b0382165f908152600560205260409020805461063290610eb1565b1590506106775760405162461bcd60e51b815260206004820152601360248201527214da59db995c88185b1c9958591e481d5cd959606a1b6044820152606401610355565b600280546001600160a01b0319166001600160a01b038416179055600361069e8282610f35565b506001600160a01b0382165f9081526005602052604090206106c08282610f35565b507f166ad23df36aef44cd021ce7c7c573672c1a65b1a76768648b9a68e546d8266282826040516106f2929190610ff4565b60405180910390a15050565b6107066109b8565b6004805467ffffffffffffffff19166001600160401b0392909216919091179055565b5f806107348361097d565b600154600480546040516323b872dd60e01b81523392810192909252600160401b90046001600160a01b0390811660248301526001600160401b0385166044830152939550919350919091169081906323b872dd906064016020604051808303815f875af11580156107a8573d5f803e3d5ffd5b505050506040513d601f19601f820116820180604052508101906107cc919061101f565b5060405163079cc67960e41b81523360048201526001600160401b03831660248201526001600160a01b038216906379cc6790906044015f604051808303815f87803b15801561081a575f80fd5b505af115801561082c573d5f803e3d5ffd5b50505050336001600160a01b03167f067a4007ee9d9a9d3a4dd449cd103250958b8239602628b660c3ae5f59d5763b868460405161086b92919061103e565b60405180910390a25050505050565b600454600160401b90046001600160a01b031633146108e75760405162461bcd60e51b8152602060048201526024808201527f4d7573742063616c6c656420627920707265762066656520726563656970746960448201526332b73a1760e11b6064820152608401610355565b600480546001600160a01b03909216600160401b0268010000000000000000600160e01b0319909216919091179055565b6109206109b8565b6001600160a01b03811661094957604051631e4fbdf760e01b81525f6004820152602401610355565b610952816109e4565b50565b5f805f806109638686610a33565b9250925092506109738282610a7c565b5090949350505050565b6004545f9081906103e89061099b906001600160401b03168561107c565b6109a591906110a7565b91506109b182846110d8565b9050915091565b5f546001600160a01b031633146106065760405163118cdaa760e01b8152336004820152602401610355565b5f80546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b5f805f8351604103610a6a576020840151604085015160608601515f1a610a5c88828585610b38565b955095509550505050610a75565b505081515f91506002905b9250925092565b5f826003811115610a8f57610a8f6110ff565b03610a98575050565b6001826003811115610aac57610aac6110ff565b03610aca5760405163f645eedf60e01b815260040160405180910390fd5b6002826003811115610ade57610ade6110ff565b03610aff5760405163fce698f760e01b815260048101829052602401610355565b6003826003811115610b1357610b136110ff565b03610b34576040516335e2f38360e21b815260048101829052602401610355565b5050565b5f80807f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a0841115610b7157505f91506003905082610bf6565b604080515f808252602082018084528a905260ff891692820192909252606081018790526080810186905260019060a0016020604051602081039080840390855afa158015610bc2573d5f803e3d5ffd5b5050604051601f1901519150506001600160a01b038116610bed57505f925060019150829050610bf6565b92505f91508190505b9450945094915050565b5f81518084525f5b81811015610c2457602081850181015186830182015201610c08565b505f602082860101526020601f19601f83011685010191505092915050565b602081525f610c556020830184610c00565b9392505050565b803563ffffffff81168114610c6f575f80fd5b919050565b80356001600160a01b0381168114610c6f575f80fd5b80356001600160401b0381168114610c6f575f80fd5b634e487b7160e01b5f52604160045260245ffd5b5f6001600160401b0380841115610ccd57610ccd610ca0565b604051601f8501601f19908116603f01168101908282118183101715610cf557610cf5610ca0565b81604052809350858152868686011115610d0d575f80fd5b858560208301375f602087830101525050509392505050565b5f805f805f60a08688031215610d3a575f80fd5b85359450610d4a60208701610c5c565b9350610d5860408701610c74565b9250610d6660608701610c8a565b915060808601356001600160401b03811115610d80575f80fd5b8601601f81018813610d90575f80fd5b610d9f88823560208401610cb4565b9150509295509295909350565b5f8060408385031215610dbd575f80fd5b82359150610dcd60208401610c5c565b90509250929050565b5f82601f830112610de5575f80fd5b610c5583833560208501610cb4565b5f8060408385031215610e05575f80fd5b610e0e83610c74565b915060208301356001600160401b03811115610e28575f80fd5b610e3485828601610dd6565b9150509250929050565b5f60208284031215610e4e575f80fd5b610c5582610c8a565b5f8060408385031215610e68575f80fd5b82356001600160401b03811115610e7d575f80fd5b610e8985828601610dd6565b925050610dcd60208401610c8a565b5f60208284031215610ea8575f80fd5b610c5582610c74565b600181811c90821680610ec557607f821691505b602082108103610ee357634e487b7160e01b5f52602260045260245ffd5b50919050565b601f821115610f3057805f5260205f20601f840160051c81016020851015610f0e5750805b601f840160051c820191505b81811015610f2d575f8155600101610f1a565b50505b505050565b81516001600160401b03811115610f4e57610f4e610ca0565b610f6281610f5c8454610eb1565b84610ee9565b602080601f831160018114610f95575f8415610f7e5750858301515b5f19600386901b1c1916600185901b178555610fec565b5f85815260208120601f198616915b82811015610fc357888601518255948401946001909101908401610fa4565b5085821015610fe057878501515f19600388901b60f8161c191681555b505060018460011b0185555b505050505050565b6001600160a01b03831681526040602082018190525f9061101790830184610c00565b949350505050565b5f6020828403121561102f575f80fd5b81518015158114610c55575f80fd5b604081525f6110506040830185610c00565b90506001600160401b03831660208301529392505050565b634e487b7160e01b5f52601160045260245ffd5b6001600160401b0381811683821602808216919082811461109f5761109f611068565b505092915050565b5f6001600160401b03808416806110cc57634e487b7160e01b5f52601260045260245ffd5b92169190910492915050565b6001600160401b038281168282160390808211156110f8576110f8611068565b5092915050565b634e487b7160e01b5f52602160045260245ffdfea26469706673582212209a0de1f37efc07d715d6ad8f3a22f56ef4da80a1107d0aa7408f03c0f03445e964736f6c63430008180033","abi":"[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_vBTCAddress\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"_feePercentage\",\"type\":\"uint64\"},{\"internalType\":\"address\",\"name\":\"_feeRecipient\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"inputs\":[],\"name\":\"ECDSAInvalidSignature\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"length\",\"type\":\"uint256\"}],\"name\":\"ECDSAInvalidSignatureLength\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"s\",\"type\":\"bytes32\"}],\"name\":\"ECDSAInvalidSignatureS\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"OwnableInvalidOwner\",\"type\":\"error\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"}],\"name\":\"OwnableUnauthorizedAccount\",\"type\":\"error\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"signer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"receipt\",\"type\":\"string\"}],\"name\":\"PhatContractUpdate\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"user\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"string\",\"name\":\"receipt\",\"type\":\"string\"},{\"indexed\":false,\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"Withdraw\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txid\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"vout\",\"type\":\"uint32\"},{\"internalType\":\"address\",\"name\":\"receipt\",\"type\":\"address\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"},{\"internalType\":\"bytes\",\"name\":\"sig\",\"type\":\"bytes\"}],\"name\":\"deposit\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"depositAddress\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feePercentage\",\"outputs\":[{\"internalType\":\"uint64\",\"name\":\"\",\"type\":\"uint64\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"feeRecipient\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"txid\",\"type\":\"bytes32\"},{\"internalType\":\"uint32\",\"name\":\"vout\",\"type\":\"uint32\"}],\"name\":\"isOrderUsed\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"signer\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint64\",\"name\":\"_feePercentage\",\"type\":\"uint64\"}],\"name\":\"updateFeePercentage\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_feeRecipient\",\"type\":\"address\"}],\"name\":\"updateFeeRecipient\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newSigner\",\"type\":\"address\"},{\"internalType\":\"string\",\"name\":\"newReceipt\",\"type\":\"string\"}],\"name\":\"upgradeSignerAndDepositAddress\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"vBTC\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"receipt\",\"type\":\"string\"},{\"internalType\":\"uint64\",\"name\":\"amount\",\"type\":\"uint64\"}],\"name\":\"withdraw\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}]"}