{
  "abi": [
    {
      "inputs": [],
      "name": "EmptyMarketTokenSupply",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "glv",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "market",
          "type": "address"
        }
      ],
      "name": "GlvNegativeMarketPoolValue",
      "type": "error"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "end",
          "type": "uint256"
        }
      ],
      "name": "getAccountGlvDeposits",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glv",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "receiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "callbackContract",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "uiFeeReceiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "market",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "initialLongToken",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "initialShortToken",
                  "type": "address"
                },
                {
                  "internalType": "address[]",
                  "name": "longTokenSwapPath",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "shortTokenSwapPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct GlvDeposit.Addresses",
              "name": "addresses",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "marketTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "initialLongTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "initialShortTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minGlvTokens",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAtTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "executionFee",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "callbackGasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "srcChainId",
                  "type": "uint256"
                }
              ],
              "internalType": "struct GlvDeposit.Numbers",
              "name": "numbers",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "bool",
                  "name": "shouldUnwrapNativeToken",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "isMarketTokenDeposit",
                  "type": "bool"
                }
              ],
              "internalType": "struct GlvDeposit.Flags",
              "name": "flags",
              "type": "tuple"
            },
            {
              "internalType": "bytes32[]",
              "name": "_dataList",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct GlvDeposit.Props[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "end",
          "type": "uint256"
        }
      ],
      "name": "getAccountGlvWithdrawals",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glv",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "market",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "receiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "callbackContract",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "uiFeeReceiver",
                  "type": "address"
                },
                {
                  "internalType": "address[]",
                  "name": "longTokenSwapPath",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "shortTokenSwapPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct GlvWithdrawal.Addresses",
              "name": "addresses",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "glvTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minLongTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minShortTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAtTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "executionFee",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "callbackGasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "srcChainId",
                  "type": "uint256"
                }
              ],
              "internalType": "struct GlvWithdrawal.Numbers",
              "name": "numbers",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "bool",
                  "name": "shouldUnwrapNativeToken",
                  "type": "bool"
                }
              ],
              "internalType": "struct GlvWithdrawal.Flags",
              "name": "flags",
              "type": "tuple"
            },
            {
              "internalType": "bytes32[]",
              "name": "_dataList",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct GlvWithdrawal.Props[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "glv",
          "type": "address"
        }
      ],
      "name": "getGlv",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "glvToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "longToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "shortToken",
              "type": "address"
            }
          ],
          "internalType": "struct Glv.Props",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "salt",
          "type": "bytes32"
        }
      ],
      "name": "getGlvBySalt",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "glvToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "longToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "shortToken",
              "type": "address"
            }
          ],
          "internalType": "struct Glv.Props",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        }
      ],
      "name": "getGlvDeposit",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glv",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "receiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "callbackContract",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "uiFeeReceiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "market",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "initialLongToken",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "initialShortToken",
                  "type": "address"
                },
                {
                  "internalType": "address[]",
                  "name": "longTokenSwapPath",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "shortTokenSwapPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct GlvDeposit.Addresses",
              "name": "addresses",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "marketTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "initialLongTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "initialShortTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minGlvTokens",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAtTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "executionFee",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "callbackGasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "srcChainId",
                  "type": "uint256"
                }
              ],
              "internalType": "struct GlvDeposit.Numbers",
              "name": "numbers",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "bool",
                  "name": "shouldUnwrapNativeToken",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "isMarketTokenDeposit",
                  "type": "bool"
                }
              ],
              "internalType": "struct GlvDeposit.Flags",
              "name": "flags",
              "type": "tuple"
            },
            {
              "internalType": "bytes32[]",
              "name": "_dataList",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct GlvDeposit.Props",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "end",
          "type": "uint256"
        }
      ],
      "name": "getGlvDeposits",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glv",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "receiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "callbackContract",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "uiFeeReceiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "market",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "initialLongToken",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "initialShortToken",
                  "type": "address"
                },
                {
                  "internalType": "address[]",
                  "name": "longTokenSwapPath",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "shortTokenSwapPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct GlvDeposit.Addresses",
              "name": "addresses",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "marketTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "initialLongTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "initialShortTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minGlvTokens",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAtTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "executionFee",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "callbackGasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "srcChainId",
                  "type": "uint256"
                }
              ],
              "internalType": "struct GlvDeposit.Numbers",
              "name": "numbers",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "bool",
                  "name": "shouldUnwrapNativeToken",
                  "type": "bool"
                },
                {
                  "internalType": "bool",
                  "name": "isMarketTokenDeposit",
                  "type": "bool"
                }
              ],
              "internalType": "struct GlvDeposit.Flags",
              "name": "flags",
              "type": "tuple"
            },
            {
              "internalType": "bytes32[]",
              "name": "_dataList",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct GlvDeposit.Props[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "glv",
          "type": "address"
        }
      ],
      "name": "getGlvInfo",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glvToken",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "longToken",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "shortToken",
                  "type": "address"
                }
              ],
              "internalType": "struct Glv.Props",
              "name": "glv",
              "type": "tuple"
            },
            {
              "internalType": "address[]",
              "name": "markets",
              "type": "address[]"
            }
          ],
          "internalType": "struct GlvReader.GlvInfo",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "end",
          "type": "uint256"
        }
      ],
      "name": "getGlvInfoList",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glvToken",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "longToken",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "shortToken",
                  "type": "address"
                }
              ],
              "internalType": "struct Glv.Props",
              "name": "glv",
              "type": "tuple"
            },
            {
              "internalType": "address[]",
              "name": "markets",
              "type": "address[]"
            }
          ],
          "internalType": "struct GlvReader.GlvInfo[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        }
      ],
      "name": "getGlvShift",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glv",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "fromMarket",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "toMarket",
                  "type": "address"
                }
              ],
              "internalType": "struct GlvShift.Addresses",
              "name": "addresses",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "marketTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minMarketTokens",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAtTime",
                  "type": "uint256"
                }
              ],
              "internalType": "struct GlvShift.Numbers",
              "name": "numbers",
              "type": "tuple"
            }
          ],
          "internalType": "struct GlvShift.Props",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "end",
          "type": "uint256"
        }
      ],
      "name": "getGlvShifts",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glv",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "fromMarket",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "toMarket",
                  "type": "address"
                }
              ],
              "internalType": "struct GlvShift.Addresses",
              "name": "addresses",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "marketTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minMarketTokens",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAtTime",
                  "type": "uint256"
                }
              ],
              "internalType": "struct GlvShift.Numbers",
              "name": "numbers",
              "type": "tuple"
            }
          ],
          "internalType": "struct GlvShift.Props[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "marketAddresses",
          "type": "address[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "min",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "max",
              "type": "uint256"
            }
          ],
          "internalType": "struct Price.Props[]",
          "name": "indexTokenPrices",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "min",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "max",
              "type": "uint256"
            }
          ],
          "internalType": "struct Price.Props",
          "name": "longTokenPrice",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "min",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "max",
              "type": "uint256"
            }
          ],
          "internalType": "struct Price.Props",
          "name": "shortTokenPrice",
          "type": "tuple"
        },
        {
          "internalType": "address",
          "name": "glv",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "maximize",
          "type": "bool"
        }
      ],
      "name": "getGlvTokenPrice",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "address[]",
          "name": "marketAddresses",
          "type": "address[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "min",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "max",
              "type": "uint256"
            }
          ],
          "internalType": "struct Price.Props[]",
          "name": "indexTokenPrices",
          "type": "tuple[]"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "min",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "max",
              "type": "uint256"
            }
          ],
          "internalType": "struct Price.Props",
          "name": "longTokenPrice",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "min",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "max",
              "type": "uint256"
            }
          ],
          "internalType": "struct Price.Props",
          "name": "shortTokenPrice",
          "type": "tuple"
        },
        {
          "internalType": "address",
          "name": "glv",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "maximize",
          "type": "bool"
        }
      ],
      "name": "getGlvValue",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        }
      ],
      "name": "getGlvWithdrawal",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glv",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "market",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "receiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "callbackContract",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "uiFeeReceiver",
                  "type": "address"
                },
                {
                  "internalType": "address[]",
                  "name": "longTokenSwapPath",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "shortTokenSwapPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct GlvWithdrawal.Addresses",
              "name": "addresses",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "glvTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minLongTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minShortTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAtTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "executionFee",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "callbackGasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "srcChainId",
                  "type": "uint256"
                }
              ],
              "internalType": "struct GlvWithdrawal.Numbers",
              "name": "numbers",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "bool",
                  "name": "shouldUnwrapNativeToken",
                  "type": "bool"
                }
              ],
              "internalType": "struct GlvWithdrawal.Flags",
              "name": "flags",
              "type": "tuple"
            },
            {
              "internalType": "bytes32[]",
              "name": "_dataList",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct GlvWithdrawal.Props",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "end",
          "type": "uint256"
        }
      ],
      "name": "getGlvWithdrawals",
      "outputs": [
        {
          "components": [
            {
              "components": [
                {
                  "internalType": "address",
                  "name": "glv",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "market",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "account",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "receiver",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "callbackContract",
                  "type": "address"
                },
                {
                  "internalType": "address",
                  "name": "uiFeeReceiver",
                  "type": "address"
                },
                {
                  "internalType": "address[]",
                  "name": "longTokenSwapPath",
                  "type": "address[]"
                },
                {
                  "internalType": "address[]",
                  "name": "shortTokenSwapPath",
                  "type": "address[]"
                }
              ],
              "internalType": "struct GlvWithdrawal.Addresses",
              "name": "addresses",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "uint256",
                  "name": "glvTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minLongTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "minShortTokenAmount",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "updatedAtTime",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "executionFee",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "callbackGasLimit",
                  "type": "uint256"
                },
                {
                  "internalType": "uint256",
                  "name": "srcChainId",
                  "type": "uint256"
                }
              ],
              "internalType": "struct GlvWithdrawal.Numbers",
              "name": "numbers",
              "type": "tuple"
            },
            {
              "components": [
                {
                  "internalType": "bool",
                  "name": "shouldUnwrapNativeToken",
                  "type": "bool"
                }
              ],
              "internalType": "struct GlvWithdrawal.Flags",
              "name": "flags",
              "type": "tuple"
            },
            {
              "internalType": "bytes32[]",
              "name": "_dataList",
              "type": "bytes32[]"
            }
          ],
          "internalType": "struct GlvWithdrawal.Props[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract DataStore",
          "name": "dataStore",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "start",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "end",
          "type": "uint256"
        }
      ],
      "name": "getGlvs",
      "outputs": [
        {
          "components": [
            {
              "internalType": "address",
              "name": "glvToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "longToken",
              "type": "address"
            },
            {
              "internalType": "address",
              "name": "shortToken",
              "type": "address"
            }
          ],
          "internalType": "struct Glv.Props[]",
          "name": "",
          "type": "tuple[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ]
}