{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "sender",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint64",
          "name": "sequence",
          "type": "uint64"
        },
        {
          "indexed": false,
          "internalType": "uint32",
          "name": "nonce",
          "type": "uint32"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "payload",
          "type": "bytes"
        },
        {
          "indexed": false,
          "internalType": "uint8",
          "name": "consistencyLevel",
          "type": "uint8"
        }
      ],
      "name": "LogMessagePublished",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "chainId",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCurrentGuardianSetIndex",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "index",
          "type": "uint32"
        }
      ],
      "name": "getGuardianSet",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "keys",
              "type": "address[]"
            },
            {
              "internalType": "uint32",
              "name": "expirationTime",
              "type": "uint32"
            }
          ],
          "internalType": "struct Structs.GuardianSet",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getGuardianSetExpiry",
      "outputs": [
        {
          "internalType": "uint32",
          "name": "",
          "type": "uint32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        }
      ],
      "name": "governanceActionIsConsumed",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governanceChainId",
      "outputs": [
        {
          "internalType": "uint16",
          "name": "",
          "type": "uint16"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "governanceContract",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "impl",
          "type": "address"
        }
      ],
      "name": "isInitialized",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "messageFee",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "encodedVM",
          "type": "bytes"
        }
      ],
      "name": "parseAndVerifyVM",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "version",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "timestamp",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "nonce",
              "type": "uint32"
            },
            {
              "internalType": "uint16",
              "name": "emitterChainId",
              "type": "uint16"
            },
            {
              "internalType": "bytes32",
              "name": "emitterAddress",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "sequence",
              "type": "uint64"
            },
            {
              "internalType": "uint8",
              "name": "consistencyLevel",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "payload",
              "type": "bytes"
            },
            {
              "internalType": "uint32",
              "name": "guardianSetIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "guardianIndex",
                  "type": "uint8"
                }
              ],
              "internalType": "struct Structs.Signature[]",
              "name": "signatures",
              "type": "tuple[]"
            },
            {
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Structs.VM",
          "name": "vm",
          "type": "tuple"
        },
        {
          "internalType": "bool",
          "name": "valid",
          "type": "bool"
        },
        {
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "encodedVM",
          "type": "bytes"
        }
      ],
      "name": "parseVM",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "version",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "timestamp",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "nonce",
              "type": "uint32"
            },
            {
              "internalType": "uint16",
              "name": "emitterChainId",
              "type": "uint16"
            },
            {
              "internalType": "bytes32",
              "name": "emitterAddress",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "sequence",
              "type": "uint64"
            },
            {
              "internalType": "uint8",
              "name": "consistencyLevel",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "payload",
              "type": "bytes"
            },
            {
              "internalType": "uint32",
              "name": "guardianSetIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "guardianIndex",
                  "type": "uint8"
                }
              ],
              "internalType": "struct Structs.Signature[]",
              "name": "signatures",
              "type": "tuple[]"
            },
            {
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Structs.VM",
          "name": "vm",
          "type": "tuple"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint32",
          "name": "nonce",
          "type": "uint32"
        },
        {
          "internalType": "bytes",
          "name": "payload",
          "type": "bytes"
        },
        {
          "internalType": "uint8",
          "name": "consistencyLevel",
          "type": "uint8"
        }
      ],
      "name": "publishMessage",
      "outputs": [
        {
          "internalType": "uint64",
          "name": "sequence",
          "type": "uint64"
        }
      ],
      "stateMutability": "payable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "hash",
          "type": "bytes32"
        },
        {
          "components": [
            {
              "internalType": "bytes32",
              "name": "r",
              "type": "bytes32"
            },
            {
              "internalType": "bytes32",
              "name": "s",
              "type": "bytes32"
            },
            {
              "internalType": "uint8",
              "name": "v",
              "type": "uint8"
            },
            {
              "internalType": "uint8",
              "name": "guardianIndex",
              "type": "uint8"
            }
          ],
          "internalType": "struct Structs.Signature[]",
          "name": "signatures",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "address[]",
              "name": "keys",
              "type": "address[]"
            },
            {
              "internalType": "uint32",
              "name": "expirationTime",
              "type": "uint32"
            }
          ],
          "internalType": "struct Structs.GuardianSet",
          "name": "guardianSet",
          "type": "tuple"
        }
      ],
      "name": "verifySignatures",
      "outputs": [
        {
          "internalType": "bool",
          "name": "valid",
          "type": "bool"
        },
        {
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint8",
              "name": "version",
              "type": "uint8"
            },
            {
              "internalType": "uint32",
              "name": "timestamp",
              "type": "uint32"
            },
            {
              "internalType": "uint32",
              "name": "nonce",
              "type": "uint32"
            },
            {
              "internalType": "uint16",
              "name": "emitterChainId",
              "type": "uint16"
            },
            {
              "internalType": "bytes32",
              "name": "emitterAddress",
              "type": "bytes32"
            },
            {
              "internalType": "uint64",
              "name": "sequence",
              "type": "uint64"
            },
            {
              "internalType": "uint8",
              "name": "consistencyLevel",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "payload",
              "type": "bytes"
            },
            {
              "internalType": "uint32",
              "name": "guardianSetIndex",
              "type": "uint32"
            },
            {
              "components": [
                {
                  "internalType": "bytes32",
                  "name": "r",
                  "type": "bytes32"
                },
                {
                  "internalType": "bytes32",
                  "name": "s",
                  "type": "bytes32"
                },
                {
                  "internalType": "uint8",
                  "name": "v",
                  "type": "uint8"
                },
                {
                  "internalType": "uint8",
                  "name": "guardianIndex",
                  "type": "uint8"
                }
              ],
              "internalType": "struct Structs.Signature[]",
              "name": "signatures",
              "type": "tuple[]"
            },
            {
              "internalType": "bytes32",
              "name": "hash",
              "type": "bytes32"
            }
          ],
          "internalType": "struct Structs.VM",
          "name": "vm",
          "type": "tuple"
        }
      ],
      "name": "verifyVM",
      "outputs": [
        {
          "internalType": "bool",
          "name": "valid",
          "type": "bool"
        },
        {
          "internalType": "string",
          "name": "reason",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "bytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "deployedBytecode": {
    "object": "0x",
    "sourceMap": "",
    "linkReferences": {}
  },
  "methodIdentifiers": {
    "chainId()": "9a8a0592",
    "getCurrentGuardianSetIndex()": "1cfe7951",
    "getGuardianSet(uint32)": "f951975a",
    "getGuardianSetExpiry()": "eb8d3f12",
    "governanceActionIsConsumed(bytes32)": "2c3c02a4",
    "governanceChainId()": "fbe3c2cd",
    "governanceContract()": "b172b222",
    "isInitialized(address)": "d60b347f",
    "messageFee()": "1a90a219",
    "parseAndVerifyVM(bytes)": "c0fd8bde",
    "parseVM(bytes)": "a9e11893",
    "publishMessage(uint32,bytes,uint8)": "b19a437e",
    "verifySignatures(bytes32,(bytes32,bytes32,uint8,uint8)[],(address[],uint32))": "a0cce1b3",
    "verifyVM((uint8,uint32,uint32,uint16,bytes32,uint64,uint8,bytes,uint32,(bytes32,bytes32,uint8,uint8)[],bytes32))": "875be02a"
  },
  "ast": {
    "absolutePath": "src/Wormhole/IWormhole.sol",
    "id": 281,
    "exportedSymbols": {
      "IWormhole": [
        280
      ],
      "Structs": [
        330
      ]
    },
    "nodeType": "SourceUnit",
    "src": "64:1540:1",
    "nodes": [
      {
        "id": 155,
        "nodeType": "PragmaDirective",
        "src": "64:23:1",
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ]
      },
      {
        "id": 156,
        "nodeType": "ImportDirective",
        "src": "89:23:1",
        "absolutePath": "src/Wormhole/Structs.sol",
        "file": "./Structs.sol",
        "nameLocation": "-1:-1:-1",
        "scope": 281,
        "sourceUnit": 331,
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "id": 280,
        "nodeType": "ContractDefinition",
        "src": "114:1490:1",
        "nodes": [
          {
            "id": 170,
            "nodeType": "EventDefinition",
            "src": "151:120:1",
            "anonymous": false,
            "name": "LogMessagePublished",
            "nameLocation": "157:19:1",
            "parameters": {
              "id": 169,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 160,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "sender",
                  "nameLocation": "193:6:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 170,
                  "src": "177:22:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 159,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "177:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 162,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sequence",
                  "nameLocation": "208:8:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 170,
                  "src": "201:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 161,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "201:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 164,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "nonce",
                  "nameLocation": "225:5:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 170,
                  "src": "218:12:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 163,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "218:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 166,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "payload",
                  "nameLocation": "238:7:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 170,
                  "src": "232:13:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 165,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "232:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 168,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "consistencyLevel",
                  "nameLocation": "253:16:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 170,
                  "src": "247:22:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 167,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "247:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "176:94:1"
            }
          },
          {
            "id": 181,
            "nodeType": "FunctionDefinition",
            "src": "277:157:1",
            "functionSelector": "b19a437e",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "publishMessage",
            "nameLocation": "286:14:1",
            "parameters": {
              "id": 177,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 172,
                  "mutability": "mutable",
                  "name": "nonce",
                  "nameLocation": "317:5:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 181,
                  "src": "310:12:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 171,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "310:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 174,
                  "mutability": "mutable",
                  "name": "payload",
                  "nameLocation": "345:7:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 181,
                  "src": "332:20:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 173,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "332:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 176,
                  "mutability": "mutable",
                  "name": "consistencyLevel",
                  "nameLocation": "368:16:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 181,
                  "src": "362:22:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint8",
                    "typeString": "uint8"
                  },
                  "typeName": {
                    "id": 175,
                    "name": "uint8",
                    "nodeType": "ElementaryTypeName",
                    "src": "362:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint8",
                      "typeString": "uint8"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "300:90:1"
            },
            "returnParameters": {
              "id": 180,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 179,
                  "mutability": "mutable",
                  "name": "sequence",
                  "nameLocation": "424:8:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 181,
                  "src": "417:15:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint64",
                    "typeString": "uint64"
                  },
                  "typeName": {
                    "id": 178,
                    "name": "uint64",
                    "nodeType": "ElementaryTypeName",
                    "src": "417:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint64",
                      "typeString": "uint64"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "416:17:1"
            },
            "scope": 280,
            "stateMutability": "payable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 193,
            "nodeType": "FunctionDefinition",
            "src": "440:131:1",
            "functionSelector": "c0fd8bde",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "parseAndVerifyVM",
            "nameLocation": "449:16:1",
            "parameters": {
              "id": 184,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 183,
                  "mutability": "mutable",
                  "name": "encodedVM",
                  "nameLocation": "481:9:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 193,
                  "src": "466:24:1",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 182,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "466:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "465:26:1"
            },
            "returnParameters": {
              "id": 192,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 187,
                  "mutability": "mutable",
                  "name": "vm",
                  "nameLocation": "533:2:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 193,
                  "src": "515:20:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_VM_$329_memory_ptr",
                    "typeString": "struct Structs.VM"
                  },
                  "typeName": {
                    "id": 186,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 185,
                      "name": "Structs.VM",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 329,
                      "src": "515:10:1"
                    },
                    "referencedDeclaration": 329,
                    "src": "515:10:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_VM_$329_storage_ptr",
                      "typeString": "struct Structs.VM"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 189,
                  "mutability": "mutable",
                  "name": "valid",
                  "nameLocation": "542:5:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 193,
                  "src": "537:10:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 188,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "537:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 191,
                  "mutability": "mutable",
                  "name": "reason",
                  "nameLocation": "563:6:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 193,
                  "src": "549:20:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 190,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "549:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "514:56:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 203,
            "nodeType": "FunctionDefinition",
            "src": "577:97:1",
            "functionSelector": "875be02a",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "verifyVM",
            "nameLocation": "586:8:1",
            "parameters": {
              "id": 197,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 196,
                  "mutability": "mutable",
                  "name": "vm",
                  "nameLocation": "613:2:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 203,
                  "src": "595:20:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_VM_$329_memory_ptr",
                    "typeString": "struct Structs.VM"
                  },
                  "typeName": {
                    "id": 195,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 194,
                      "name": "Structs.VM",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 329,
                      "src": "595:10:1"
                    },
                    "referencedDeclaration": 329,
                    "src": "595:10:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_VM_$329_storage_ptr",
                      "typeString": "struct Structs.VM"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "594:22:1"
            },
            "returnParameters": {
              "id": 202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 199,
                  "mutability": "mutable",
                  "name": "valid",
                  "nameLocation": "645:5:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 203,
                  "src": "640:10:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 198,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "640:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 201,
                  "mutability": "mutable",
                  "name": "reason",
                  "nameLocation": "666:6:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 203,
                  "src": "652:20:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 200,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "652:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "639:34:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 219,
            "nodeType": "FunctionDefinition",
            "src": "680:177:1",
            "functionSelector": "a0cce1b3",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "verifySignatures",
            "nameLocation": "689:16:1",
            "parameters": {
              "id": 213,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 205,
                  "mutability": "mutable",
                  "name": "hash",
                  "nameLocation": "714:4:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "706:12:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 204,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "706:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 209,
                  "mutability": "mutable",
                  "name": "signatures",
                  "nameLocation": "747:10:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "720:37:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_struct$_Signature_$304_memory_ptr_$dyn_memory_ptr",
                    "typeString": "struct Structs.Signature[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 207,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 206,
                        "name": "Structs.Signature",
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 304,
                        "src": "720:17:1"
                      },
                      "referencedDeclaration": 304,
                      "src": "720:17:1",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Signature_$304_storage_ptr",
                        "typeString": "struct Structs.Signature"
                      }
                    },
                    "id": 208,
                    "nodeType": "ArrayTypeName",
                    "src": "720:19:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_struct$_Signature_$304_storage_$dyn_storage_ptr",
                      "typeString": "struct Structs.Signature[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 212,
                  "mutability": "mutable",
                  "name": "guardianSet",
                  "nameLocation": "786:11:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "759:38:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_GuardianSet_$295_memory_ptr",
                    "typeString": "struct Structs.GuardianSet"
                  },
                  "typeName": {
                    "id": 211,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 210,
                      "name": "Structs.GuardianSet",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 295,
                      "src": "759:19:1"
                    },
                    "referencedDeclaration": 295,
                    "src": "759:19:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_GuardianSet_$295_storage_ptr",
                      "typeString": "struct Structs.GuardianSet"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "705:93:1"
            },
            "returnParameters": {
              "id": 218,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 215,
                  "mutability": "mutable",
                  "name": "valid",
                  "nameLocation": "827:5:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "822:10:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 214,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "822:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 217,
                  "mutability": "mutable",
                  "name": "reason",
                  "nameLocation": "848:6:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 219,
                  "src": "834:20:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 216,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "834:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "821:34:1"
            },
            "scope": 280,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 227,
            "nodeType": "FunctionDefinition",
            "src": "863:86:1",
            "functionSelector": "a9e11893",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "parseVM",
            "nameLocation": "872:7:1",
            "parameters": {
              "id": 222,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 221,
                  "mutability": "mutable",
                  "name": "encodedVM",
                  "nameLocation": "893:9:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 227,
                  "src": "880:22:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 220,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "880:5:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "879:24:1"
            },
            "returnParameters": {
              "id": 226,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 225,
                  "mutability": "mutable",
                  "name": "vm",
                  "nameLocation": "945:2:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 227,
                  "src": "927:20:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_VM_$329_memory_ptr",
                    "typeString": "struct Structs.VM"
                  },
                  "typeName": {
                    "id": 224,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 223,
                      "name": "Structs.VM",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 329,
                      "src": "927:10:1"
                    },
                    "referencedDeclaration": 329,
                    "src": "927:10:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_VM_$329_storage_ptr",
                      "typeString": "struct Structs.VM"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "926:22:1"
            },
            "scope": 280,
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 235,
            "nodeType": "FunctionDefinition",
            "src": "955:90:1",
            "functionSelector": "f951975a",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getGuardianSet",
            "nameLocation": "964:14:1",
            "parameters": {
              "id": 230,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 229,
                  "mutability": "mutable",
                  "name": "index",
                  "nameLocation": "986:5:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 235,
                  "src": "979:12:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 228,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "979:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "978:14:1"
            },
            "returnParameters": {
              "id": 234,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 233,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 235,
                  "src": "1016:26:1",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_GuardianSet_$295_memory_ptr",
                    "typeString": "struct Structs.GuardianSet"
                  },
                  "typeName": {
                    "id": 232,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 231,
                      "name": "Structs.GuardianSet",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 295,
                      "src": "1016:19:1"
                    },
                    "referencedDeclaration": 295,
                    "src": "1016:19:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_GuardianSet_$295_storage_ptr",
                      "typeString": "struct Structs.GuardianSet"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1015:28:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 240,
            "nodeType": "FunctionDefinition",
            "src": "1051:70:1",
            "functionSelector": "1cfe7951",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getCurrentGuardianSetIndex",
            "nameLocation": "1060:26:1",
            "parameters": {
              "id": 236,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1086:2:1"
            },
            "returnParameters": {
              "id": 239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 238,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 240,
                  "src": "1112:6:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 237,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1112:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1111:8:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 245,
            "nodeType": "FunctionDefinition",
            "src": "1127:64:1",
            "functionSelector": "eb8d3f12",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getGuardianSetExpiry",
            "nameLocation": "1136:20:1",
            "parameters": {
              "id": 241,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1156:2:1"
            },
            "returnParameters": {
              "id": 244,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 243,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 245,
                  "src": "1182:6:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint32",
                    "typeString": "uint32"
                  },
                  "typeName": {
                    "id": 242,
                    "name": "uint32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1182:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint32",
                      "typeString": "uint32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1181:8:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 252,
            "nodeType": "FunctionDefinition",
            "src": "1197:80:1",
            "functionSelector": "2c3c02a4",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "governanceActionIsConsumed",
            "nameLocation": "1206:26:1",
            "parameters": {
              "id": 248,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 247,
                  "mutability": "mutable",
                  "name": "hash",
                  "nameLocation": "1241:4:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 252,
                  "src": "1233:12:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 246,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1233:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1232:14:1"
            },
            "returnParameters": {
              "id": 251,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 250,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 252,
                  "src": "1270:4:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 249,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1270:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1269:6:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 259,
            "nodeType": "FunctionDefinition",
            "src": "1283:67:1",
            "functionSelector": "d60b347f",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isInitialized",
            "nameLocation": "1292:13:1",
            "parameters": {
              "id": 255,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 254,
                  "mutability": "mutable",
                  "name": "impl",
                  "nameLocation": "1314:4:1",
                  "nodeType": "VariableDeclaration",
                  "scope": 259,
                  "src": "1306:12:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 253,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1306:7:1",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1305:14:1"
            },
            "returnParameters": {
              "id": 258,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 257,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 259,
                  "src": "1343:4:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 256,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1343:4:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1342:6:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 264,
            "nodeType": "FunctionDefinition",
            "src": "1356:51:1",
            "functionSelector": "9a8a0592",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "chainId",
            "nameLocation": "1365:7:1",
            "parameters": {
              "id": 260,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1372:2:1"
            },
            "returnParameters": {
              "id": 263,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 262,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 264,
                  "src": "1398:6:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 261,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1398:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1397:8:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 269,
            "nodeType": "FunctionDefinition",
            "src": "1413:60:1",
            "functionSelector": "fbe3c2cd",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "governanceChainId",
            "nameLocation": "1422:17:1",
            "parameters": {
              "id": 265,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1439:2:1"
            },
            "returnParameters": {
              "id": 268,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 267,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 269,
                  "src": "1465:6:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint16",
                    "typeString": "uint16"
                  },
                  "typeName": {
                    "id": 266,
                    "name": "uint16",
                    "nodeType": "ElementaryTypeName",
                    "src": "1465:6:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint16",
                      "typeString": "uint16"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1464:8:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 274,
            "nodeType": "FunctionDefinition",
            "src": "1479:62:1",
            "functionSelector": "b172b222",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "governanceContract",
            "nameLocation": "1488:18:1",
            "parameters": {
              "id": 270,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1506:2:1"
            },
            "returnParameters": {
              "id": 273,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 272,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 274,
                  "src": "1532:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 271,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1532:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1531:9:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "id": 279,
            "nodeType": "FunctionDefinition",
            "src": "1547:55:1",
            "functionSelector": "1a90a219",
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "messageFee",
            "nameLocation": "1556:10:1",
            "parameters": {
              "id": 275,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1566:2:1"
            },
            "returnParameters": {
              "id": 278,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 277,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 279,
                  "src": "1592:7:1",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 276,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1592:7:1",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1591:9:1"
            },
            "scope": 280,
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 157,
              "name": "Structs",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 330,
              "src": "137:7:1"
            },
            "id": 158,
            "nodeType": "InheritanceSpecifier",
            "src": "137:7:1"
          }
        ],
        "canonicalName": "IWormhole",
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "linearizedBaseContracts": [
          280,
          330
        ],
        "name": "IWormhole",
        "nameLocation": "124:9:1",
        "scope": 281,
        "usedErrors": []
      }
    ],
    "license": "Apache 2"
  },
  "id": 1
}