{
  "manifestVersion": "3.2",
  "proxies": [
    {
      "address": "0xd10077bCE4A9D19068965dE519CED8a2fC1B096C",
      "txHash": "0x076185325273279ef06919116b508a378a5d0429c2735be833ebb7ea07f64827",
      "kind": "uups"
    }
  ],
  "impls": {
    "73783f3db0f26514cce65395f915e3bc116437ffd5882d06d80233166119d4e7": {
      "address": "0x15A3D695EafF8d302eaF0a2e6b7b54F6A440C570",
      "txHash": "0x7909b36c69043b94e3764f69722efec6cdc3180ef4bacfc6df0abe6f31221f39",
      "layout": {
        "solcVersion": "0.8.20",
        "storage": [
          {
            "label": "gateway",
            "offset": 0,
            "slot": "0",
            "type": "t_contract(Relayer)5758",
            "contract": "TokenManagerUpgradeable",
            "src": "contracts/periphery/TokenManagerUpgradeable.sol:66"
          },
          {
            "label": "remoteTokens",
            "offset": 0,
            "slot": "1",
            "type": "t_mapping(t_address,t_mapping(t_uint256,t_struct(RemoteToken)6677_storage))",
            "contract": "TokenManagerUpgradeable",
            "src": "contracts/periphery/TokenManagerUpgradeable.sol:68"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_struct(InitializableStorage)64_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(OwnableStorage)14_storage": {
            "label": "struct OwnableUpgradeable.OwnableStorage",
            "members": [
              {
                "label": "_owner",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              }
            ],
            "numberOfBytes": "32"
          },
          "t_uint64": {
            "label": "uint64",
            "numberOfBytes": "8"
          },
          "t_contract(Relayer)5758": {
            "label": "contract Relayer",
            "numberOfBytes": "20"
          },
          "t_mapping(t_address,t_mapping(t_uint256,t_struct(RemoteToken)6677_storage))": {
            "label": "mapping(address => mapping(uint256 => struct RemoteToken))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_struct(RemoteToken)6677_storage)": {
            "label": "mapping(uint256 => struct RemoteToken)",
            "numberOfBytes": "32"
          },
          "t_struct(RemoteToken)6677_storage": {
            "label": "struct RemoteToken",
            "members": [
              {
                "label": "token",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "tokenManager",
                "type": "t_address",
                "offset": 0,
                "slot": "1"
              },
              {
                "label": "chainId",
                "type": "t_uint256",
                "offset": 0,
                "slot": "2"
              }
            ],
            "numberOfBytes": "96"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          }
        },
        "namespaces": {
          "erc7201:openzeppelin.storage.Ownable": [
            {
              "contract": "OwnableUpgradeable",
              "label": "_owner",
              "type": "t_address",
              "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:24",
              "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"
            }
          ]
        }
      }
    },
    "833a523d8c32ab4c0fdfcef192addfeed5dba58fd7ec83b0b12e7bca9936d7c0": {
      "address": "0x6344bA0A60F95A432C3985F9c83c5F42d7df4C8E",
      "txHash": "0x13e5dbada82fc52ebd4812df9057d3c2df2d921045e4472b3b0bae4bd840a8ee",
      "layout": {
        "solcVersion": "0.8.20",
        "storage": [
          {
            "label": "gateway",
            "offset": 0,
            "slot": "0",
            "type": "t_contract(Relayer)2435",
            "contract": "TokenManagerUpgradeable",
            "src": "contracts/periphery/TokenManagerUpgradeable.sol:66"
          },
          {
            "label": "remoteTokens",
            "offset": 0,
            "slot": "1",
            "type": "t_mapping(t_address,t_mapping(t_uint256,t_struct(RemoteToken)2764_storage))",
            "contract": "TokenManagerUpgradeable",
            "src": "contracts/periphery/TokenManagerUpgradeable.sol:68"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_struct(InitializableStorage)64_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(OwnableStorage)14_storage": {
            "label": "struct OwnableUpgradeable.OwnableStorage",
            "members": [
              {
                "label": "_owner",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              }
            ],
            "numberOfBytes": "32"
          },
          "t_uint64": {
            "label": "uint64",
            "numberOfBytes": "8"
          },
          "t_contract(Relayer)2435": {
            "label": "contract Relayer",
            "numberOfBytes": "20"
          },
          "t_mapping(t_address,t_mapping(t_uint256,t_struct(RemoteToken)2764_storage))": {
            "label": "mapping(address => mapping(uint256 => struct RemoteToken))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_struct(RemoteToken)2764_storage)": {
            "label": "mapping(uint256 => struct RemoteToken)",
            "numberOfBytes": "32"
          },
          "t_struct(RemoteToken)2764_storage": {
            "label": "struct RemoteToken",
            "members": [
              {
                "label": "token",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "tokenManager",
                "type": "t_address",
                "offset": 0,
                "slot": "1"
              },
              {
                "label": "chainId",
                "type": "t_uint256",
                "offset": 0,
                "slot": "2"
              }
            ],
            "numberOfBytes": "96"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          }
        },
        "namespaces": {
          "erc7201:openzeppelin.storage.Ownable": [
            {
              "contract": "OwnableUpgradeable",
              "label": "_owner",
              "type": "t_address",
              "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:24",
              "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"
            }
          ]
        }
      }
    },
    "ad4c6dc615f0301a583b1b3be7adb8b3f26e9d1cea1d5095a300e35618f7040e": {
      "address": "0x1690B1e78b98332EC5601A510640f451daf1323F",
      "txHash": "0xcce14a41594f449b10dc209138a3753a2194fd10ae66d3c4fe567f7011293709",
      "layout": {
        "solcVersion": "0.8.20",
        "storage": [
          {
            "label": "gateway",
            "offset": 0,
            "slot": "0",
            "type": "t_contract(IRelayer)5554",
            "contract": "TokenManagerUpgradeable",
            "src": "contracts/periphery/TokenManagerUpgradeable.sol:68"
          },
          {
            "label": "remoteTokens",
            "offset": 0,
            "slot": "1",
            "type": "t_mapping(t_address,t_mapping(t_uint256,t_struct(RemoteToken)6622_storage))",
            "contract": "TokenManagerUpgradeable",
            "src": "contracts/periphery/TokenManagerUpgradeable.sol:70"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_struct(InitializableStorage)64_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(OwnableStorage)14_storage": {
            "label": "struct OwnableUpgradeable.OwnableStorage",
            "members": [
              {
                "label": "_owner",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              }
            ],
            "numberOfBytes": "32"
          },
          "t_uint64": {
            "label": "uint64",
            "numberOfBytes": "8"
          },
          "t_contract(IRelayer)5554": {
            "label": "contract IRelayer",
            "numberOfBytes": "20"
          },
          "t_mapping(t_address,t_mapping(t_uint256,t_struct(RemoteToken)6622_storage))": {
            "label": "mapping(address => mapping(uint256 => struct RemoteToken))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_struct(RemoteToken)6622_storage)": {
            "label": "mapping(uint256 => struct RemoteToken)",
            "numberOfBytes": "32"
          },
          "t_struct(RemoteToken)6622_storage": {
            "label": "struct RemoteToken",
            "members": [
              {
                "label": "token",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "tokenManager",
                "type": "t_address",
                "offset": 0,
                "slot": "1"
              },
              {
                "label": "chainId",
                "type": "t_uint256",
                "offset": 0,
                "slot": "2"
              }
            ],
            "numberOfBytes": "96"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          }
        },
        "namespaces": {
          "erc7201:openzeppelin.storage.Ownable": [
            {
              "contract": "OwnableUpgradeable",
              "label": "_owner",
              "type": "t_address",
              "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:24",
              "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"
            }
          ]
        }
      }
    },
    "9b3b1fb8ce2ff8b233baaf87175924b9ba09c6db0125dc47271e87c47f4efee0": {
      "address": "0x04D663a833946e80376cB120870d4cdED82eBB2E",
      "txHash": "0x3131e5b9f968d14c7582d834e93b0a23ffdcf8ddbadfadebe9a74d5f8ee87318",
      "layout": {
        "solcVersion": "0.8.20",
        "storage": [
          {
            "label": "gateway",
            "offset": 0,
            "slot": "0",
            "type": "t_contract(IRelayer)5554",
            "contract": "TokenManagerUpgradeable",
            "src": "contracts/periphery/TokenManagerUpgradeable.sol:68"
          },
          {
            "label": "remoteTokens",
            "offset": 0,
            "slot": "1",
            "type": "t_mapping(t_address,t_mapping(t_uint256,t_struct(RemoteToken)6619_storage))",
            "contract": "TokenManagerUpgradeable",
            "src": "contracts/periphery/TokenManagerUpgradeable.sol:70"
          }
        ],
        "types": {
          "t_address": {
            "label": "address",
            "numberOfBytes": "20"
          },
          "t_bool": {
            "label": "bool",
            "numberOfBytes": "1"
          },
          "t_struct(InitializableStorage)64_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(OwnableStorage)14_storage": {
            "label": "struct OwnableUpgradeable.OwnableStorage",
            "members": [
              {
                "label": "_owner",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              }
            ],
            "numberOfBytes": "32"
          },
          "t_uint64": {
            "label": "uint64",
            "numberOfBytes": "8"
          },
          "t_contract(IRelayer)5554": {
            "label": "contract IRelayer",
            "numberOfBytes": "20"
          },
          "t_mapping(t_address,t_mapping(t_uint256,t_struct(RemoteToken)6619_storage))": {
            "label": "mapping(address => mapping(uint256 => struct RemoteToken))",
            "numberOfBytes": "32"
          },
          "t_mapping(t_uint256,t_struct(RemoteToken)6619_storage)": {
            "label": "mapping(uint256 => struct RemoteToken)",
            "numberOfBytes": "32"
          },
          "t_struct(RemoteToken)6619_storage": {
            "label": "struct RemoteToken",
            "members": [
              {
                "label": "token",
                "type": "t_address",
                "offset": 0,
                "slot": "0"
              },
              {
                "label": "tokenManager",
                "type": "t_address",
                "offset": 0,
                "slot": "1"
              },
              {
                "label": "chainId",
                "type": "t_uint256",
                "offset": 0,
                "slot": "2"
              }
            ],
            "numberOfBytes": "96"
          },
          "t_uint256": {
            "label": "uint256",
            "numberOfBytes": "32"
          }
        },
        "namespaces": {
          "erc7201:openzeppelin.storage.Ownable": [
            {
              "contract": "OwnableUpgradeable",
              "label": "_owner",
              "type": "t_address",
              "src": "@openzeppelin/contracts-upgradeable/access/OwnableUpgradeable.sol:24",
              "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"
            }
          ]
        }
      }
    }
  }
}
