{
  "_format": "hh-sol-artifact-1",
  "contractName": "EIP2612PermitAndDeposit",
  "sourceName": "contracts/permit/EIP2612PermitAndDeposit.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract IPrizePool",
          "name": "_prizePool",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "delegate",
              "type": "address"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct Signature",
              "name": "signature",
              "type": "tuple"
            }
          ],
          "internalType": "struct DelegateSignature",
          "name": "_delegateSignature",
          "type": "tuple"
        }
      ],
      "name": "depositToAndDelegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IPrizePool",
          "name": "_prizePool",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_amount",
          "type": "uint256"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "deadline",
              "type": "uint256"
            },
            {
              "internalType": "uint8",
              "name": "v",
              "type": "uint8"
            },
            {
              "internalType": "bytes32",
              "name": "r",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "s",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Signature",
          "name": "_permitSignature",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "address",
              "name": "delegate",
              "type": "address"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "deadline",
                  "type": "uint256"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                }
              ],
              "internalType": "struct Signature",
              "name": "signature",
              "type": "tuple"
            }
          ],
          "internalType": "struct DelegateSignature",
          "name": "_delegateSignature",
          "type": "tuple"
        }
      ],
      "name": "permitAndDepositToAndDelegate",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610c29806100206000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c8063a81bc43b1461003b578063c00dbd5114610050575b600080fd5b61004e6100493660046109cd565b610063565b005b61004e61005e36600461097a565b61022a565b6000856001600160a01b031663c002c4d66040518163ffffffff1660e01b815260040160206040518083038186803b15801561009e57600080fd5b505afa1580156100b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d6919061093b565b90506000866001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561011357600080fd5b505afa158015610127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014b919061093b565b90506001600160a01b03811663d505accf333089883561017160408b0160208c01610b06565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1681526001600160a01b0396871660048201529590941660248601526044850192909252606484015260ff16608483015287013560a4820152606087013560c482015260e401600060405180830381600087803b1580156101fb57600080fd5b505af115801561020f573d6000803e3d6000fd5b5050505061022187838389898861032a565b50505050505050565b6000846001600160a01b031663c002c4d66040518163ffffffff1660e01b815260040160206040518083038186803b15801561026557600080fd5b505afa158015610279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029d919061093b565b90506000856001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b1580156102da57600080fd5b505afa1580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610312919061093b565b905061032286838388888861032a565b505050505050565b610337843385898661041b565b600061034b36839003830160208401610a5b565b90506001600160a01b03861663919974dc8461036a602086018661091e565b845160208601516040808801516060890151915160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b039687166004820152959094166024860152604485019290925260ff166064840152608483019190915260a482015260c401600060405180830381600087803b1580156103fa57600080fd5b505af115801561040e573d6000803e3d6000fd5b5050505050505050505050565b6104306001600160a01b0386168530866104c6565b6104446001600160a01b038616838561057d565b6040517fffaad6a50000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526024820185905283169063ffaad6a590604401600060405180830381600087803b1580156104a757600080fd5b505af11580156104bb573d6000803e3d6000fd5b505050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526105779085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610670565b50505050565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b1580156105e257600080fd5b505afa1580156105f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061a9190610aed565b6106249190610b70565b6040516001600160a01b0385166024820152604481018290529091506105779085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401610513565b60006106c5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661075f9092919063ffffffff16565b80519091501561075a57808060200190518101906106e39190610958565b61075a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b505050565b606061076e8484600085610778565b90505b9392505050565b6060824710156107f05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610751565b843b61083e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610751565b600080866001600160a01b0316858760405161085a9190610b21565b60006040518083038185875af1925050503d8060008114610897576040519150601f19603f3d011682016040523d82523d6000602084013e61089c565b606091505b50915091506108ac8282866108b7565b979650505050505050565b606083156108c6575081610771565b8251156108d65782518084602001fd5b8160405162461bcd60e51b81526004016107519190610b3d565b600060a0828403121561090257600080fd5b50919050565b803560ff8116811461091957600080fd5b919050565b60006020828403121561093057600080fd5b813561077181610bdb565b60006020828403121561094d57600080fd5b815161077181610bdb565b60006020828403121561096a57600080fd5b8151801515811461077157600080fd5b600080600080610100858703121561099157600080fd5b843561099c81610bdb565b93506020850135925060408501356109b381610bdb565b91506109c286606087016108f0565b905092959194509250565b60008060008060008587036101808112156109e757600080fd5b86356109f281610bdb565b9550602087013594506040870135610a0981610bdb565b935060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa082011215610a3b57600080fd5b50606086019150610a4f8760e088016108f0565b90509295509295909350565b600060808284031215610a6d57600080fd5b6040516080810181811067ffffffffffffffff82111715610ab7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282358152610aca60208401610908565b602082015260408301356040820152606083013560608201528091505092915050565b600060208284031215610aff57600080fd5b5051919050565b600060208284031215610b1857600080fd5b61077182610908565b60008251610b33818460208701610baf565b9190910192915050565b6020815260008251806020840152610b5c816040850160208701610baf565b601f01601f19169190910160400192915050565b60008219821115610baa577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60005b83811015610bca578181015183820152602001610bb2565b838111156105775750506000910152565b6001600160a01b0381168114610bf057600080fd5b5056fea26469706673582212202e9f1781762bcb2c0f686ec6ef01d262566a3db7a63bf86e452ab2ab88162e0164736f6c63430008060033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c8063a81bc43b1461003b578063c00dbd5114610050575b600080fd5b61004e6100493660046109cd565b610063565b005b61004e61005e36600461097a565b61022a565b6000856001600160a01b031663c002c4d66040518163ffffffff1660e01b815260040160206040518083038186803b15801561009e57600080fd5b505afa1580156100b2573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906100d6919061093b565b90506000866001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b15801561011357600080fd5b505afa158015610127573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061014b919061093b565b90506001600160a01b03811663d505accf333089883561017160408b0160208c01610b06565b604080517fffffffff0000000000000000000000000000000000000000000000000000000060e089901b1681526001600160a01b0396871660048201529590941660248601526044850192909252606484015260ff16608483015287013560a4820152606087013560c482015260e401600060405180830381600087803b1580156101fb57600080fd5b505af115801561020f573d6000803e3d6000fd5b5050505061022187838389898861032a565b50505050505050565b6000846001600160a01b031663c002c4d66040518163ffffffff1660e01b815260040160206040518083038186803b15801561026557600080fd5b505afa158015610279573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061029d919061093b565b90506000856001600160a01b03166321df0da76040518163ffffffff1660e01b815260040160206040518083038186803b1580156102da57600080fd5b505afa1580156102ee573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610312919061093b565b905061032286838388888861032a565b505050505050565b610337843385898661041b565b600061034b36839003830160208401610a5b565b90506001600160a01b03861663919974dc8461036a602086018661091e565b845160208601516040808801516060890151915160e088901b7fffffffff000000000000000000000000000000000000000000000000000000001681526001600160a01b039687166004820152959094166024860152604485019290925260ff166064840152608483019190915260a482015260c401600060405180830381600087803b1580156103fa57600080fd5b505af115801561040e573d6000803e3d6000fd5b5050505050505050505050565b6104306001600160a01b0386168530866104c6565b6104446001600160a01b038616838561057d565b6040517fffaad6a50000000000000000000000000000000000000000000000000000000081526001600160a01b0382811660048301526024820185905283169063ffaad6a590604401600060405180830381600087803b1580156104a757600080fd5b505af11580156104bb573d6000803e3d6000fd5b505050505050505050565b6040516001600160a01b03808516602483015283166044820152606481018290526105779085907f23b872dd00000000000000000000000000000000000000000000000000000000906084015b60408051601f198184030181529190526020810180517bffffffffffffffffffffffffffffffffffffffffffffffffffffffff167fffffffff0000000000000000000000000000000000000000000000000000000090931692909217909152610670565b50505050565b6040517fdd62ed3e0000000000000000000000000000000000000000000000000000000081523060048201526001600160a01b038381166024830152600091839186169063dd62ed3e9060440160206040518083038186803b1580156105e257600080fd5b505afa1580156105f6573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061061a9190610aed565b6106249190610b70565b6040516001600160a01b0385166024820152604481018290529091506105779085907f095ea7b30000000000000000000000000000000000000000000000000000000090606401610513565b60006106c5826040518060400160405280602081526020017f5361666545524332303a206c6f772d6c6576656c2063616c6c206661696c6564815250856001600160a01b031661075f9092919063ffffffff16565b80519091501561075a57808060200190518101906106e39190610958565b61075a5760405162461bcd60e51b815260206004820152602a60248201527f5361666545524332303a204552433230206f7065726174696f6e20646964206e60448201527f6f7420737563636565640000000000000000000000000000000000000000000060648201526084015b60405180910390fd5b505050565b606061076e8484600085610778565b90505b9392505050565b6060824710156107f05760405162461bcd60e51b815260206004820152602660248201527f416464726573733a20696e73756666696369656e742062616c616e636520666f60448201527f722063616c6c00000000000000000000000000000000000000000000000000006064820152608401610751565b843b61083e5760405162461bcd60e51b815260206004820152601d60248201527f416464726573733a2063616c6c20746f206e6f6e2d636f6e74726163740000006044820152606401610751565b600080866001600160a01b0316858760405161085a9190610b21565b60006040518083038185875af1925050503d8060008114610897576040519150601f19603f3d011682016040523d82523d6000602084013e61089c565b606091505b50915091506108ac8282866108b7565b979650505050505050565b606083156108c6575081610771565b8251156108d65782518084602001fd5b8160405162461bcd60e51b81526004016107519190610b3d565b600060a0828403121561090257600080fd5b50919050565b803560ff8116811461091957600080fd5b919050565b60006020828403121561093057600080fd5b813561077181610bdb565b60006020828403121561094d57600080fd5b815161077181610bdb565b60006020828403121561096a57600080fd5b8151801515811461077157600080fd5b600080600080610100858703121561099157600080fd5b843561099c81610bdb565b93506020850135925060408501356109b381610bdb565b91506109c286606087016108f0565b905092959194509250565b60008060008060008587036101808112156109e757600080fd5b86356109f281610bdb565b9550602087013594506040870135610a0981610bdb565b935060807fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffa082011215610a3b57600080fd5b50606086019150610a4f8760e088016108f0565b90509295509295909350565b600060808284031215610a6d57600080fd5b6040516080810181811067ffffffffffffffff82111715610ab7577f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b60405282358152610aca60208401610908565b602082015260408301356040820152606083013560608201528091505092915050565b600060208284031215610aff57600080fd5b5051919050565b600060208284031215610b1857600080fd5b61077182610908565b60008251610b33818460208701610baf565b9190910192915050565b6020815260008251806020840152610b5c816040850160208701610baf565b601f01601f19169190910160400192915050565b60008219821115610baa577f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b500190565b60005b83811015610bca578181015183820152602001610bb2565b838111156105775750506000910152565b6001600160a01b0381168114610bf057600080fd5b5056fea26469706673582212202e9f1781762bcb2c0f686ec6ef01d262566a3db7a63bf86e452ab2ab88162e0164736f6c63430008060033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
