{
  "_format": "hh-sol-artifact-1",
  "contractName": "MerkleTreeUtils",
  "sourceName": "contracts/test/MerkleTreeUtils.sol",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "objectHash",
          "type": "bytes32"
        },
        {
          "internalType": "bytes32[]",
          "name": "merkleProof",
          "type": "bytes32[]"
        }
      ],
      "name": "checkMerkleProof",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint64",
              "name": "shardsKey",
              "type": "uint64"
            },
            {
              "internalType": "uint64",
              "name": "gasLimit",
              "type": "uint64"
            },
            {
              "internalType": "bytes32",
              "name": "operationId",
              "type": "bytes32"
            },
            {
              "internalType": "uint256",
              "name": "timestamp",
              "type": "uint256"
            },
            {
              "internalType": "address",
              "name": "target",
              "type": "address"
            },
            {
              "internalType": "string",
              "name": "methodName",
              "type": "string"
            },
            {
              "internalType": "bytes",
              "name": "arguments",
              "type": "bytes"
            },
            {
              "internalType": "string",
              "name": "caller",
              "type": "string"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "evmAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct TokenAmount",
              "name": "evmExecutorFee",
              "type": "tuple"
            },
            {
              "internalType": "address[]",
              "name": "evmValidExecutors",
              "type": "address[]"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "evmAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct TokenAmount[]",
              "name": "mint",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "evmAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct TokenAmount[]",
              "name": "unlock",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "string",
                  "name": "name",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "symbol",
                  "type": "string"
                },
                {
                  "internalType": "uint8",
                  "name": "decimals",
                  "type": "uint8"
                },
                {
                  "internalType": "string",
                  "name": "tvmAddress",
                  "type": "string"
                }
              ],
              "internalType": "struct TokenInfo[]",
              "name": "meta",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "evmAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "tokenId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct NFTAmount[]",
              "name": "mintNFT",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "evmAddress",
                  "type": "address"
                },
                {
                  "internalType": "uint256",
                  "name": "tokenId",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "amount",
                  "type": "uint256"
                }
              ],
              "internalType": "struct NFTAmount[]",
              "name": "unlockNFT",
              "type": "tuple[]"
            },
            {
              "components": [
                {
                  "internalType": "string",
                  "name": "name",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "symbol",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "baseURI",
                  "type": "string"
                },
                {
                  "internalType": "string",
                  "name": "tvmAddress",
                  "type": "string"
                }
              ],
              "internalType": "struct NFTInfo[]",
              "name": "metaNFT",
              "type": "tuple[]"
            }
          ],
          "internalType": "struct InMessageV1",
          "name": "message",
          "type": "tuple"
        }
      ],
      "name": "hashInMessageV1",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    }
  ],
  "bytecode": "0x6080604052348015600f57600080fd5b506108bd8061001f6000396000f3fe608060405234801561001057600080fd5b50600436106100365760003560e01c806358f5b6451461003b5780639507c26014610060575b600080fd5b61004e610049366004610149565b610073565b60405190815260200160405180910390f35b61004e61006e366004610185565b6100c0565b6000816040516020016100869190610645565b60408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052805190602001209050919050565b60006100cd8383866100d5565b949350505050565b600081815b8481101561010e57610104828787848181106100f8576100f8610871565b90506020020135610117565b91506001016100da565b50949350505050565b6000818310610133576000828152602084905260409020610142565b60008381526020839052604090205b9392505050565b60006020828403121561015b57600080fd5b813567ffffffffffffffff81111561017257600080fd5b8201610220818503121561014257600080fd5b60008060006040848603121561019a57600080fd5b83359250602084013567ffffffffffffffff8111156101b857600080fd5b8401601f810186136101c957600080fd5b803567ffffffffffffffff8111156101e057600080fd5b8660208260051b84010111156101f557600080fd5b939660209190910195509293505050565b803567ffffffffffffffff8116811461021e57600080fd5b919050565b80356001600160a01b038116811461021e57600080fd5b6000808335601e1984360301811261025157600080fd5b830160208101925035905067ffffffffffffffff81111561027157600080fd5b80360382131561028057600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b036102c182610223565b168252602090810135910152565b6000808335601e198436030181126102e657600080fd5b830160208101925035905067ffffffffffffffff81111561030657600080fd5b8060051b360382131561028057600080fd5b81835260208301925060008160005b84811015610356576001600160a01b0361034083610223565b1686526020958601959190910190600101610327565b5093949350505050565b6000808335601e1984360301811261037757600080fd5b830160208101925035905067ffffffffffffffff81111561039757600080fd5b8060061b360382131561028057600080fd5b81835260208301925060008160005b84811015610356576103ca86836102b0565b60409586019591909101906001016103b8565b60008235607e198336030181126103f357600080fd5b90910192915050565b60008383855260208501945060208460051b8201018360005b868110156104c957838303601f1901885261043082876103dd565b61043a818261023a565b6080865261044c608087018284610287565b91505061045c602083018361023a565b868303602088015261046f838284610287565b92505050604082013560ff811680821461048857600080fd5b60408701525061049b606083018361023a565b925085820360608701526104b0828483610287565b60209b8c019b9096509490940193505050600101610415565b50909695505050505050565b6000808335601e198436030181126104ec57600080fd5b830160208101925035905067ffffffffffffffff81111561050c57600080fd5b60608102360382131561028057600080fd5b81835260208301925060008160005b84811015610356576001600160a01b0361054683610223565b16865260208281013590870152604080830135908701526060958601959091019060010161052d565b60008383855260208501945060208460051b8201018360005b868110156104c957838303601f190188526105a382876103dd565b6105ad818261023a565b608086526105bf608087018284610287565b9150506105cf602083018361023a565b86830360208801526105e2838284610287565b925050506105f3604083018361023a565b8683036040880152610606838284610287565b92505050610617606083018361023a565b9250858203606087015261062c828483610287565b60209b8c019b9096509490940193505050600101610588565b602081526106676020820161065984610206565b67ffffffffffffffff169052565b600061067560208401610206565b67ffffffffffffffff811660408401525060408301356060838101919091528301356080808401919091526106ab908401610223565b6001600160a01b03811660a0840152506106c860a084018461023a565b61022060c08501526106df61024085018284610287565b9150506106ef60c085018561023a565b848303601f190160e0860152610706838284610287565b9250505061071760e085018561023a565b848303601f190161010086015261072f838284610287565b92505050610745610120840161010086016102b0565b6107536101408501856102cf565b848303601f190161016086015261076b838284610318565b9250505061077d610160850185610360565b848303601f19016101808601526107958382846103a9565b925050506107a7610180850185610360565b848303601f19016101a08601526107bf8382846103a9565b925050506107d16101a08501856102cf565b848303601f19016101c08601526107e98382846103fc565b925050506107fb6101c08501856104d5565b848303601f19016101e086015261081383828461051e565b925050506108256101e08501856104d5565b848303601f190161020086015261083d83828461051e565b9250505061084f6102008501856102cf565b848303601f190161022086015261086783828461056f565b9695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220c0a49435af5dfcd47d97220bd9e2b3784e228e8af3db28a04ee81ff88ceddb5e64736f6c634300081c0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100365760003560e01c806358f5b6451461003b5780639507c26014610060575b600080fd5b61004e610049366004610149565b610073565b60405190815260200160405180910390f35b61004e61006e366004610185565b6100c0565b6000816040516020016100869190610645565b60408051601f1981840301815282825280516020918201209083015201604051602081830303815290604052805190602001209050919050565b60006100cd8383866100d5565b949350505050565b600081815b8481101561010e57610104828787848181106100f8576100f8610871565b90506020020135610117565b91506001016100da565b50949350505050565b6000818310610133576000828152602084905260409020610142565b60008381526020839052604090205b9392505050565b60006020828403121561015b57600080fd5b813567ffffffffffffffff81111561017257600080fd5b8201610220818503121561014257600080fd5b60008060006040848603121561019a57600080fd5b83359250602084013567ffffffffffffffff8111156101b857600080fd5b8401601f810186136101c957600080fd5b803567ffffffffffffffff8111156101e057600080fd5b8660208260051b84010111156101f557600080fd5b939660209190910195509293505050565b803567ffffffffffffffff8116811461021e57600080fd5b919050565b80356001600160a01b038116811461021e57600080fd5b6000808335601e1984360301811261025157600080fd5b830160208101925035905067ffffffffffffffff81111561027157600080fd5b80360382131561028057600080fd5b9250929050565b81835281816020850137506000828201602090810191909152601f909101601f19169091010190565b6001600160a01b036102c182610223565b168252602090810135910152565b6000808335601e198436030181126102e657600080fd5b830160208101925035905067ffffffffffffffff81111561030657600080fd5b8060051b360382131561028057600080fd5b81835260208301925060008160005b84811015610356576001600160a01b0361034083610223565b1686526020958601959190910190600101610327565b5093949350505050565b6000808335601e1984360301811261037757600080fd5b830160208101925035905067ffffffffffffffff81111561039757600080fd5b8060061b360382131561028057600080fd5b81835260208301925060008160005b84811015610356576103ca86836102b0565b60409586019591909101906001016103b8565b60008235607e198336030181126103f357600080fd5b90910192915050565b60008383855260208501945060208460051b8201018360005b868110156104c957838303601f1901885261043082876103dd565b61043a818261023a565b6080865261044c608087018284610287565b91505061045c602083018361023a565b868303602088015261046f838284610287565b92505050604082013560ff811680821461048857600080fd5b60408701525061049b606083018361023a565b925085820360608701526104b0828483610287565b60209b8c019b9096509490940193505050600101610415565b50909695505050505050565b6000808335601e198436030181126104ec57600080fd5b830160208101925035905067ffffffffffffffff81111561050c57600080fd5b60608102360382131561028057600080fd5b81835260208301925060008160005b84811015610356576001600160a01b0361054683610223565b16865260208281013590870152604080830135908701526060958601959091019060010161052d565b60008383855260208501945060208460051b8201018360005b868110156104c957838303601f190188526105a382876103dd565b6105ad818261023a565b608086526105bf608087018284610287565b9150506105cf602083018361023a565b86830360208801526105e2838284610287565b925050506105f3604083018361023a565b8683036040880152610606838284610287565b92505050610617606083018361023a565b9250858203606087015261062c828483610287565b60209b8c019b9096509490940193505050600101610588565b602081526106676020820161065984610206565b67ffffffffffffffff169052565b600061067560208401610206565b67ffffffffffffffff811660408401525060408301356060838101919091528301356080808401919091526106ab908401610223565b6001600160a01b03811660a0840152506106c860a084018461023a565b61022060c08501526106df61024085018284610287565b9150506106ef60c085018561023a565b848303601f190160e0860152610706838284610287565b9250505061071760e085018561023a565b848303601f190161010086015261072f838284610287565b92505050610745610120840161010086016102b0565b6107536101408501856102cf565b848303601f190161016086015261076b838284610318565b9250505061077d610160850185610360565b848303601f19016101808601526107958382846103a9565b925050506107a7610180850185610360565b848303601f19016101a08601526107bf8382846103a9565b925050506107d16101a08501856102cf565b848303601f19016101c08601526107e98382846103fc565b925050506107fb6101c08501856104d5565b848303601f19016101e086015261081383828461051e565b925050506108256101e08501856104d5565b848303601f190161020086015261083d83828461051e565b9250505061084f6102008501856102cf565b848303601f190161022086015261086783828461056f565b9695505050505050565b634e487b7160e01b600052603260045260246000fdfea2646970667358221220c0a49435af5dfcd47d97220bd9e2b3784e228e8af3db28a04ee81ff88ceddb5e64736f6c634300081c0033",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
