{
  "manifestVersion": "3.2",
  "proxies": [
    {
      "address": "0xEC81aFc3485a425347Ac03316675e58a680b283A",
      "txHash": "0x671b413081ad5e75c13bf2cdd63d73ce77023d8fed87ce87acce6b1d07aa79e0",
      "kind": "uups"
    }
  ],
  "impls": {
    "2c4d3ef629440dbfa9338f12883a7fe9c537bc6b40055ff4472f0598460bbc23": {
      "address": "0xB9dE9F72e81d1609E940Fb2217f7286602064881",
      "txHash": "0x07ca6a506bcea4cca90ac15806c2ed4ff3172e5f08524aff9bfc80fe879c0503",
      "layout": {
        "solcVersion": "0.8.24",
        "storage": [
          {
            "label": "ethToNearToken",
            "offset": 0,
            "slot": "0",
            "type": "t_mapping(t_address,t_string_storage)",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:24"
          },
          {
            "label": "nearToEthToken",
            "offset": 0,
            "slot": "1",
            "type": "t_mapping(t_string_memory_ptr,t_address)",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:25"
          },
          {
            "label": "isBridgeToken",
            "offset": 0,
            "slot": "2",
            "type": "t_mapping(t_address,t_bool)",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:26"
          },
          {
            "label": "tokenImplementationAddress",
            "offset": 0,
            "slot": "3",
            "type": "t_address",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:28"
          },
          {
            "label": "nearBridgeDerivedAddress",
            "offset": 0,
            "slot": "4",
            "type": "t_address",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:29"
          },
          {
            "label": "omniBridgeChainId",
            "offset": 20,
            "slot": "4",
            "type": "t_uint8",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:30"
          },
          {
            "label": "completedTransfers",
            "offset": 0,
            "slot": "5",
            "type": "t_mapping(t_uint64,t_bool)",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:32"
          },
          {
            "label": "currentOriginNonce",
            "offset": 0,
            "slot": "6",
            "type": "t_uint64",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:33"
          },
          {
            "label": "customMinters",
            "offset": 0,
            "slot": "7",
            "type": "t_mapping(t_address,t_address)",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:35"
          },
          {
            "label": "__gap",
            "offset": 0,
            "slot": "8",
            "type": "t_array(t_uint256)50_storage",
            "contract": "OmniBridge",
            "src": "src/omni-bridge/contracts/OmniBridge.sol:345"
          },
          {
            "label": "_wormhole",
            "offset": 0,
            "slot": "58",
            "type": "t_contract(IWormhole)6037",
            "contract": "OmniBridgeWormhole",
            "src": "src/omni-bridge/contracts/OmniBridgeWormhole.sol:27"
          },
          {
            "label": "_consistencyLevel",
            "offset": 20,
            "slot": "58",
            "type": "t_uint8",
            "contract": "OmniBridgeWormhole",
            "src": "src/omni-bridge/contracts/OmniBridgeWormhole.sol:29"
          },
          {
            "label": "wormholeNonce",
            "offset": 21,
            "slot": "58",
            "type": "t_uint32",
            "contract": "OmniBridgeWormhole",
            "src": "src/omni-bridge/contracts/OmniBridgeWormhole.sol:30"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_bytes32": {
            "label": "bytes32",
            "numberOfBytes": "32"
          },
          "t_mapping(t_address,t_bool)": {
            "label": "mapping(address => bool)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_bytes32,t_struct(RoleData)24_storage)": {
            "label": "mapping(bytes32 => struct AccessControlUpgradeable.RoleData)",
            "numberOfBytes": "32"
          },
          "t_struct(AccessControlStorage)34_storage": {
            "label": "struct AccessControlUpgradeable.AccessControlStorage",
            "members": [
              {
                "label": "_roles",
                "type": "t_mapping(t_bytes32,t_struct(RoleData)24_storage)",
                "offset": 0,
                "slot": "0"
              }
            ],
            "numberOfBytes": "32"
          },
          "t_struct(InitializableStorage)266_storage": {
            "label": "struct Initializable.InitializableStorage",
            "members": [
              {
                "label": "_initialized",
                "type": "t_uint64",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "_initializing",
                "type": "t_bool",
                "offset": 8,
                "slot": "0"
              }
            ],
            "numberOfBytes": "32"
          },
          "t_struct(RoleData)24_storage": {
            "label": "struct AccessControlUpgradeable.RoleData",
            "members": [
              {
                "label": "hasRole",
                "type": "t_mapping(t_address,t_bool)",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "adminRole",
                "type": "t_bytes32",
                "offset": 0,
                "slot": "1"
              }
            ],
            "numberOfBytes": "64"
          },
          "t_uint64": {
            "label": "uint64",
            "numberOfBytes": "8"
          },
          "t_array(t_uint256)50_storage": {
            "label": "uint256[50]",
            "numberOfBytes": "1600"
          },
          "t_contract(IWormhole)6037": {
            "label": "contract IWormhole",
            "numberOfBytes": "20"
          },
          "t_mapping(t_address,t_address)": {
            "label": "mapping(address => address)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_address,t_string_storage)": {
            "label": "mapping(address => string)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_string_memory_ptr,t_address)": {
            "label": "mapping(string => address)",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint64,t_bool)": {
            "label": "mapping(uint64 => bool)",
            "numberOfBytes": "32"
          },
          "t_string_memory_ptr": {
            "label": "string",
            "numberOfBytes": "32"
          },
          "t_string_storage": {
            "label": "string",
            "numberOfBytes": "32"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          },
          "t_uint32": {
            "label": "uint32",
            "numberOfBytes": "4"
          },
          "t_uint8": {
            "label": "uint8",
            "numberOfBytes": "1"
          }
        },
        "namespaces": {
          "erc7201:openzeppelin.storage.AccessControl": [
            {
              "contract": "AccessControlUpgradeable",
              "label": "_roles",
              "type": "t_mapping(t_bytes32,t_struct(RoleData)24_storage)",
              "src": "@openzeppelin/contracts-upgradeable/access/AccessControlUpgradeable.sol:61",
              "offset": 0,
              "slot": "0"
            }
          ],
          "erc7201:openzeppelin.storage.Initializable": [
            {
              "contract": "Initializable",
              "label": "_initialized",
              "type": "t_uint64",
              "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:69",
              "offset": 0,
              "slot": "0"
            },
            {
              "contract": "Initializable",
              "label": "_initializing",
              "type": "t_bool",
              "src": "@openzeppelin/contracts-upgradeable/proxy/utils/Initializable.sol:73",
              "offset": 8,
              "slot": "0"
            }
          ]
        }
      }
    }
  }
}
