package consts

// contracts: https://github.com/ChainSafe/sygma-solidity/tree/v2.1.3
// compiler: 0.8.11, optimization-runs: 200
const GenericHandlerABI = `[{"inputs":[{"internalType":"address","name":"bridgeAddress","type":"address"}],"stateMutability":"nonpayable","type":"constructor"},{"inputs":[],"name":"_bridgeAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_contractAddressToDepositFunctionDepositerOffset","outputs":[{"internalType":"uint256","name":"","type":"uint256"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_contractAddressToDepositFunctionSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_contractAddressToExecuteFunctionSignature","outputs":[{"internalType":"bytes4","name":"","type":"bytes4"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_contractAddressToResourceID","outputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"address","name":"","type":"address"}],"name":"_contractWhitelist","outputs":[{"internalType":"bool","name":"","type":"bool"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"","type":"bytes32"}],"name":"_resourceIDToContractAddress","outputs":[{"internalType":"address","name":"","type":"address"}],"stateMutability":"view","type":"function"},{"inputs":[{"internalType":"bytes32","name":"resourceID","type":"bytes32"},{"internalType":"address","name":"contractAddress","type":"address"},{"internalType":"bytes4","name":"depositFunctionSig","type":"bytes4"},{"internalType":"uint256","name":"depositFunctionDepositerOffset","type":"uint256"},{"internalType":"bytes4","name":"executeFunctionSig","type":"bytes4"}],"name":"setResource","outputs":[],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"resourceID","type":"bytes32"},{"internalType":"address","name":"depositer","type":"address"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"deposit","outputs":[{"internalType":"bytes","name":"","type":"bytes"}],"stateMutability":"nonpayable","type":"function"},{"inputs":[{"internalType":"bytes32","name":"resourceID","type":"bytes32"},{"internalType":"bytes","name":"data","type":"bytes"}],"name":"executeProposal","outputs":[],"stateMutability":"nonpayable","type":"function"}]`
const GenericHandlerBin = "0x60a060405234801561001057600080fd5b50604051610b2f380380610b2f83398101604081905261002f91610040565b6001600160a01b0316608052610070565b60006020828403121561005257600080fd5b81516001600160a01b038116811461006957600080fd5b9392505050565b608051610a9e6100916000396000818160a801526106f90152610a9e6000f3fe608060405234801561001057600080fd5b506004361061009e5760003560e01c8063c54c2a1111610066578063c54c2a11146101a4578063cb624463146101cd578063de319d99146101f0578063e248cff214610205578063ec97d3b41461021857600080fd5b8063318c136e146100a35780637f79bea8146100e7578063a5c3a9851461011a578063aa50800b14610156578063b07e54bb14610184575b600080fd5b6100ca7f000000000000000000000000000000000000000000000000000000000000000081565b6040516001600160a01b0390911681526020015b60405180910390f35b61010a6100f5366004610784565b60056020526000908152604090205460ff1681565b60405190151581526020016100de565b61013d610128366004610784565b60046020526000908152604090205460e01b81565b6040516001600160e01b031990911681526020016100de565b610176610164366004610784565b60036020526000908152604090205481565b6040519081526020016100de565b6101976101923660046107ef565b610238565b6040516100de9190610879565b6100ca6101b23660046108ac565b6000602081905290815260409020546001600160a01b031681565b61013d6101db366004610784565b60026020526000908152604090205460e01b81565b6102036101fe3660046108dd565b610491565b005b610203610213366004610934565b610524565b610176610226366004610784565b60016020526000908152604090205481565b60606102426106ee565b60006060610252848601866108ac565b9150846020856102628583610980565b9261026f939291906109a6565b8080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201829052508b815260208181526040808320546001600160a01b0316808452600390925290912054949550939250508115905061033b57828101602001516001600160a01b038916606082901c146103395760405162461bcd60e51b815260206004820152601f60248201527f696e636f7272656374206465706f736974657220696e2074686520646174610060448201526064015b60405180910390fd5b505b6001600160a01b03821660009081526005602052604090205460ff166103735760405162461bcd60e51b8152600401610330906109d0565b6001600160a01b03821660009081526002602052604090205460e01b6001600160e01b031981161561048357600081856040516020016103b4929190610a1b565b6040516020818303038152906040529050600080856001600160a01b0316836040516103e09190610a4c565b6000604051808303816000865af19150503d806000811461041d576040519150601f19603f3d011682016040523d82523d6000602084013e610422565b606091505b5091509150816104745760405162461bcd60e51b815260206004820152601e60248201527f63616c6c20746f20636f6e747261637441646472657373206661696c656400006044820152606401610330565b97506104899650505050505050565b50505050505b949350505050565b6104996106ee565b60008581526020818152604080832080546001600160a01b0319166001600160a01b0398909816978817905595825260018082528683209790975560028152858220805463ffffffff1990811660e097881c1790915560038252868320949094556004815285822080549094169290941c91909117909155600590915220805460ff19169091179055565b61052c6106ee565b6000606061053c838501856108ac565b91508360208461054c8583610980565b92610559939291906109a6565b8080601f016020809104026020016040519081016040528093929190818152602001838380828437600092018290525089815260208181526040808320546001600160a01b03168084526005909252909120549495509360ff1692506105d49150505760405162461bcd60e51b8152600401610330906109d0565b6001600160a01b03811660009081526004602052604090205460e01b6001600160e01b03198116156106e55760008184604051602001610615929190610a1b565b60405160208183030381529060405290506000836001600160a01b0316826040516106409190610a4c565b6000604051808303816000865af19150503d806000811461067d576040519150601f19603f3d011682016040523d82523d6000602084013e610682565b606091505b50509050806106e25760405162461bcd60e51b815260206004820152602660248201527f64656c656761746563616c6c20746f20636f6e7472616374416464726573732060448201526519985a5b195960d21b6064820152608401610330565b50505b50505050505050565b336001600160a01b037f000000000000000000000000000000000000000000000000000000000000000016146107665760405162461bcd60e51b815260206004820152601e60248201527f73656e646572206d7573742062652062726964676520636f6e747261637400006044820152606401610330565b565b80356001600160a01b038116811461077f57600080fd5b919050565b60006020828403121561079657600080fd5b61079f82610768565b9392505050565b60008083601f8401126107b857600080fd5b50813567ffffffffffffffff8111156107d057600080fd5b6020830191508360208285010111156107e857600080fd5b9250929050565b6000806000806060858703121561080557600080fd5b8435935061081560208601610768565b9250604085013567ffffffffffffffff81111561083157600080fd5b61083d878288016107a6565b95989497509550505050565b60005b8381101561086457818101518382015260200161084c565b83811115610873576000848401525b50505050565b6020815260008251806020840152610898816040850160208701610849565b601f01601f19169190910160400192915050565b6000602082840312156108be57600080fd5b5035919050565b80356001600160e01b03198116811461077f57600080fd5b600080600080600060a086880312156108f557600080fd5b8535945061090560208701610768565b9350610913604087016108c5565b925060608601359150610928608087016108c5565b90509295509295909350565b60008060006040848603121561094957600080fd5b83359250602084013567ffffffffffffffff81111561096757600080fd5b610973868287016107a6565b9497909650939450505050565b600082198211156109a157634e487b7160e01b600052601160045260246000fd5b500190565b600080858511156109b657600080fd5b838611156109c357600080fd5b5050820193919092039150565b6020808252602b908201527f70726f766964656420636f6e747261637441646472657373206973206e6f742060408201526a1dda1a5d195b1a5cdd195960aa1b606082015260800190565b6001600160e01b0319831681528151600090610a3e816004850160208701610849565b919091016004019392505050565b60008251610a5e818460208701610849565b919091019291505056fea264697066735822122078d36f51e5655a69bda54d2a97fd24742b73405439abe498501186c59305a9e564736f6c634300080b0033"
