{
  "_format": "hh-sol-artifact-1",
  "contractName": "EncodeHelper",
  "sourceName": "contracts/V3/rlp/EncodeHelper.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "self",
          "type": "address"
        }
      ],
      "name": "encodeAddress",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "self",
          "type": "bool"
        }
      ],
      "name": "encodeBool",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "self",
          "type": "bytes"
        }
      ],
      "name": "encodeBytes",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "int256",
          "name": "self",
          "type": "int256"
        }
      ],
      "name": "encodeInt",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes[]",
          "name": "self",
          "type": "bytes[]"
        }
      ],
      "name": "encodeList",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "self",
          "type": "string"
        }
      ],
      "name": "encodeString",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "self",
          "type": "uint256"
        }
      ],
      "name": "encodeUint",
      "outputs": [
        {
          "internalType": "bytes",
          "name": "",
          "type": "bytes"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610c40806100206000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c806316163c891461007257806375b8de151461009b578063d30c0a64146100ae578063d32b1bea146100c1578063d93227e2146100d4578063e334f32e146100e7578063e3ac07f5146100fa575b600080fd5b61008561008036600461078b565b61010d565b60405161009291906107ad565b60405180910390f35b6100856100a9366004610802565b61011e565b6100856100bc366004610802565b610125565b6100856100cf36600461081b565b610130565b6100856100e2366004610901565b61013b565b6100856100f53660046109c3565b610146565b610085610108366004610a13565b61014d565b606061011882610158565b92915050565b6060610118825b6060610118826101c2565b6060610118826101d5565b6060610118826101ff565b6060610118825b606061011882610223565b604080516001808252818301909252606091600091906020820181803683370190505090508261018c57600160ff1b610192565b600160f81b5b816000815181106101a5576101a5610a47565b60200101906001600160f81b031916908160001a90535092915050565b60606101186101d083610273565b610223565b60408051600560a21b83186014820152603481019091526060906101f881610223565b9392505050565b6060600061020c836103b0565b90506101f861021d825160c06104df565b82610696565b60608082516001148015610252575060808360008151811061024757610247610a47565b016020015160f81c11155b1561025e575081610118565b6101f861026d845160806104df565b84610696565b6040805160208082528183019092526060916000919060208201818036833701905050905082602082015260005b60208110156102e7578181815181106102bc576102bc610a47565b01602001516001600160f81b031916156102d5576102e7565b806102df81610a73565b9150506102a1565b60006102f4826020610a8e565b6001600160401b0381111561030b5761030b610844565b6040519080825280601f01601f191660200182016040528015610335576020820181803683370190505b50905060005b81518110156103a757838361034f81610a73565b94508151811061036157610361610a47565b602001015160f81c60f81b82828151811061037e5761037e610a47565b60200101906001600160f81b031916908160001a9053508061039f81610a73565b91505061033b565b50949350505050565b60608151600014156103d057505060408051600081526020810190915290565b6000805b8351811015610417578381815181106103ef576103ef610a47565b602002602001015151826104039190610aa5565b91508061040f81610a73565b9150506103d4565b6000826001600160401b0381111561043157610431610844565b6040519080825280601f01601f19166020018201604052801561045b576020820181803683370190505b50600092509050602081015b85518310156103a757600086848151811061048457610484610a47565b6020026020010151905060006020820190506104a283828451610713565b8785815181106104b4576104b4610a47565b602002602001015151836104c89190610aa5565b9250505082806104d790610a73565b935050610467565b606080603884101561054957604080516001808252818301909252906020820181803683370190505090506105148385610aa5565b601f1a60f81b8160008151811061052d5761052d610a47565b60200101906001600160f81b031916908160001a9053506101f8565b600060015b6105588187610ad3565b1561057e578161056781610a73565b9250610577905061010082610ae7565b905061054e565b610589826001610aa5565b6001600160401b038111156105a0576105a0610844565b6040519080825280601f01601f1916602001820160405280156105ca576020820181803683370190505b5092506105d78583610aa5565b6105e2906037610aa5565b601f1a60f81b836000815181106105fb576105fb610a47565b60200101906001600160f81b031916908160001a905350600190505b81811161068c5761010061062b8284610a8e565b61063790610100610bea565b6106419088610ad3565b61064b9190610bf6565b601f1a60f81b83828151811061066357610663610a47565b60200101906001600160f81b031916908160001a9053508061068481610a73565b915050610617565b5050905092915050565b6060806040519050835180825260208201818101602087015b818310156106c75780518352602092830192016106af565b50855184518101855292509050808201602086015b818310156106f45780518352602092830192016106dc565b508651929092011591909101601f01601f191660405250905092915050565b8282825b6020811061074f578151835261072e602084610aa5565b925061073b602083610aa5565b9150610748602082610a8e565b9050610717565b6000600161075e836020610a8e565b61076a90610100610bea565b6107749190610a8e565b925184518416931916929092179092525050505050565b60006020828403121561079d57600080fd5b813580151581146101f857600080fd5b600060208083528351808285015260005b818110156107da578581018301518582016040015282016107be565b818111156107ec576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561081457600080fd5b5035919050565b60006020828403121561082d57600080fd5b81356001600160a01b03811681146101f857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561088257610882610844565b604052919050565b60006001600160401b038311156108a3576108a3610844565b6108b6601f8401601f191660200161085a565b90508281528383830111156108ca57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126108f257600080fd5b6101f88383356020850161088a565b6000602080838503121561091457600080fd5b82356001600160401b038082111561092b57600080fd5b818501915085601f83011261093f57600080fd5b81358181111561095157610951610844565b8060051b61096085820161085a565b918252838101850191858101908984111561097a57600080fd5b86860192505b838310156109b6578235858111156109985760008081fd5b6109a68b89838a01016108e1565b8352509186019190860190610980565b9998505050505050505050565b6000602082840312156109d557600080fd5b81356001600160401b038111156109eb57600080fd5b8201601f810184136109fc57600080fd5b610a0b8482356020840161088a565b949350505050565b600060208284031215610a2557600080fd5b81356001600160401b03811115610a3b57600080fd5b610a0b848285016108e1565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610a8757610a87610a5d565b5060010190565b600082821015610aa057610aa0610a5d565b500390565b60008219821115610ab857610ab8610a5d565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610ae257610ae2610abd565b500490565b6000816000190483118215151615610b0157610b01610a5d565b500290565b600181815b80851115610b41578160001904821115610b2757610b27610a5d565b80851615610b3457918102915b93841c9390800290610b0b565b509250929050565b600082610b5857506001610118565b81610b6557506000610118565b8160018114610b7b5760028114610b8557610ba1565b6001915050610118565b60ff841115610b9657610b96610a5d565b50506001821b610118565b5060208310610133831016604e8410600b8410161715610bc4575081810a610118565b610bce8383610b06565b8060001904821115610be257610be2610a5d565b029392505050565b60006101f88383610b49565b600082610c0557610c05610abd565b50069056fea26469706673582212202a67cc7cc57ac13e1c6542c202feb7d73ebccff779f65eac4a26e1b48d8bcf0964736f6c63430008080033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061006d5760003560e01c806316163c891461007257806375b8de151461009b578063d30c0a64146100ae578063d32b1bea146100c1578063d93227e2146100d4578063e334f32e146100e7578063e3ac07f5146100fa575b600080fd5b61008561008036600461078b565b61010d565b60405161009291906107ad565b60405180910390f35b6100856100a9366004610802565b61011e565b6100856100bc366004610802565b610125565b6100856100cf36600461081b565b610130565b6100856100e2366004610901565b61013b565b6100856100f53660046109c3565b610146565b610085610108366004610a13565b61014d565b606061011882610158565b92915050565b6060610118825b6060610118826101c2565b6060610118826101d5565b6060610118826101ff565b6060610118825b606061011882610223565b604080516001808252818301909252606091600091906020820181803683370190505090508261018c57600160ff1b610192565b600160f81b5b816000815181106101a5576101a5610a47565b60200101906001600160f81b031916908160001a90535092915050565b60606101186101d083610273565b610223565b60408051600560a21b83186014820152603481019091526060906101f881610223565b9392505050565b6060600061020c836103b0565b90506101f861021d825160c06104df565b82610696565b60608082516001148015610252575060808360008151811061024757610247610a47565b016020015160f81c11155b1561025e575081610118565b6101f861026d845160806104df565b84610696565b6040805160208082528183019092526060916000919060208201818036833701905050905082602082015260005b60208110156102e7578181815181106102bc576102bc610a47565b01602001516001600160f81b031916156102d5576102e7565b806102df81610a73565b9150506102a1565b60006102f4826020610a8e565b6001600160401b0381111561030b5761030b610844565b6040519080825280601f01601f191660200182016040528015610335576020820181803683370190505b50905060005b81518110156103a757838361034f81610a73565b94508151811061036157610361610a47565b602001015160f81c60f81b82828151811061037e5761037e610a47565b60200101906001600160f81b031916908160001a9053508061039f81610a73565b91505061033b565b50949350505050565b60608151600014156103d057505060408051600081526020810190915290565b6000805b8351811015610417578381815181106103ef576103ef610a47565b602002602001015151826104039190610aa5565b91508061040f81610a73565b9150506103d4565b6000826001600160401b0381111561043157610431610844565b6040519080825280601f01601f19166020018201604052801561045b576020820181803683370190505b50600092509050602081015b85518310156103a757600086848151811061048457610484610a47565b6020026020010151905060006020820190506104a283828451610713565b8785815181106104b4576104b4610a47565b602002602001015151836104c89190610aa5565b9250505082806104d790610a73565b935050610467565b606080603884101561054957604080516001808252818301909252906020820181803683370190505090506105148385610aa5565b601f1a60f81b8160008151811061052d5761052d610a47565b60200101906001600160f81b031916908160001a9053506101f8565b600060015b6105588187610ad3565b1561057e578161056781610a73565b9250610577905061010082610ae7565b905061054e565b610589826001610aa5565b6001600160401b038111156105a0576105a0610844565b6040519080825280601f01601f1916602001820160405280156105ca576020820181803683370190505b5092506105d78583610aa5565b6105e2906037610aa5565b601f1a60f81b836000815181106105fb576105fb610a47565b60200101906001600160f81b031916908160001a905350600190505b81811161068c5761010061062b8284610a8e565b61063790610100610bea565b6106419088610ad3565b61064b9190610bf6565b601f1a60f81b83828151811061066357610663610a47565b60200101906001600160f81b031916908160001a9053508061068481610a73565b915050610617565b5050905092915050565b6060806040519050835180825260208201818101602087015b818310156106c75780518352602092830192016106af565b50855184518101855292509050808201602086015b818310156106f45780518352602092830192016106dc565b508651929092011591909101601f01601f191660405250905092915050565b8282825b6020811061074f578151835261072e602084610aa5565b925061073b602083610aa5565b9150610748602082610a8e565b9050610717565b6000600161075e836020610a8e565b61076a90610100610bea565b6107749190610a8e565b925184518416931916929092179092525050505050565b60006020828403121561079d57600080fd5b813580151581146101f857600080fd5b600060208083528351808285015260005b818110156107da578581018301518582016040015282016107be565b818111156107ec576000604083870101525b50601f01601f1916929092016040019392505050565b60006020828403121561081457600080fd5b5035919050565b60006020828403121561082d57600080fd5b81356001600160a01b03811681146101f857600080fd5b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b038111828210171561088257610882610844565b604052919050565b60006001600160401b038311156108a3576108a3610844565b6108b6601f8401601f191660200161085a565b90508281528383830111156108ca57600080fd5b828260208301376000602084830101529392505050565b600082601f8301126108f257600080fd5b6101f88383356020850161088a565b6000602080838503121561091457600080fd5b82356001600160401b038082111561092b57600080fd5b818501915085601f83011261093f57600080fd5b81358181111561095157610951610844565b8060051b61096085820161085a565b918252838101850191858101908984111561097a57600080fd5b86860192505b838310156109b6578235858111156109985760008081fd5b6109a68b89838a01016108e1565b8352509186019190860190610980565b9998505050505050505050565b6000602082840312156109d557600080fd5b81356001600160401b038111156109eb57600080fd5b8201601f810184136109fc57600080fd5b610a0b8482356020840161088a565b949350505050565b600060208284031215610a2557600080fd5b81356001600160401b03811115610a3b57600080fd5b610a0b848285016108e1565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600019821415610a8757610a87610a5d565b5060010190565b600082821015610aa057610aa0610a5d565b500390565b60008219821115610ab857610ab8610a5d565b500190565b634e487b7160e01b600052601260045260246000fd5b600082610ae257610ae2610abd565b500490565b6000816000190483118215151615610b0157610b01610a5d565b500290565b600181815b80851115610b41578160001904821115610b2757610b27610a5d565b80851615610b3457918102915b93841c9390800290610b0b565b509250929050565b600082610b5857506001610118565b81610b6557506000610118565b8160018114610b7b5760028114610b8557610ba1565b6001915050610118565b60ff841115610b9657610b96610a5d565b50506001821b610118565b5060208310610133831016604e8410600b8410161715610bc4575081810a610118565b610bce8383610b06565b8060001904821115610be257610be2610a5d565b029392505050565b60006101f88383610b49565b600082610c0557610c05610abd565b50069056fea26469706673582212202a67cc7cc57ac13e1c6542c202feb7d73ebccff779f65eac4a26e1b48d8bcf0964736f6c63430008080033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
