{
  "contractName": "GSNRecipientSignature",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "trustedSigner",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "oldRelayHub",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newRelayHub",
          "type": "address"
        }
      ],
      "name": "RelayHubChanged",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "relay",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "bytes",
          "name": "encodedFunction",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "transactionFee",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "gasPrice",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "gasLimit",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "nonce",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "approvalData",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "acceptRelayedCall",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getHubAddr",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "context",
          "type": "bytes"
        },
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        },
        {
          "internalType": "uint256",
          "name": "actualCharge",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "preRetVal",
          "type": "bytes32"
        }
      ],
      "name": "postRelayedCall",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "context",
          "type": "bytes"
        }
      ],
      "name": "preRelayedCall",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "relayHubVersion",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405273d216153c06e857cd7f72665e0af1d7d82172f4946000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055503480156200006557600080fd5b506040516200136a3803806200136a83398181016040528101906200008b91906200015d565b600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff161415620000fe576040517f08c379a0000000000000000000000000000000000000000000000000000000008152600401620000f590620001f1565b60405180910390fd5b80600160006101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055505062000272565b600081519050620001578162000258565b92915050565b6000602082840312156200017057600080fd5b6000620001808482850162000146565b91505092915050565b60006200019860398362000213565b91507f47534e526563697069656e745369676e61747572653a2074727573746564207360008301527f69676e657220697320746865207a65726f2061646472657373000000000000006020830152604082019050919050565b600060208201905081810360008301526200020c8162000189565b9050919050565b600082825260208201905092915050565b6000620002318262000238565b9050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b620002638162000224565b81146200026f57600080fd5b50565b6110e880620002826000396000f3fe608060405234801561001057600080fd5b50600436106100575760003560e01c806374e861d61461005c57806380274db71461007a57806383947ea0146100aa578063ad61ccd5146100db578063e06e0e22146100f9575b600080fd5b610064610115565b6040516100719190610c8f565b60405180910390f35b610094600480360381019061008f91906107f8565b61013e565b6040516100a19190610caa565b60405180910390f35b6100c460048036038101906100bf9190610702565b6101c5565b6040516100d2929190610dcc565b60405180910390f35b6100e36102e2565b6040516100f09190610d0a565b60405180910390f35b610113600480360381019061010e9190610839565b61031f565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610148610115565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ac90610dac565b60405180910390fd5b6101be826103a6565b9050919050565b6000606060008b8b8b8b8b8b8b6101da610115565b306040516020016101f399989796959493929190610bca565b6040516020818303038152906040529050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661025f8661025184805190602001206103ad565b6103dd90919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff16141561028d57610283610457565b92509250506102d4565b6102ce6000808111156102c9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b61047b565b92509250505b995099975050505050505050565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b610327610115565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038b90610dac565b60405180910390fd5b6103a0848484846104a5565b50505050565b6000919050565b6000816040516020016103c09190610c69565b604051602081830303815290604052805190602001209050919050565b60006041825114610423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041a90610d4c565b60405180910390fd5b60008060006020850151925060408501519150606085015160001a905061044c868285856104ab565b935050505092915050565b6000606061047360405180602001604052806000815250610636565b915091509091565b6000606082600b61048c9190610eab565b6040518060200160405280600081525091509150915091565b50505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115610513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90610d6c565b60405180910390fd5b601b8460ff1614806105285750601c8460ff16145b610567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055e90610d8c565b60405180910390fd5b60006001868686866040516000815260200160405260405161058c9493929190610cc5565b6020604051602081039080840390855afa1580156105ae573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610d2c565b60405180910390fd5b80915050949350505050565b6000606060008391509150915091565b600061065961065484610e2d565b610dfc565b90508281526020810184848401111561067157600080fd5b61067c848285610f60565b509392505050565b60008135905061069381611056565b92915050565b6000813590506106a88161106d565b92915050565b6000813590506106bd81611084565b92915050565b600082601f8301126106d457600080fd5b81356106e4848260208601610646565b91505092915050565b6000813590506106fc8161109b565b92915050565b60008060008060008060008060006101208a8c03121561072157600080fd5b600061072f8c828d01610684565b99505060206107408c828d01610684565b98505060408a013567ffffffffffffffff81111561075d57600080fd5b6107698c828d016106c3565b975050606061077a8c828d016106ed565b965050608061078b8c828d016106ed565b95505060a061079c8c828d016106ed565b94505060c06107ad8c828d016106ed565b93505060e08a013567ffffffffffffffff8111156107ca57600080fd5b6107d68c828d016106c3565b9250506101006107e88c828d016106ed565b9150509295985092959850929598565b60006020828403121561080a57600080fd5b600082013567ffffffffffffffff81111561082457600080fd5b610830848285016106c3565b91505092915050565b6000806000806080858703121561084f57600080fd5b600085013567ffffffffffffffff81111561086957600080fd5b610875878288016106c3565b945050602061088687828801610699565b9350506040610897878288016106ed565b92505060606108a8878288016106ae565b91505092959194509250565b6108bd81610f01565b82525050565b6108d46108cf82610f01565b610fa2565b82525050565b6108e381610f1f565b82525050565b6108fa6108f582610f1f565b610fb4565b82525050565b600061090b82610e5d565b6109158185610e73565b9350610925818560208601610f6f565b61092e81611038565b840191505092915050565b600061094482610e5d565b61094e8185610e84565b935061095e818560208601610f6f565b80840191505092915050565b600061097582610e68565b61097f8185610e8f565b935061098f818560208601610f6f565b61099881611038565b840191505092915050565b60006109b0601883610e8f565b91507f45434453413a20696e76616c6964207369676e617475726500000000000000006000830152602082019050919050565b60006109f0601f83610e8f565b91507f45434453413a20696e76616c6964207369676e6174757265206c656e677468006000830152602082019050919050565b6000610a30601c83610ea0565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000610a70602283610e8f565b91507f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008301527f75650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610ad6602283610e8f565b91507f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008301527f75650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610b3c602483610e8f565b91507f47534e526563697069656e743a2063616c6c6572206973206e6f742052656c6160008301527f79487562000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610b9e81610f49565b82525050565b610bb5610bb082610f49565b610fd0565b82525050565b610bc481610f53565b82525050565b6000610bd6828c6108c3565b601482019150610be6828b6108c3565b601482019150610bf6828a610939565b9150610c028289610ba4565b602082019150610c128288610ba4565b602082019150610c228287610ba4565b602082019150610c328286610ba4565b602082019150610c4282856108c3565b601482019150610c5282846108c3565b6014820191508190509a9950505050505050505050565b6000610c7482610a23565b9150610c8082846108e9565b60208201915081905092915050565b6000602082019050610ca460008301846108b4565b92915050565b6000602082019050610cbf60008301846108da565b92915050565b6000608082019050610cda60008301876108da565b610ce76020830186610bbb565b610cf460408301856108da565b610d0160608301846108da565b95945050505050565b60006020820190508181036000830152610d24818461096a565b905092915050565b60006020820190508181036000830152610d45816109a3565b9050919050565b60006020820190508181036000830152610d65816109e3565b9050919050565b60006020820190508181036000830152610d8581610a63565b9050919050565b60006020820190508181036000830152610da581610ac9565b9050919050565b60006020820190508181036000830152610dc581610b2f565b9050919050565b6000604082019050610de16000830185610b95565b8181036020830152610df38184610900565b90509392505050565b6000604051905081810181811067ffffffffffffffff82111715610e2357610e22611009565b5b8060405250919050565b600067ffffffffffffffff821115610e4857610e47611009565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000610eb682610f49565b9150610ec183610f49565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ef657610ef5610fda565b5b828201905092915050565b6000610f0c82610f29565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015610f8d578082015181840152602081019050610f72565b83811115610f9c576000848401525b50505050565b6000610fad82610fbe565b9050919050565b6000819050919050565b6000610fc982611049565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b61105f81610f01565b811461106a57600080fd5b50565b61107681610f13565b811461108157600080fd5b50565b61108d81610f1f565b811461109857600080fd5b50565b6110a481610f49565b81146110af57600080fd5b5056fea264697066735822122012fabda6404e1d30f2401413dd4a5abe67f2f0265fcb0b002bc553e0663dd25464736f6c63430008000033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100575760003560e01c806374e861d61461005c57806380274db71461007a57806383947ea0146100aa578063ad61ccd5146100db578063e06e0e22146100f9575b600080fd5b610064610115565b6040516100719190610c8f565b60405180910390f35b610094600480360381019061008f91906107f8565b61013e565b6040516100a19190610caa565b60405180910390f35b6100c460048036038101906100bf9190610702565b6101c5565b6040516100d2929190610dcc565b60405180910390f35b6100e36102e2565b6040516100f09190610d0a565b60405180910390f35b610113600480360381019061010e9190610839565b61031f565b005b60008060009054906101000a900473ffffffffffffffffffffffffffffffffffffffff16905090565b6000610148610115565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff16146101b5576040517f08c379a00000000000000000000000000000000000000000000000000000000081526004016101ac90610dac565b60405180910390fd5b6101be826103a6565b9050919050565b6000606060008b8b8b8b8b8b8b6101da610115565b306040516020016101f399989796959493929190610bca565b6040516020818303038152906040529050600160009054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1661025f8661025184805190602001206103ad565b6103dd90919063ffffffff16565b73ffffffffffffffffffffffffffffffffffffffff16141561028d57610283610457565b92509250506102d4565b6102ce6000808111156102c9577f4e487b7100000000000000000000000000000000000000000000000000000000600052602160045260246000fd5b61047b565b92509250505b995099975050505050505050565b60606040518060400160405280600581526020017f312e302e30000000000000000000000000000000000000000000000000000000815250905090565b610327610115565b73ffffffffffffffffffffffffffffffffffffffff163373ffffffffffffffffffffffffffffffffffffffff1614610394576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161038b90610dac565b60405180910390fd5b6103a0848484846104a5565b50505050565b6000919050565b6000816040516020016103c09190610c69565b604051602081830303815290604052805190602001209050919050565b60006041825114610423576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161041a90610d4c565b60405180910390fd5b60008060006020850151925060408501519150606085015160001a905061044c868285856104ab565b935050505092915050565b6000606061047360405180602001604052806000815250610636565b915091509091565b6000606082600b61048c9190610eab565b6040518060200160405280600081525091509150915091565b50505050565b60007f7fffffffffffffffffffffffffffffff5d576e7357a4501ddfe92f46681b20a08260001c1115610513576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161050a90610d6c565b60405180910390fd5b601b8460ff1614806105285750601c8460ff16145b610567576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161055e90610d8c565b60405180910390fd5b60006001868686866040516000815260200160405260405161058c9493929190610cc5565b6020604051602081039080840390855afa1580156105ae573d6000803e3d6000fd5b505050602060405103519050600073ffffffffffffffffffffffffffffffffffffffff168173ffffffffffffffffffffffffffffffffffffffff16141561062a576040517f08c379a000000000000000000000000000000000000000000000000000000000815260040161062190610d2c565b60405180910390fd5b80915050949350505050565b6000606060008391509150915091565b600061065961065484610e2d565b610dfc565b90508281526020810184848401111561067157600080fd5b61067c848285610f60565b509392505050565b60008135905061069381611056565b92915050565b6000813590506106a88161106d565b92915050565b6000813590506106bd81611084565b92915050565b600082601f8301126106d457600080fd5b81356106e4848260208601610646565b91505092915050565b6000813590506106fc8161109b565b92915050565b60008060008060008060008060006101208a8c03121561072157600080fd5b600061072f8c828d01610684565b99505060206107408c828d01610684565b98505060408a013567ffffffffffffffff81111561075d57600080fd5b6107698c828d016106c3565b975050606061077a8c828d016106ed565b965050608061078b8c828d016106ed565b95505060a061079c8c828d016106ed565b94505060c06107ad8c828d016106ed565b93505060e08a013567ffffffffffffffff8111156107ca57600080fd5b6107d68c828d016106c3565b9250506101006107e88c828d016106ed565b9150509295985092959850929598565b60006020828403121561080a57600080fd5b600082013567ffffffffffffffff81111561082457600080fd5b610830848285016106c3565b91505092915050565b6000806000806080858703121561084f57600080fd5b600085013567ffffffffffffffff81111561086957600080fd5b610875878288016106c3565b945050602061088687828801610699565b9350506040610897878288016106ed565b92505060606108a8878288016106ae565b91505092959194509250565b6108bd81610f01565b82525050565b6108d46108cf82610f01565b610fa2565b82525050565b6108e381610f1f565b82525050565b6108fa6108f582610f1f565b610fb4565b82525050565b600061090b82610e5d565b6109158185610e73565b9350610925818560208601610f6f565b61092e81611038565b840191505092915050565b600061094482610e5d565b61094e8185610e84565b935061095e818560208601610f6f565b80840191505092915050565b600061097582610e68565b61097f8185610e8f565b935061098f818560208601610f6f565b61099881611038565b840191505092915050565b60006109b0601883610e8f565b91507f45434453413a20696e76616c6964207369676e617475726500000000000000006000830152602082019050919050565b60006109f0601f83610e8f565b91507f45434453413a20696e76616c6964207369676e6174757265206c656e677468006000830152602082019050919050565b6000610a30601c83610ea0565b91507f19457468657265756d205369676e6564204d6573736167653a0a3332000000006000830152601c82019050919050565b6000610a70602283610e8f565b91507f45434453413a20696e76616c6964207369676e6174757265202773272076616c60008301527f75650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610ad6602283610e8f565b91507f45434453413a20696e76616c6964207369676e6174757265202776272076616c60008301527f75650000000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b6000610b3c602483610e8f565b91507f47534e526563697069656e743a2063616c6c6572206973206e6f742052656c6160008301527f79487562000000000000000000000000000000000000000000000000000000006020830152604082019050919050565b610b9e81610f49565b82525050565b610bb5610bb082610f49565b610fd0565b82525050565b610bc481610f53565b82525050565b6000610bd6828c6108c3565b601482019150610be6828b6108c3565b601482019150610bf6828a610939565b9150610c028289610ba4565b602082019150610c128288610ba4565b602082019150610c228287610ba4565b602082019150610c328286610ba4565b602082019150610c4282856108c3565b601482019150610c5282846108c3565b6014820191508190509a9950505050505050505050565b6000610c7482610a23565b9150610c8082846108e9565b60208201915081905092915050565b6000602082019050610ca460008301846108b4565b92915050565b6000602082019050610cbf60008301846108da565b92915050565b6000608082019050610cda60008301876108da565b610ce76020830186610bbb565b610cf460408301856108da565b610d0160608301846108da565b95945050505050565b60006020820190508181036000830152610d24818461096a565b905092915050565b60006020820190508181036000830152610d45816109a3565b9050919050565b60006020820190508181036000830152610d65816109e3565b9050919050565b60006020820190508181036000830152610d8581610a63565b9050919050565b60006020820190508181036000830152610da581610ac9565b9050919050565b60006020820190508181036000830152610dc581610b2f565b9050919050565b6000604082019050610de16000830185610b95565b8181036020830152610df38184610900565b90509392505050565b6000604051905081810181811067ffffffffffffffff82111715610e2357610e22611009565b5b8060405250919050565b600067ffffffffffffffff821115610e4857610e47611009565b5b601f19601f8301169050602081019050919050565b600081519050919050565b600081519050919050565b600082825260208201905092915050565b600081905092915050565b600082825260208201905092915050565b600081905092915050565b6000610eb682610f49565b9150610ec183610f49565b9250827fffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff03821115610ef657610ef5610fda565b5b828201905092915050565b6000610f0c82610f29565b9050919050565b60008115159050919050565b6000819050919050565b600073ffffffffffffffffffffffffffffffffffffffff82169050919050565b6000819050919050565b600060ff82169050919050565b82818337600083830152505050565b60005b83811015610f8d578082015181840152602081019050610f72565b83811115610f9c576000848401525b50505050565b6000610fad82610fbe565b9050919050565b6000819050919050565b6000610fc982611049565b9050919050565b6000819050919050565b7f4e487b7100000000000000000000000000000000000000000000000000000000600052601160045260246000fd5b7f4e487b7100000000000000000000000000000000000000000000000000000000600052604160045260246000fd5b6000601f19601f8301169050919050565b60008160601b9050919050565b61105f81610f01565b811461106a57600080fd5b50565b61107681610f13565b811461108157600080fd5b50565b61108d81610f1f565b811461109857600080fd5b50565b6110a481610f49565b81146110af57600080fd5b5056fea264697066735822122012fabda6404e1d30f2401413dd4a5abe67f2f0265fcb0b002bc553e0663dd25464736f6c63430008000033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
