{
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_weth",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_bridge",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        }
      ],
      "name": "Send",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "bridge",
      "outputs": [
        {
          "internalType": "contract BridgeRouter",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_domain",
          "type": "uint32"
        },
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "name": "send",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_domain",
          "type": "uint32"
        },
        {
          "internalType": "bytes32",
          "name": "_to",
          "type": "bytes32"
        },
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "name": "sendTo",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "_domain",
          "type": "uint32"
        },
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "name": "sendToEVMLike",
      "outputs": [],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "weth",
      "outputs": [
        {
          "internalType": "contract IWeth",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x60c060405234801561001057600080fd5b506040516104833803806104838339818101604052604081101561003357600080fd5b5080516020909101516001600160601b0319606083811b821660805282901b1660a0526040805163095ea7b360e01b81526001600160a01b038084166004830152600019602483015291519184169163095ea7b39160448082019260009290919082900301818387803b1580156100a957600080fd5b505af11580156100bd573d6000803e3d6000fd5b50505050505060805160601c60a05160601c6103886100fb600039806101a752806102d152508061017152806101cb528061028552506103886000f3fe60806040526004361061005a5760003560e01c80638b3a145e116100435780638b3a145e146100ca578063e78cea9214610111578063fcdef44c146101265761005a565b80631411b7c01461005f5780633fc8cef31461008c575b600080fd5b61008a6004803603604081101561007557600080fd5b5063ffffffff81351690602001351515610157565b005b34801561009857600080fd5b506100a161016f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61008a600480360360608110156100e057600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff60208201351690604001351515610193565b34801561011d57600080fd5b506100a16101a5565b61008a6004803603606081101561013c57600080fd5b5063ffffffff813516906020810135906040013515156101c9565b61016b8261016433610362565b60006101c9565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6101a08361016484610362565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561023157600080fd5b505af1158015610245573d6000803e3d6000fd5b5050604080517fa9bd122600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015234602483015263ffffffff891660448301526064820188905260006084830181905292517f0000000000000000000000000000000000000000000000000000000000000000909116955063a9bd1226945060a48083019450909182900301818387803b15801561031a57600080fd5b505af115801561032e573d6000803e3d6000fd5b50506040513392507f7d4b3c5c44bd8008199bb99f184426274cf24f917f4da3485d6a39f894366b109150600090a2505050565b73ffffffffffffffffffffffffffffffffffffffff169056fea164736f6c6343000706000a",
    "sourceMap": "347:2674:36:-:0;;;811:180;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;811:180:36;;;;;;;-1:-1:-1;;;;;;873:19:36;;;;;;;;902:30;;;;;;811:180;942:42;;-1:-1:-1;;;942:42:36;;-1:-1:-1;;;;;902:30:36;;;942:42;;;;-1:-1:-1;;942:42:36;;;;;;873:19;;;;942:20;;:42;;;;;-1:-1:-1;;942:42:36;;;;;;;;-1:-1:-1;873:19:36;942:42;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;811:180;;347:2674;;;;;;;;;;;;;;;;",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x60806040526004361061005a5760003560e01c80638b3a145e116100435780638b3a145e146100ca578063e78cea9214610111578063fcdef44c146101265761005a565b80631411b7c01461005f5780633fc8cef31461008c575b600080fd5b61008a6004803603604081101561007557600080fd5b5063ffffffff81351690602001351515610157565b005b34801561009857600080fd5b506100a161016f565b6040805173ffffffffffffffffffffffffffffffffffffffff9092168252519081900360200190f35b61008a600480360360608110156100e057600080fd5b5063ffffffff8135169073ffffffffffffffffffffffffffffffffffffffff60208201351690604001351515610193565b34801561011d57600080fd5b506100a16101a5565b61008a6004803603606081101561013c57600080fd5b5063ffffffff813516906020810135906040013515156101c9565b61016b8261016433610362565b60006101c9565b5050565b7f000000000000000000000000000000000000000000000000000000000000000081565b6101a08361016484610362565b505050565b7f000000000000000000000000000000000000000000000000000000000000000081565b7f000000000000000000000000000000000000000000000000000000000000000073ffffffffffffffffffffffffffffffffffffffff1663d0e30db0346040518263ffffffff1660e01b81526004016000604051808303818588803b15801561023157600080fd5b505af1158015610245573d6000803e3d6000fd5b5050604080517fa9bd122600000000000000000000000000000000000000000000000000000000815273ffffffffffffffffffffffffffffffffffffffff7f00000000000000000000000000000000000000000000000000000000000000008116600483015234602483015263ffffffff891660448301526064820188905260006084830181905292517f0000000000000000000000000000000000000000000000000000000000000000909116955063a9bd1226945060a48083019450909182900301818387803b15801561031a57600080fd5b505af115801561032e573d6000803e3d6000fd5b50506040513392507f7d4b3c5c44bd8008199bb99f184426274cf24f917f4da3485d6a39f894366b109150600090a2505050565b73ffffffffffffffffffffffffffffffffffffffff169056fea164736f6c6343000706000a",
    "sourceMap": "347:2674:36:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2148:233;;;;;;;;;;;;;;;;-1:-1:-1;2148:233:36;;;;;;;;;;;:::i;:::-;;447:27;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;2763:256;;;;;;;;;;;;;;;;-1:-1:-1;2763:256:36;;;;;;;;;;;;;;;;;;:::i;510:36::-;;;;;;;;;;;;;:::i;1362:446::-;;;;;;;;;;;;;;;;-1:-1:-1;1362:446:36;;;;;;;;;;;;;;;;:::i;2148:233::-;2312:62;2319:7;2328:38;2355:10;2328:26;:38::i;:::-;2368:5;2312:6;:62::i;:::-;2148:233;;:::o;447:27::-;;;:::o;2763:256::-;2957:55;2964:7;2973:31;3000:3;2973:26;:31::i;2957:55::-;2763:256;;;:::o;510:36::-;;;:::o;1362:446::-;1575:4;:12;;;1595:9;1575:32;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1649:58:36;;;;;;:11;1669:4;1649:58;;;;;;1676:9;1649:58;;;;;;;;;;;;;;;;;-1:-1:-1;1649:58:36;;;;;;;;:6;:11;;;;-1:-1:-1;1649:11:36;;-1:-1:-1;1649:58:36;;;;;-1:-1:-1;1649:58:36;;;;;;;-1:-1:-1;1649:11:36;:58;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;1785:16:36;;1790:10;;-1:-1:-1;1785:16:36;;-1:-1:-1;1785:16:36;;;1362:446;;;:::o;999:129:75:-;1097:23;;;999:129::o",
    "linkReferences": {},
    "immutableReferences": {
      "31671": [
        {
          "start": 369,
          "length": 32
        },
        {
          "start": 459,
          "length": 32
        },
        {
          "start": 645,
          "length": 32
        }
      ],
      "31673": [
        {
          "start": 423,
          "length": 32
        },
        {
          "start": 721,
          "length": 32
        }
      ]
    }
  },
  "methodIdentifiers": {
    "bridge()": "e78cea92",
    "send(uint32,bool)": "1411b7c0",
    "sendTo(uint32,bytes32,bool)": "fcdef44c",
    "sendToEVMLike(uint32,address,bool)": "8b3a145e",
    "weth()": "3fc8cef3"
  },
  "ast": {
    "absolutePath": "packages/contracts-bridge/contracts/ETHHelper.sol",
    "id": 31789,
    "exportedSymbols": {
      "BridgeRouter": [
        31124
      ],
      "ETHHelper": [
        31788
      ],
      "IWeth": [
        33716
      ],
      "TypeCasts": [
        46345
      ]
    },
    "nodeType": "SourceUnit",
    "src": "46:2976:36",
    "nodes": [
      {
        "id": 31663,
        "nodeType": "PragmaDirective",
        "src": "46:22:36",
        "literals": [
          "solidity",
          "0.7",
          ".6"
        ]
      },
      {
        "id": 31665,
        "nodeType": "ImportDirective",
        "src": "116:48:36",
        "absolutePath": "packages/contracts-bridge/contracts/BridgeRouter.sol",
        "file": "./BridgeRouter.sol",
        "scope": 31789,
        "sourceUnit": 31251,
        "symbolAliases": [
          {
            "foreign": {
              "id": 31664,
              "name": "BridgeRouter",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "124:12:36",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 31667,
        "nodeType": "ImportDirective",
        "src": "165:45:36",
        "absolutePath": "packages/contracts-bridge/contracts/interfaces/IWeth.sol",
        "file": "./interfaces/IWeth.sol",
        "scope": 31789,
        "sourceUnit": 33717,
        "symbolAliases": [
          {
            "foreign": {
              "id": 31666,
              "name": "IWeth",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "173:5:36",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 31669,
        "nodeType": "ImportDirective",
        "src": "257:88:36",
        "absolutePath": "packages/contracts-core/contracts/XAppConnectionManager.sol",
        "file": "@nomad-xyz/contracts-core/contracts/XAppConnectionManager.sol",
        "scope": 31789,
        "sourceUnit": 45021,
        "symbolAliases": [
          {
            "foreign": {
              "id": 31668,
              "name": "TypeCasts",
              "nodeType": "Identifier",
              "overloadedDeclarations": [],
              "src": "265:9:36",
              "typeDescriptions": {}
            }
          }
        ],
        "unitAlias": ""
      },
      {
        "id": 31788,
        "nodeType": "ContractDefinition",
        "src": "347:2674:36",
        "nodes": [
          {
            "id": 31671,
            "nodeType": "VariableDeclaration",
            "src": "447:27:36",
            "constant": false,
            "functionSelector": "3fc8cef3",
            "mutability": "immutable",
            "name": "weth",
            "scope": 31788,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IWeth_$33716",
              "typeString": "contract IWeth"
            },
            "typeName": {
              "id": 31670,
              "name": "IWeth",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 33716,
              "src": "447:5:36",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IWeth_$33716",
                "typeString": "contract IWeth"
              }
            },
            "visibility": "public"
          },
          {
            "id": 31673,
            "nodeType": "VariableDeclaration",
            "src": "510:36:36",
            "constant": false,
            "functionSelector": "e78cea92",
            "mutability": "immutable",
            "name": "bridge",
            "scope": 31788,
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_BridgeRouter_$31124",
              "typeString": "contract BridgeRouter"
            },
            "typeName": {
              "id": 31672,
              "name": "BridgeRouter",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 31124,
              "src": "510:12:36",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_BridgeRouter_$31124",
                "typeString": "contract BridgeRouter"
              }
            },
            "visibility": "public"
          },
          {
            "id": 31678,
            "nodeType": "EventDefinition",
            "src": "726:33:36",
            "anonymous": false,
            "documentation": {
              "id": 31674,
              "nodeType": "StructuredDocumentation",
              "src": "587:134:36",
              "text": " @notice emitted when Ether is sent from this domain to another domain\n @param from the address sending tokens"
            },
            "name": "Send",
            "parameters": {
              "id": 31677,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 31676,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "from",
                  "nodeType": "VariableDeclaration",
                  "scope": 31678,
                  "src": "737:20:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 31675,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "737:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "736:22:36"
            }
          },
          {
            "id": 31710,
            "nodeType": "FunctionDefinition",
            "src": "811:180:36",
            "body": {
              "id": 31709,
              "nodeType": "Block",
              "src": "863:128:36",
              "statements": [
                {
                  "expression": {
                    "id": 31689,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 31685,
                      "name": "weth",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 31671,
                      "src": "873:4:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IWeth_$33716",
                        "typeString": "contract IWeth"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 31687,
                          "name": "_weth",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 31680,
                          "src": "886:5:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 31686,
                        "name": "IWeth",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 33716,
                        "src": "880:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IWeth_$33716_$",
                          "typeString": "type(contract IWeth)"
                        }
                      },
                      "id": 31688,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "880:12:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IWeth_$33716",
                        "typeString": "contract IWeth"
                      }
                    },
                    "src": "873:19:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IWeth_$33716",
                      "typeString": "contract IWeth"
                    }
                  },
                  "id": 31690,
                  "nodeType": "ExpressionStatement",
                  "src": "873:19:36"
                },
                {
                  "expression": {
                    "id": 31695,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 31691,
                      "name": "bridge",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 31673,
                      "src": "902:6:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BridgeRouter_$31124",
                        "typeString": "contract BridgeRouter"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 31693,
                          "name": "_bridge",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 31682,
                          "src": "924:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        ],
                        "id": 31692,
                        "name": "BridgeRouter",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31124,
                        "src": "911:12:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_BridgeRouter_$31124_$",
                          "typeString": "type(contract BridgeRouter)"
                        }
                      },
                      "id": 31694,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "911:21:36",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_BridgeRouter_$31124",
                        "typeString": "contract BridgeRouter"
                      }
                    },
                    "src": "902:30:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_BridgeRouter_$31124",
                      "typeString": "contract BridgeRouter"
                    }
                  },
                  "id": 31696,
                  "nodeType": "ExpressionStatement",
                  "src": "902:30:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 31701,
                        "name": "_bridge",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31682,
                        "src": "963:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 31705,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "UnaryOperation",
                            "operator": "-",
                            "prefix": true,
                            "src": "980:2:36",
                            "subExpression": {
                              "hexValue": "31",
                              "id": 31704,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "981:1:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_minus_1_by_1",
                              "typeString": "int_const -1"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_rational_minus_1_by_1",
                              "typeString": "int_const -1"
                            }
                          ],
                          "id": 31703,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "972:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_uint256_$",
                            "typeString": "type(uint256)"
                          },
                          "typeName": {
                            "id": 31702,
                            "name": "uint256",
                            "nodeType": "ElementaryTypeName",
                            "src": "972:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 31706,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "972:11:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 31698,
                            "name": "_weth",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 31680,
                            "src": "948:5:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 31697,
                          "name": "IWeth",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 33716,
                          "src": "942:5:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IWeth_$33716_$",
                            "typeString": "type(contract IWeth)"
                          }
                        },
                        "id": 31699,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "942:12:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IWeth_$33716",
                          "typeString": "contract IWeth"
                        }
                      },
                      "id": 31700,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "approve",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 33715,
                      "src": "942:20:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256) external"
                      }
                    },
                    "id": 31707,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "942:42:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 31708,
                  "nodeType": "ExpressionStatement",
                  "src": "942:42:36"
                }
              ]
            },
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "parameters": {
              "id": 31683,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 31680,
                  "mutability": "mutable",
                  "name": "_weth",
                  "nodeType": "VariableDeclaration",
                  "scope": 31710,
                  "src": "823:13:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 31679,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "823:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 31682,
                  "mutability": "mutable",
                  "name": "_bridge",
                  "nodeType": "VariableDeclaration",
                  "scope": 31710,
                  "src": "838:23:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address_payable",
                    "typeString": "address payable"
                  },
                  "typeName": {
                    "id": 31681,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "838:15:36",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "822:40:36"
            },
            "returnParameters": {
              "id": 31684,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "863:0:36"
            },
            "scope": 31788,
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 31748,
            "nodeType": "FunctionDefinition",
            "src": "1362:446:36",
            "body": {
              "id": 31747,
              "nodeType": "Block",
              "src": "1537:271:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 31720,
                          "name": "weth",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 31671,
                          "src": "1575:4:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IWeth_$33716",
                            "typeString": "contract IWeth"
                          }
                        },
                        "id": 31722,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "deposit",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 33708,
                        "src": "1575:12:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_payable$__$returns$__$",
                          "typeString": "function () payable external"
                        }
                      },
                      "id": 31725,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "names": [
                        "value"
                      ],
                      "nodeType": "FunctionCallOptions",
                      "options": [
                        {
                          "expression": {
                            "id": 31723,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": -15,
                            "src": "1595:3:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 31724,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "value",
                          "nodeType": "MemberAccess",
                          "src": "1595:9:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "src": "1575:30:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_payable$__$returns$__$value",
                        "typeString": "function () payable external"
                      }
                    },
                    "id": 31726,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1575:32:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 31727,
                  "nodeType": "ExpressionStatement",
                  "src": "1575:32:36"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "id": 31733,
                            "name": "weth",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 31671,
                            "src": "1669:4:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IWeth_$33716",
                              "typeString": "contract IWeth"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IWeth_$33716",
                              "typeString": "contract IWeth"
                            }
                          ],
                          "id": 31732,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1661:7:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 31731,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "1661:7:36",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 31734,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1661:13:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "expression": {
                          "id": 31735,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "1676:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 31736,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "value",
                        "nodeType": "MemberAccess",
                        "src": "1676:9:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 31737,
                        "name": "_domain",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31713,
                        "src": "1687:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "id": 31738,
                        "name": "_to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31715,
                        "src": "1696:3:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 31739,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1701:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "expression": {
                        "id": 31728,
                        "name": "bridge",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31673,
                        "src": "1649:6:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_BridgeRouter_$31124",
                          "typeString": "contract BridgeRouter"
                        }
                      },
                      "id": 31730,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "send",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 30550,
                      "src": "1649:11:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_uint256_$_t_uint32_$_t_bytes32_$_t_bool_$returns$__$",
                        "typeString": "function (address,uint256,uint32,bytes32,bool) external"
                      }
                    },
                    "id": 31740,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1649:58:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 31741,
                  "nodeType": "ExpressionStatement",
                  "src": "1649:58:36"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 31743,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": -15,
                          "src": "1790:3:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 31744,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "1790:10:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address_payable",
                          "typeString": "address payable"
                        }
                      ],
                      "id": 31742,
                      "name": "Send",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 31678,
                      "src": "1785:4:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 31745,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1785:16:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 31746,
                  "nodeType": "EmitStatement",
                  "src": "1780:21:36"
                }
              ]
            },
            "documentation": {
              "id": 31711,
              "nodeType": "StructuredDocumentation",
              "src": "1050:307:36",
              "text": " @notice Sends ETH over the Nomad Bridge. Sends to a full-width Nomad\n identifer on the other side.\n @dev As with all bridges, improper use may result in loss of funds.\n @param _domain The domain to send funds to.\n @param _to The 32-byte identifier of the recipient"
            },
            "functionSelector": "fcdef44c",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "sendTo",
            "parameters": {
              "id": 31718,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 31713,
                  "mutability": "mutable",
                  "name": "_domain",
                  "nodeType": "VariableDeclaration",
                  "scope": 31748,
                  "src": "1387:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 31712,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1387:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 31715,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 31748,
                  "src": "1411:11:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 31714,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1411:7:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 31717,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 31748,
                  "src": "1432:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 31716,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1432:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1377:144:36"
            },
            "returnParameters": {
              "id": 31719,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1537:0:36"
            },
            "scope": 31788,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "id": 31767,
            "nodeType": "FunctionDefinition",
            "src": "2148:233:36",
            "body": {
              "id": 31766,
              "nodeType": "Block",
              "src": "2302:79:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 31757,
                        "name": "_domain",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31751,
                        "src": "2319:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "expression": {
                              "id": 31760,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": -15,
                              "src": "2355:3:36",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 31761,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "2355:10:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "expression": {
                            "id": 31758,
                            "name": "TypeCasts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 46345,
                            "src": "2328:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_TypeCasts_$46345_$",
                              "typeString": "type(library TypeCasts)"
                            }
                          },
                          "id": 31759,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressToBytes32",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 46325,
                          "src": "2328:26:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes32_$",
                            "typeString": "function (address) pure returns (bytes32)"
                          }
                        },
                        "id": 31762,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2328:38:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 31763,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2368:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 31756,
                      "name": "sendTo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 31748,
                      "src": "2312:6:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_bytes32_$_t_bool_$returns$__$",
                        "typeString": "function (uint32,bytes32,bool)"
                      }
                    },
                    "id": 31764,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2312:62:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 31765,
                  "nodeType": "ExpressionStatement",
                  "src": "2312:62:36"
                }
              ]
            },
            "documentation": {
              "id": 31749,
              "nodeType": "StructuredDocumentation",
              "src": "1814:329:36",
              "text": " @notice Sends ETH over the Nomad Bridge. Sends to the same address on\n the other side.\n @dev WARNING: This function should only be used when sending TO an\n EVM-like domain. As with all bridges, improper use may result in loss of\n funds.\n @param _domain The domain to send funds to"
            },
            "functionSelector": "1411b7c0",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "send",
            "parameters": {
              "id": 31754,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 31751,
                  "mutability": "mutable",
                  "name": "_domain",
                  "nodeType": "VariableDeclaration",
                  "scope": 31767,
                  "src": "2171:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 31750,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2171:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 31753,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 31767,
                  "src": "2195:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 31752,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2195:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2161:123:36"
            },
            "returnParameters": {
              "id": 31755,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2302:0:36"
            },
            "scope": 31788,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 31787,
            "nodeType": "FunctionDefinition",
            "src": "2763:256:36",
            "body": {
              "id": 31786,
              "nodeType": "Block",
              "src": "2947:72:36",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 31778,
                        "name": "_domain",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 31770,
                        "src": "2964:7:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        }
                      },
                      {
                        "arguments": [
                          {
                            "id": 31781,
                            "name": "_to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 31772,
                            "src": "3000:3:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "expression": {
                            "id": 31779,
                            "name": "TypeCasts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 46345,
                            "src": "2973:9:36",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_TypeCasts_$46345_$",
                              "typeString": "type(library TypeCasts)"
                            }
                          },
                          "id": 31780,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "addressToBytes32",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 46325,
                          "src": "2973:26:36",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_address_$returns$_t_bytes32_$",
                            "typeString": "function (address) pure returns (bytes32)"
                          }
                        },
                        "id": 31782,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2973:31:36",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 31783,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3006:5:36",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint32",
                          "typeString": "uint32"
                        },
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 31777,
                      "name": "sendTo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 31748,
                      "src": "2957:6:36",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint32_$_t_bytes32_$_t_bool_$returns$__$",
                        "typeString": "function (uint32,bytes32,bool)"
                      }
                    },
                    "id": 31784,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2957:55:36",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 31785,
                  "nodeType": "ExpressionStatement",
                  "src": "2957:55:36"
                }
              ]
            },
            "documentation": {
              "id": 31768,
              "nodeType": "StructuredDocumentation",
              "src": "2387:371:36",
              "text": " @notice Sends ETH over the Nomad Bridge. Sends to a specified EVM\n address on the other side.\n @dev This function should only be used when sending TO an EVM-like\n domain. As with all bridges, improper use may result in loss of funds\n @param _domain The domain to send funds to.\n @param _to The EVM address of the recipient"
            },
            "functionSelector": "8b3a145e",
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "sendToEVMLike",
            "parameters": {
              "id": 31775,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 31770,
                  "mutability": "mutable",
                  "name": "_domain",
                  "nodeType": "VariableDeclaration",
                  "scope": 31787,
                  "src": "2795:14:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 31769,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "2795:6:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 31772,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "scope": 31787,
                  "src": "2819:11:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 31771,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2819:7:36",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 31774,
                  "mutability": "mutable",
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 31787,
                  "src": "2840:4:36",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 31773,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2840:4:36",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2785:144:36"
            },
            "returnParameters": {
              "id": 31776,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2947:0:36"
            },
            "scope": 31788,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "linearizedBaseContracts": [
          31788
        ],
        "name": "ETHHelper",
        "scope": 31789
      }
    ],
    "license": "MIT OR Apache-2.0"
  },
  "id": 36
}